Class: Hammer::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/hammer/builder.rb

Overview

Context object for the block DSL - what runs inside a ‘Hammerfile`, a `Hammer.run do … end` block, or any other top-level fragment. All methods proxy to the target Hammer subclass.

Instance Method Summary collapse

Constructor Details

#initialize(klass) ⇒ Builder

Returns a new instance of Builder.



6
7
8
# File 'lib/hammer/builder.rb', line 6

def initialize(klass)
  @klass = klass
end

Instance Method Details

#define(name, &block) ⇒ Object



14
15
16
# File 'lib/hammer/builder.rb', line 14

def define(name, &block)
  @klass.define(name, &block)
end

#load(*paths, **kwargs) ⇒ Object

Same surface as ‘Hammer.load`. Resolved relative to the file that called us, so `load auto: true` inside a Hammerfile picks up *_hammer.rb under the Hammerfile’s directory.



25
26
27
28
# File 'lib/hammer/builder.rb', line 25

def load(*paths, **kwargs)
  anchor = Loader.caller_anchor(caller_locations(1, 1).first)
  @klass.loader.load(anchor, paths, kwargs)
end

#namespace(name, &block) ⇒ Object



18
19
20
# File 'lib/hammer/builder.rb', line 18

def namespace(name, &block)
  @klass.namespace(name, &block)
end

#program(name) ⇒ Object



10
11
12
# File 'lib/hammer/builder.rb', line 10

def program(name)
  @klass.program_name(name)
end