class Ser::Ializer::Field
Attributes
block[R]
deser[R]
if_condition[R]
key[R]
model_class[R]
name[R]
setter[R]
Public Class Methods
new(name, options, config, &block)
click to toggle source
# File lib/ser/ializer/field.rb, line 16 def initialize(name, options, config, &block) @name = name @setter = options[:setter] || "#{name}=" @key = options[:key] || Field.transform(name.to_s, config.key_transformer) @deser = options[:deser] @if_condition = options[:if] @model_class = options[:model_class] @block = block end
transform(key, key_transformer)
click to toggle source
# File lib/ser/ializer/field.rb, line 7 def transform(key, key_transformer) return key unless key_transformer key_transformer.call(key) end
Public Instance Methods
get_value(object, context)
click to toggle source
# File lib/ser/ializer/field.rb, line 26 def get_value(object, context) return object.public_send(name) unless block block.call(object, context) end
parse(value)
click to toggle source
# File lib/ser/ializer/field.rb, line 36 def parse(value) if model_class deser.parse(value, model_class) else deser.parse(value) end end
serialize(value, context)
click to toggle source
# File lib/ser/ializer/field.rb, line 32 def serialize(value, context) deser.serialize(value, context) end
valid_for_context?(object, context)
click to toggle source
# File lib/ser/ializer/field.rb, line 44 def valid_for_context?(object, context) return true if if_condition.nil? if_condition.call(object, context) end