module FTL::Serializer::DSL
Attributes
attribute_list[R]
object_merge[R]
Public Instance Methods
attributes(*attrs)
click to toggle source
# File lib/ftl/serializer/dsl.rb, line 27 def attributes(*attrs) attribute_list.push(attrs).flatten!.uniq! end
define_to_h()
click to toggle source
# File lib/ftl/serializer/dsl.rb, line 35 def define_to_h class_eval <<-METHOD, __FILE__, __LINE__ + 1 def hashify hash = { #{ attribute_list.reduce('') do |method_str, attr| if self.camel_case? attr_name = attr.to_s.camelize(:lower) else attr_name = attr end if instance_methods.include?(attr) method_str + "\"#{attr_name}\" => #{attr}," else method_str + "\"#{attr_name}\" => obj.#{attr}," end end } } merge!(hash) end METHOD end
inherited(child)
click to toggle source
# File lib/ftl/serializer/dsl.rb, line 11 def inherited(child) child.attributes(attribute_list) unless attribute_list.nil? child.merge_with(object_merge) unless object_merge.nil? child.root(root_name) FTL::Serializer.register_serializer(child) end
merge_with(*attrs)
click to toggle source
# File lib/ftl/serializer/dsl.rb, line 31 def merge_with(*attrs) object_merge.push(attrs).flatten!.uniq! end