module MR::ReadModel::Fields::ClassMethods

Public Instance Methods

field(name, type) click to toggle source
# 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
fields() click to toggle source
# File lib/mr/read_model/fields.rb, line 20
def fields
  @fields ||= MR::ReadModel::FieldSet.new
end
json_struct_list(name, struct_class) click to toggle source
# 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_lists() click to toggle source
# File lib/mr/read_model/fields.rb, line 47
def json_struct_lists
  @json_struct_lists ||= []
end
json_struct_obj(name, struct_class) click to toggle source
# 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_objs() click to toggle source
# File lib/mr/read_model/fields.rb, line 68
def json_struct_objs
  @json_struct_objs ||= []
end