class MR::ReadModel::JsonStructField

Public Instance Methods

reader(read_model_data) click to toggle source
# File lib/mr/read_model/fields.rb, line 174
def reader(read_model_data)
  json_value = read_model_data[self.name]
  return json_value if json_value.nil?

  if json_value.kind_of?(String)
    begin
      return MR::JsonField.decode(json_value)
    rescue MR::JsonField::InvalidJSONError => exception
      message = "can't decode `#{self.name}` JSON: #{exception.message}"
      raise exception.class, message, exception.backtrace
    end
  else
    return json_value
  end
end
struct_class() click to toggle source
# File lib/mr/read_model/fields.rb, line 164
def struct_class
  @struct_class ||= if self.struct_class_name.kind_of?(String)
    names     = self.struct_class_name.to_s.split('::').reject{ |name| name.empty? }
    namespace = self.struct_class_name =~ /^::/ ? Object : self.read_model_class
    names.inject(namespace){ |o, name| o.const_get(name) }
  else
    self.struct_class_name
  end
end