Module: DeeplyEnumerable::Enumerable::ClassMethods
- Defined in:
- lib/deeply_enumerable/enumerable.rb
Instance Method Summary collapse
- #deep_compact(object, remove_emptied_elements = true, remove_empty_elements = remove_emptied_elements) ⇒ Object
- #deep_rebuild(object) ⇒ Object
- #rebuild(object) ⇒ Object
- #unenumerable ⇒ Object
Instance Method Details
#deep_compact(object, remove_emptied_elements = true, remove_empty_elements = remove_emptied_elements) ⇒ Object
27 28 29 30 |
# File 'lib/deeply_enumerable/enumerable.rb', line 27 def deep_compact(object, remove_emptied_elements = true, remove_empty_elements = remove_emptied_elements) check_object_class(object) deep_rebuild(object).deep_compact(remove_emptied_elements, remove_empty_elements) end |
#deep_rebuild(object) ⇒ Object
22 23 24 25 |
# File 'lib/deeply_enumerable/enumerable.rb', line 22 def deep_rebuild(object) check_object_class(object) new.tap { |deeply_enumerable_object| object.each { |value| deeply_enumerable_object.push(rebuild(value)) } } end |
#rebuild(object) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/deeply_enumerable/enumerable.rb', line 10 def rebuild(object) deeply_enumerable_class_name = DeeplyEnumerable.constants(false).detect do |const| deeply_enumerable_const = DeeplyEnumerable.const_get(const) deeply_enumerable_const.respond_to?(:superclass) ? !!object.is_a?(deeply_enumerable_const.superclass) : false end return object if deeply_enumerable_class_name.nil? deeply_enumerable_class = DeeplyEnumerable.const_get(deeply_enumerable_class_name) deeply_enumerable_class.respond_to?(:deep_rebuild) ? deeply_enumerable_class.deep_rebuild(object) : object end |
#unenumerable ⇒ Object
32 33 34 |
# File 'lib/deeply_enumerable/enumerable.rb', line 32 def unenumerable @unenumerable ||= UNENUMERABLE.map { |unenumerable| unenumerable.constantize rescue nil }.compact end |