master/lib/guard/dsl_describer.rb

30 lines
627 B
Ruby
Raw Normal View History

require 'guard/dsl'
module Guard
class DslDescriber < Dsl
@@guardfile_structure = [ { :guards => [] } ]
class << self
def guardfile_structure
@@guardfile_structure
end
end
private
def group(name, &guard_definition)
@@guardfile_structure << { :group => name.to_sym, :guards => [] }
@group = true
guard_definition.call
@group = false
end
def guard(name, options = {}, &watch_definition)
node = (@group ? @@guardfile_structure.last : @@guardfile_structure.first)
node[:guards] << { :name => name, :options => options }
end
end
end