Class: Plamo::Request
- Inherits:
-
Object
- Object
- Plamo::Request
- Defined in:
- ext/plamo/plamo_request.c
Instance Method Summary collapse
- #body ⇒ Object
- #header ⇒ Object
- #initialize(rb_scheme, rb_version, rb_method, rb_path, rb_query, rb_header, rb_body) ⇒ Object constructor
- #method ⇒ Object
- #path ⇒ Object
- #query ⇒ Object
- #scheme ⇒ Object
- #version ⇒ Object
Constructor Details
#initialize(rb_scheme, rb_version, rb_method, rb_path, rb_query, rb_header, rb_body) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'ext/plamo/plamo_request.c', line 27
static VALUE initialize(VALUE self, VALUE rb_scheme, VALUE rb_version, VALUE rb_method, VALUE rb_path, VALUE rb_query, VALUE rb_header, VALUE rb_body) {
const PlamoScheme scheme = sym_http == rb_scheme ? PlamoSchemeHttp : PlamoSchemeHttps;
const PlamoHttpVersion version = sym_http_2_0 == rb_version ? PlamoHttpVersionHttp20
: sym_http_1_1 == rb_version ? PlamoHttpVersionHttp11
: sym_http_1_0 == rb_version ? PlamoHttpVersionHttp10
: PlamoHttpVersionHttp09;
PlamoHttpMethod method;
if (RB_TYPE_P(rb_method, RUBY_T_FIXNUM)) {
method.defined_http_method = NUM2SIZET(rb_method);
} else {
method.undefined_http_method = StringValueCStr(rb_method);
}
const char *path = StringValueCStr(rb_path);
PlamoHttpQuery *plamo_http_query;
TypedData_Get_Struct(rb_query, PlamoHttpQuery, &rb_plamo_http_query_type, plamo_http_query);
PlamoHttpHeader *plamo_http_header;
TypedData_Get_Struct(rb_header, PlamoHttpHeader, &rb_plamo_http_header_type, plamo_http_header);
PlamoByteArray *plamo_byte_array;
TypedData_Get_Struct(rb_body, PlamoByteArray, &rb_plamo_byte_array_type, plamo_byte_array);
DATA_PTR(self) = plamo_request_new(scheme, version, method, path, plamo_http_query, plamo_http_header, plamo_byte_array);
return self;
}
|
Instance Method Details
#body ⇒ Object
118 119 120 121 122 123 |
# File 'ext/plamo/plamo_request.c', line 118
static VALUE body(VALUE self) {
PlamoRequest *plamo_request;
TypedData_Get_Struct(self, PlamoRequest, &rb_plamo_request_type, plamo_request);
VALUE rb_plamo_byte_array = TypedData_Wrap_Struct(rb_cPlamoByteArray, &rb_plamo_byte_array_type, plamo_request->body);
return rb_plamo_byte_array;
}
|
#header ⇒ Object
111 112 113 114 115 116 |
# File 'ext/plamo/plamo_request.c', line 111
static VALUE header(VALUE self) {
PlamoRequest *plamo_request;
TypedData_Get_Struct(self, PlamoRequest, &rb_plamo_request_type, plamo_request);
VALUE rb_plamo_http_header = TypedData_Wrap_Struct(rb_cPlamoHttpHeader, &rb_plamo_http_header_type, plamo_request->header);
return rb_plamo_http_header;
}
|
#method ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'ext/plamo/plamo_request.c', line 71
static VALUE method(VALUE self) {
PlamoRequest *plamo_request;
TypedData_Get_Struct(self, PlamoRequest, &rb_plamo_request_type, plamo_request);
PlamoDefinedHttpMethod method = plamo_request->method.defined_http_method;
if (method == PLAMO_HTTP_METHOD_GET) {
return rb_str_new2("GET");
} else if (method == PLAMO_HTTP_METHOD_POST) {
return rb_str_new2("POST");
} else if (method == PLAMO_HTTP_METHOD_PUT) {
return rb_str_new2("PUT");
} else if (method == PLAMO_HTTP_METHOD_DELETE) {
return rb_str_new2("DELETE");
} else if (method == PLAMO_HTTP_METHOD_HEAD) {
return rb_str_new2("HEAD");
} else if (method == PLAMO_HTTP_METHOD_CONNECT) {
return rb_str_new2("CONNECT");
} else if (method == PLAMO_HTTP_METHOD_OPTIONS) {
return rb_str_new2("OPTIONS");
} else if (method == PLAMO_HTTP_METHOD_TRACE) {
return rb_str_new2("TRACE");
} else if (method == PLAMO_HTTP_METHOD_PATCH) {
return rb_str_new2("PATCH");
} else {
return rb_str_new2(plamo_request->method.undefined_http_method);
}
}
|
#path ⇒ Object
98 99 100 101 102 |
# File 'ext/plamo/plamo_request.c', line 98
static VALUE path(VALUE self) {
PlamoRequest *plamo_request;
TypedData_Get_Struct(self, PlamoRequest, &rb_plamo_request_type, plamo_request);
return rb_str_new2(plamo_string_get_char(plamo_request->path));
}
|
#query ⇒ Object
104 105 106 107 108 109 |
# File 'ext/plamo/plamo_request.c', line 104
static VALUE query(VALUE self) {
PlamoRequest *plamo_request;
TypedData_Get_Struct(self, PlamoRequest, &rb_plamo_request_type, plamo_request);
VALUE rb_plamo_http_query = TypedData_Wrap_Struct(rb_cPlamoHttpQuery, &rb_plamo_http_query_type, plamo_request->query);
return rb_plamo_http_query;
}
|
#scheme ⇒ Object
50 51 52 53 54 |
# File 'ext/plamo/plamo_request.c', line 50
static VALUE scheme(VALUE self) {
PlamoRequest *plamo_request;
TypedData_Get_Struct(self, PlamoRequest, &rb_plamo_request_type, plamo_request);
return plamo_request->scheme == PlamoSchemeHttp ? sym_http : sym_https;
}
|
#version ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'ext/plamo/plamo_request.c', line 56
static VALUE version(VALUE self) {
PlamoRequest *plamo_request;
TypedData_Get_Struct(self, PlamoRequest, &rb_plamo_request_type, plamo_request);
switch (plamo_request->version) {
case PlamoHttpVersionHttp20:
return sym_http_2_0;
case PlamoHttpVersionHttp11:
return sym_http_1_1;
case PlamoHttpVersionHttp10:
return sym_http_1_0;
default:
return sym_http_0_9;
}
}
|