Module: Hammer::DSL

Defined in:
lib/hammer/builder.rb

Overview

Top-level Hammer DSL. Extended onto ‘main` (below) so any file `require`d from within a Hammerfile - where `self == main` - can still call `task`, `namespace`, and `before`. Delegates to whichever Hammer subclass is currently being evaluated.

Instance Method Summary collapse

Instance Method Details

#desc(text) ⇒ Object

Top-level ‘desc ’text’‘ from inside a Hammerfile / fragment - sets the CLI’s overall description on the current target. Separate from the class-level ‘desc` (which is per-task pending state).

Raises:

  • (Hammer::Error)


90
91
92
93
94
95
# File 'lib/hammer/builder.rb', line 90

def desc(text)
  target = Thread.current[:hammer_target]
  raise Hammer::Error, '`desc` called outside a Hammer context ' \
                       '(Hammerfile / Hammer.run block / *_hammer.rb)' unless target
  target.app_desc(text)
end

#helpers(&block) ⇒ Object

Same as Builder#helpers - top-level ‘helpers do … end` in a fragment or Hammerfile adds private instance methods to the current target’s class.

Raises:

  • (Hammer::Error)


100
101
102
103
104
105
# File 'lib/hammer/builder.rb', line 100

def helpers(&block)
  target = Thread.current[:hammer_target]
  raise Hammer::Error, '`helpers` called outside a Hammer context ' \
                       '(Hammerfile / Hammer.run block / *_hammer.rb)' unless target
  target.class_eval(&block)
end