Module: ExtendIt::ArrayOf

Defined in:
lib/extend_it/array_of.rb

Defined Under Namespace

Modules: ArrayClassMethods, ArrayMethods

Instance Method Summary collapse

Instance Method Details

#array_of(entity_class, &block) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/extend_it/array_of.rb', line 6

def array_of(entity_class, &block)
  array_name = "ArrayOf#{entity_class.name.split('::').last}"
  array_class = Class.new(SimpleDelegator) do
    @entity_class = entity_class
    @scopes = {}
    @finder = nil
    extend ArrayOf::ArrayClassMethods
    include ArrayOf::ArrayMethods
  end
  array_class.class_eval(&block) if block_given?
  const_set(array_name, array_class)
end