Module: Viva
- Defined in:
- lib/viva.rb,
lib/viva/version.rb,
ext/viva/core.c
Constant Summary collapse
- VERSION =
'0.42.1337'- Getters =
getters = rb_hash_new()
- Setters =
setters = rb_hash_new()
Class Method Summary collapse
- .-(getter, &setter) ⇒ Object
- .define(var, getter, setter) ⇒ Object
- .define_getter(var) ⇒ Object
- .define_setter(var) ⇒ Object
- .undef_getter(var) ⇒ Object
- .undef_setter(var) ⇒ Object
Class Method Details
.-(getter, &setter) ⇒ Object
22 23 24 |
# File 'lib/viva.rb', line 22 def - getter, &setter define @var, getter, setter end |
.define(var, getter, setter) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'ext/viva/core.c', line 31 static VALUE viva_define(VALUE self, VALUE var, VALUE getter, VALUE setter) { char *str; var = rb_String(var); rb_str_update(var, 0, 0, rb_str_new("$", 1)); str = StringValueCStr(var); /* Reject invalid global identifiers and fully digital ones other than $0, * since the former would be syntax errors and the latter inaccessible. */ if (!rb_is_global_id(rb_intern(str)) || atoi(str + 1) > 0) rb_raise(rb_eNameError, error_msg, str); rb_hash_aset(getters, var, getter); rb_hash_aset(setters, var, setter); rb_define_virtual_variable(str, viva_getter, viva_setter); return rb_str_intern(var); } |
.define_getter(var) ⇒ Object
6 7 8 |
# File 'lib/viva.rb', line 6 def define_getter var define var, proc, Setters["$#{var}"] end |
.define_setter(var) ⇒ Object
10 11 12 |
# File 'lib/viva.rb', line 10 def define_setter var define var, Getters["$#{var}"], proc end |
.undef_getter(var) ⇒ Object
14 15 16 |
# File 'lib/viva.rb', line 14 def undef_getter var Getters.delete "$#{var}" end |
.undef_setter(var) ⇒ Object
18 19 20 |
# File 'lib/viva.rb', line 18 def undef_setter var Setters.delete "$#{var}" end |