master/lib/guard/dsl.rb

56 lines
1.4 KiB
Ruby
Raw Normal View History

2010-10-03 21:00:33 +00:00
module Guard
class Dsl
class << self
def evaluate_guardfile(options = {})
@@options = options
if File.exists?(guardfile_path)
begin
new.instance_eval(File.read(guardfile_path), guardfile_path, 1)
rescue
UI.error "Invalid Guardfile, original error is:\n#{$!}"
exit 1
end
else
UI.error "No Guardfile in current folder, please create one."
exit 1
end
end
def guardfile_include?(guard_name)
File.read(guardfile_path).match(/^guard\s*\(?\s*['":]#{guard_name}['"]?/)
end
def guardfile_path
File.join(Dir.pwd, 'Guardfile')
end
2010-10-03 21:00:33 +00:00
end
def group(name, &guard_definition)
guard_definition.call if guard_definition && (@@options[:group].empty? || @@options[:group].include?(name))
2010-10-07 20:37:30 +00:00
end
def guard(name, options = {}, &watch_and_callback_definition)
@watchers = []
@callbacks = []
watch_and_callback_definition.call if watch_and_callback_definition
::Guard.add_guard(name, @watchers, @callbacks, options)
2010-10-03 21:00:33 +00:00
end
2010-10-03 21:00:33 +00:00
def watch(pattern, &action)
@watchers << { :pattern => pattern, :action => action }
end
def callback(*args, &listener)
listener, events = if args.size > 1
args
else
[listener, args[0]]
end
@callbacks << { :events => events, :listener => listener }
2010-10-03 21:00:33 +00:00
end
2010-10-03 21:00:33 +00:00
end
end