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

#before(&block) ⇒ Object

Per-target / per-namespace pre-hook. Same semantics as ‘Hammer.before` at the class level - see lux-hammer.rb.



20
21
22
# File 'lib/hammer/builder.rb', line 20

def before(&block)
  @klass.before(&block)
end

#define(name, &block) ⇒ Object



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

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.



27
28
29
30
# File 'lib/hammer/builder.rb', line 27

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

#namespace(name, &block) ⇒ Object



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

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