Module: MR::JsonField

Includes:
MuchPlugin
Defined in:
lib/mr/json_field.rb,
lib/mr/json_field/record.rb,
lib/mr/json_field/fake_record.rb

Defined Under Namespace

Modules: ClassMethods, FakeRecord, Record, TestHelpers

Constant Summary collapse

DEFAULT_ENCODER =
proc{ |value| ::JSON.dump(value) }
DEFAULT_DECODER =
proc{ |value| ::JSON.load(value) }
InvalidJSONError =
Class.new(StandardError)

Class Method Summary collapse

Class Method Details

.decode(value) ⇒ Object



26
27
28
29
30
# File 'lib/mr/json_field.rb', line 26

def self.decode(value)
  self.decoder.call(value)
rescue StandardError => exception
  raise InvalidJSONError, exception.message
end

.decoderObject



17
# File 'lib/mr/json_field.rb', line 17

def self.decoder;             @decoder ||= DEFAULT_DECODER; end

.decoder=(new_value) ⇒ Object



18
# File 'lib/mr/json_field.rb', line 18

def self.decoder=(new_value); @decoder = new_value;         end

.encode(value) ⇒ Object



20
21
22
23
24
# File 'lib/mr/json_field.rb', line 20

def self.encode(value)
  self.encoder.call(value)
rescue StandardError => exception
  raise InvalidJSONError, exception.message
end

.encoderObject



14
# File 'lib/mr/json_field.rb', line 14

def self.encoder;             @encoder ||= DEFAULT_ENCODER; end

.encoder=(new_value) ⇒ Object



15
# File 'lib/mr/json_field.rb', line 15

def self.encoder=(new_value); @encoder = new_value;         end