Module: Filigree::TypedClass::ClassMethods
- Defined in:
- lib/filigree/types.rb
Instance Method Summary collapse
-
#default_constructor(strict = false) ⇒ void
Define the default constructor for the including class.
-
#typed_ivar(name, type, nillable = false, strict = false) ⇒ void
Define a typed instance variable.
-
#typed_ivars ⇒ Array<Symbol>
Return the typed instance variables for an object.
Instance Method Details
#default_constructor(strict = false) ⇒ void
This method returns an undefined value.
Define the default constructor for the including class.
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/filigree/types.rb', line 99 def default_constructor(strict = false) class_eval do if strict def initialize(*vals) if self.class.typed_ivars.length != vals.length raise ArgumentError, "#{self.class.typed_ivars.length} arguments expected, #{vals.length} given." end self.set_typed_ivars(vals) end else def initialize(*vals) self.set_typed_ivars(vals) end end end end |
#typed_ivar(name, type, nillable = false, strict = false) ⇒ void
This method returns an undefined value.
Define a typed instance variable.
141 142 143 144 145 146 147 148 149 |
# File 'lib/filigree/types.rb', line 141 def typed_ivar(name, type, nillable = false, strict = false) typed_ivars << name define_typed_accessor(name, nillable, strict, * type.is_a?(Array) ? [type.first, method(:check_array_type)] : [type, method(:check_type)] ) attr_reader name end |