Module: DocumentBuilder::Collection

Defined in:
lib/document_builder/collection.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/document_builder/collection.rb', line 23

def self.included(base)
  base.extend(ClassMethods)
  base.class_eval do
    include Model
    include Enumerable
  end
end

Instance Method Details

#collectionObject



31
32
33
# File 'lib/document_builder/collection.rb', line 31

def collection
  self.class.instance_variable_get(:@collection)
end

#dataObject



43
44
45
# File 'lib/document_builder/collection.rb', line 43

def data
  lazy
end

#each(&block) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/document_builder/collection.rb', line 35

def each(&block)
  document.xpath(collection.xpath).each do |item|
    block.call(
      collection.call(item)
    )
  end
end

#inspectObject



47
48
49
# File 'lib/document_builder/collection.rb', line 47

def inspect
  "#<#{self.class}:0x#{self.object_id.to_s(16)}> { data: #{data} } }"
end

#to_hashObject



51
52
53
# File 'lib/document_builder/collection.rb', line 51

def to_hash
  { data: data }
end