Class: Middleman::CoreExtensions::Collections::LazyCollectorRoot

Inherits:
BasicObject
Defined in:
middleman-core/lib/middleman-core/core_extensions/collections/lazy_root.rb

Constant Summary collapse

DELEGATE =
%i[hash eql? is_a? puts p].freeze

Instance Method Summary collapse

Constructor Details

#initialize(parent) ⇒ LazyCollectorRoot

Returns a new instance of LazyCollectorRoot.


11
12
13
14
# File 'middleman-core/lib/middleman-core/core_extensions/collections/lazy_root.rb', line 11

def initialize(parent)
  @data = nil
  @parent = parent
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, &block) ⇒ Object


28
29
30
31
32
# File 'middleman-core/lib/middleman-core/core_extensions/collections/lazy_root.rb', line 28

def method_missing(name, *args, &block)
  return ::Kernel.send(name, *args, &block) if DELEGATE.include? name

  LazyCollectorStep.new(name, args, block, self)
end

Instance Method Details

#leavesObject


24
25
26
# File 'middleman-core/lib/middleman-core/core_extensions/collections/lazy_root.rb', line 24

def leaves
  @parent.leaves
end

#realize!(data) ⇒ Object


16
17
18
# File 'middleman-core/lib/middleman-core/core_extensions/collections/lazy_root.rb', line 16

def realize!(data)
  @data = data
end

#respond_to_missing?(_method_name, _include_private = false) ⇒ Boolean

Returns:

  • (Boolean)

34
35
36
# File 'middleman-core/lib/middleman-core/core_extensions/collections/lazy_root.rb', line 34

def respond_to_missing?(_method_name, _include_private = false)
  true
end

#value(_ctx = nil) ⇒ Object


20
21
22
# File 'middleman-core/lib/middleman-core/core_extensions/collections/lazy_root.rb', line 20

def value(_ctx = nil)
  @data
end