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
|
.decoder ⇒ Object
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
|
.encoder ⇒ Object
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
|