module Material::Collection

Public Instance Methods

ensure_item_validity_with() click to toggle source
Calls superclass method
# File lib/material/concerns/collection.rb, line 24
def ensure_item_validity_with
  super || item_class
end
item_class() click to toggle source
# File lib/material/concerns/collection.rb, line 13
def item_class
  return item_enforcement if item_enforcement.is_a?(Class)

  item_class = superclass.__send__(:item_enforcement) if superclass.respond_to?(:item_enforcement, true)
  return item_class if item_class.present?

  # Prevents against the case of `Material::List` becoming `Material` and returning a module
  item_class = name.chomp("List").safe_constantize
  item_class if item_class.is_a?(Class)
end
to_ary() click to toggle source
Calls superclass method
# File lib/material/concerns/collection.rb, line 29
def to_ary
  ary = super
  return ary if ary.empty?

  material_class = ary.first.try(:conjugate, Material::Base)
  material_class.nil? ? ary : ary.map(&material_class.method(:new))
end