Module: Hammer::DSL

Defined in:
lib/hammer/builder.rb

Overview

Top-level Hammer DSL. Extended onto main (below) so any file required 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