Module: MR::ReadModel::Fields::ClassMethods

Defined in:
lib/mr/read_model/fields.rb

Instance Method Summary collapse

Instance Method Details

#field(name, type) ⇒ Object



24
25
26
27
28
# File 'lib/mr/read_model/fields.rb', line 24

def field(name, type)
  fields.add(name, type, self)
rescue InvalidFieldTypeError => exception
  raise ArgumentError, exception.message, caller
end

#fieldsObject



20
21
22
# File 'lib/mr/read_model/fields.rb', line 20

def fields
  @fields ||= MR::ReadModel::FieldSet.new
end

#json_struct_list(name, struct_class) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/mr/read_model/fields.rb', line 30

def json_struct_list(name, struct_class)
  field     = JsonStructListField.new(self, name.to_s, struct_class)
  ivar_name = "@#{name}"

  define_method(name) do
    begin
      instance_variable_get(ivar_name) ||
      instance_variable_set(ivar_name, field.reader(self.read_model_data))
    rescue StandardError => exception
      exception.set_backtrace(caller)
      raise exception
    end
  end

  (self.json_struct_lists << field).uniq!
end

#json_struct_listsObject



47
48
49
# File 'lib/mr/read_model/fields.rb', line 47

def json_struct_lists
  @json_struct_lists ||= []
end

#json_struct_obj(name, struct_class) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/mr/read_model/fields.rb', line 51

def json_struct_obj(name, struct_class)
  field     = JsonStructObjField.new(self, name.to_s, struct_class)
  ivar_name = "@#{name}"

  define_method(name) do
    begin
      instance_variable_get(ivar_name) ||
      instance_variable_set(ivar_name, field.reader(self.read_model_data))
    rescue StandardError => exception
      exception.set_backtrace(caller)
      raise exception
    end
  end

  (self.json_struct_objs << field).uniq!
end

#json_struct_objsObject



68
69
70
# File 'lib/mr/read_model/fields.rb', line 68

def json_struct_objs
  @json_struct_objs ||= []
end