Module: ActsAsHashable::Hashable
- Defined in:
- lib/acts_as_hashable/hashable.rb
Overview
This class contains the main set of class-level methods that can be used by hashable classes.
Defined Under Namespace
Classes: HydrationError
Instance Method Summary collapse
Instance Method Details
#array(object, nullable: true) ⇒ Object
47 48 49 50 51 52 |
# 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) ⇒ Object
54 55 56 57 58 59 60 61 62 |
# 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 |