module ActsAsHashable::Hashable
This class contains the main set of class-level methods that can be used by hashable classes.
Constants
- HASHABLE_HYDRATORS
Public Instance Methods
array(object, nullable: true)
click to toggle source
# File lib/acts_as_hashable/hashable.rb, line 47 def array(object, nullable: true) objects = object.is_a?(Hash) ? [object] : Array(object) objects.reject { |o| o.is_a?(FalseClass) || o.nil? } .map { |o| make(o, nullable: nullable) } end
make(object, nullable: true)
click to toggle source
# File lib/acts_as_hashable/hashable.rb, line 54 def make(object, nullable: true) HASHABLE_HYDRATORS.each do |hydrator| next unless hydrator[:condition].call(self, object, nullable) return hydrate(hydrator, object, nullable) end raise ArgumentError, "Cannot create hashable object with class name: #{object.class.name}" end
Private Instance Methods
hydrate(hydrator, object, nullable)
click to toggle source
# File lib/acts_as_hashable/hashable.rb, line 66 def hydrate(hydrator, object, nullable) hydrator[:converter].call(self, object, nullable) rescue ArgumentError raise HydrationError, "#{name} cannot be hydrated using arguments: #{object}" end