Method: Icss::Meta::RecordType#rcvr

Defined in:
lib/icss/type/record_type.rb

#rcvr(field_name, schema = {}) ⇒ Object

define a receiver attribute.

Parameters:

  • field_name (Symbol)
    • name of the receiver property

  • type (Class)
    • a

  • [Object] (Hash)

    a customizable set of options

  • [Class] (Hash)

    a customizable set of options



134
135
136
137
138
139
140
141
142
# File 'lib/icss/type/record_type.rb', line 134

def rcvr(field_name, schema={})
  return if schema[:receiver] == :none
  klass = schema[:type]
  define_metamodel_method("receive_#{field_name}") do |val|
    _set_field_val(field_name, klass.receive(val))
  end
  _register_rcvr_for(field_name, "receive_#{field_name}")
  add_after_receivers(field_name)
end