Method: Eapi::Methods::Accessor#define_init
- Defined in:
- lib/eapi/methods/accessor.rb
#define_init(field, init_class) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/eapi/methods/accessor.rb', line 44 def define_init(field, init_class) init = Eapi::Methods::Names.init field instance_var = Eapi::Methods::Names.instance_var field define_method init do klass = Eapi::TypeChecker.constant_for_type init_class raise Eapi::Errors::InvalidInitClass, "init_class: #{init_class}" if klass.nil? value = klass.new instance_variable_set instance_var, value end end |