Module: RequestGlobal

Defined in:
lib/request_global.rb,
lib/request_global/railtie.rb,
lib/request_global/version.rb,
lib/request_global/middleware.rb,
ext/request_global/request_global.c

Defined Under Namespace

Classes: Middleware, Railtie

Constant Summary collapse

VERSION =
"0.1.1"

Class Method Summary collapse

Class Method Details

.fetch(key) ⇒ Object .[](key) ⇒ Object

Return the value for the given key from storage for current request.



136
137
138
139
140
# File 'ext/request_global/request_global.c', line 136

static VALUE
request_global_fetch(VALUE self, VALUE key) {
  check_condition(self);
  return rb_hash_aref(request_global_current_storage(self), key);
}

.store(key, value) ⇒ Object .[]=(key) ⇒ Object

Assign the value with the key to storage for current request.



149
150
151
152
153
# File 'ext/request_global/request_global.c', line 149

static VALUE
request_global_store(VALUE self, VALUE key, VALUE value) {
  check_condition(self);
  return rb_hash_aset(request_global_current_storage(self), key, value);
}

.begin!nil

Set up storage for current request.

Returns:

  • (nil)


57
58
59
60
61
62
63
# File 'ext/request_global/request_global.c', line 57

static VALUE
request_global_begin(VALUE self) {
  check_condition(self);
  Check_Type(rb_hash_aref(class_variable_storages(self), class_variable_current_request(self)), T_NIL);
  rb_hash_aset(class_variable_storages(self), class_variable_current_request(self), rb_hash_new());
  return Qnil;
}

.clear!nil

Removes all key-value pairs from storage for current request.

Returns:

  • (nil)


71
72
73
74
75
76
# File 'ext/request_global/request_global.c', line 71

static VALUE
request_global_clear(VALUE self) {
  check_condition(self);
  rb_hash_clear(request_global_current_storage(self));
  return Qnil;
}

.clear_all!nil

Removes all storages from container.

Returns:

  • (nil)


84
85
86
87
88
89
# File 'ext/request_global/request_global.c', line 84

static VALUE
request_global_clear_all(VALUE self) {
  rb_hash_clear(class_variable_storages(self));
  request_global_set_current_request(self, Qnil);
  return Qnil;
}

.delete(key) ⇒ Object

Delete the key-value pair for the given key and return the value from storage for current request.



123
124
125
126
127
# File 'ext/request_global/request_global.c', line 123

static VALUE
request_global_delete(VALUE self, VALUE key) {
  check_condition(self);
  return rb_hash_delete(request_global_current_storage(self), key);
}

.end!nil

Destroy information of current request and storage for current request.

Returns:

  • (nil)


97
98
99
100
101
102
103
# File 'ext/request_global/request_global.c', line 97

static VALUE
request_global_end(VALUE self) {
  check_condition(self);
  rb_hash_delete(class_variable_storages(self), class_variable_current_request(self));
  request_global_set_current_request(self, Qnil);
  return Qnil;
}

.fetch(key) ⇒ Object .[](key) ⇒ Object

Return the value for the given key from storage for current request.



136
137
138
139
140
# File 'ext/request_global/request_global.c', line 136

static VALUE
request_global_fetch(VALUE self, VALUE key) {
  check_condition(self);
  return rb_hash_aref(request_global_current_storage(self), key);
}

.get_current_requestObject

Get current request id.



46
47
48
49
# File 'ext/request_global/request_global.c', line 46

static VALUE
request_global_get_current_request(VALUE self) {
  return class_variable_current_request(self);
}

.set_current_request(request) ⇒ Object

Set current request id.



34
35
36
37
38
# File 'ext/request_global/request_global.c', line 34

static VALUE
request_global_set_current_request(VALUE self, VALUE request) {
  rb_cv_set(self, "@@current_request", request);
  return class_variable_current_request(self);
}

.storageHash

Get storage for current request.

Returns:

  • (Hash)


111
112
113
114
115
# File 'ext/request_global/request_global.c', line 111

static VALUE
request_global_storage(VALUE self) {
  check_condition(self);
  return request_global_current_storage(self);
}

.store(key, value) ⇒ Object .[]=(key) ⇒ Object

Assign the value with the key to storage for current request.



149
150
151
152
153
# File 'ext/request_global/request_global.c', line 149

static VALUE
request_global_store(VALUE self, VALUE key, VALUE value) {
  check_condition(self);
  return rb_hash_aset(request_global_current_storage(self), key, value);
}