Sha256: 2e2c54caf25771bfeb31bb19e78152291bce20103030e36c3add61e2a25e2398
Contents?: true
Size: 879 Bytes
Versions: 1
Compression:
Stored size: 879 Bytes
Contents
require "cereal_box/version" module CerealBox def self.included(base) base.send(:attr_accessor, :cereal_box_base_instance) base.send(:attr_accessor, :cereal_box_previous_filter) end def initialize(base) @cereal_box_base_instance = base end def cereal_box_node_name self.class.to_s.split(/(?=[A-Z])/).map{ |w| w.downcase }[0...-1].join("_").to_sym end def serializable_hash(options = {}) apply(:serializable_hash, options) end def as_json(options = {}) apply(:as_json, options) end def as_xml(options = {}) apply(:as_xml, options) end def apply(message, options = {}) target = @cereal_box_previous_filter ? @cereal_box_previous_filter : @cereal_box_base_instance target.send(message.to_sym, options).merge( { cereal_box_node_name => self.send(:attributes, @cereal_box_base_instance) } ) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cereal_box-0.0.2 | lib/cereal_box.rb |