module MongoModel::Serialization
Public Instance Methods
serializable_hash(given_options = nil)
click to toggle source
# File lib/mongomodel/concerns/serialization.rb, line 7 def serializable_hash(given_options = nil) options = given_options ? given_options.dup : {} options[:only] = Array.wrap(options[:only]).map { |n| n.to_s } options[:except] = Array.wrap(options[:except]).map { |n| n.to_s } options[:methods] = Array.wrap(options[:methods]).map { |n| n.to_s } attribute_names = attributes_for_serialization if options[:only].any? attribute_names &= options[:only] elsif options[:except].any? attribute_names -= options[:except] end method_names = options[:methods].inject([]) do |methods, name| methods << name if respond_to?(name) methods end (attribute_names + method_names).inject({}) { |hash, name| hash[name] = send(name) if respond_to?(name) hash } end
Protected Instance Methods
attributes_for_serialization()
click to toggle source
# File lib/mongomodel/concerns/serialization.rb, line 34 def attributes_for_serialization properties.reject { |name, property| property.internal? && name != :id }.map { |name, property| name.to_s }.sort end