class Nite::Owl::Action
Attributes
parent[RW]
Public Class Methods
call_all_deferred_actions()
click to toggle source
# File lib/nite/owl/niteowl.rb, line 223 def self.call_all_deferred_actions unless $deferred_actions.empty? $deferred_actions.dup.each do |a,event| a.call(event[0],event[1]) end end end
new()
click to toggle source
# File lib/nite/owl/niteowl.rb, line 204 def initialize @actions = [] @parent=nil @delay=nil end
Public Instance Methods
add(a)
click to toggle source
# File lib/nite/owl/niteowl.rb, line 240 def add(a) @actions << a if a.is_a?(Action) a.parent = self end a end
after(delay)
click to toggle source
# File lib/nite/owl/niteowl.rb, line 297 def after(delay) add(After.new(delay)) end
also()
click to toggle source
# File lib/nite/owl/niteowl.rb, line 237 def also root end
call(name,flags)
click to toggle source
# File lib/nite/owl/niteowl.rb, line 259 def call(name,flags) $current_action = self @actions.each do |n| begin n.call(name,flags) rescue Cancel => c undefer() rescue Delay => d handle_delay(d) defer(name,flags) rescue Exception => e STDERR.puts e.message STDERR.puts e.backtrace end end end
cancel()
click to toggle source
# File lib/nite/owl/niteowl.rb, line 212 def cancel raise Cancel.new end
changes()
click to toggle source
# File lib/nite/owl/niteowl.rb, line 312 def changes add(HasFlags.new([:create,:delete,:modify,:rename])) end
contains?(a)
click to toggle source
# File lib/nite/owl/niteowl.rb, line 247 def contains?(a) @actions.find { |b| a == b or (b.is_a?(Action) and b.contains?(a)) } end
created()
click to toggle source
# File lib/nite/owl/niteowl.rb, line 300 def created add(HasFlags.new([:create])) end
current_action()
click to toggle source
# File lib/nite/owl/niteowl.rb, line 209 def current_action $current_action end
defer(name,flags)
click to toggle source
# File lib/nite/owl/niteowl.rb, line 215 def defer(name,flags) unless $deferred_actions.has_key?(self) $deferred_actions[self] = [name,flags] end end
delay(time)
click to toggle source
# File lib/nite/owl/niteowl.rb, line 275 def delay(time) if @delay if Time.now >= @delay @delay = nil else raise Delay.new(0) end else raise Delay.new(time) end end
deleted()
click to toggle source
# File lib/nite/owl/niteowl.rb, line 306 def deleted add(HasFlags.new([:delete])) end
handle_delay(d)
click to toggle source
# File lib/nite/owl/niteowl.rb, line 286 def handle_delay(d) unless @delay @delay = Time.now + d.time end end
if_not(&block)
click to toggle source
# File lib/nite/owl/niteowl.rb, line 318 def if_not(&block) add(IfNot.new(block)) end
ignore(files)
click to toggle source
# File lib/nite/owl/niteowl.rb, line 294 def ignore(files) add(NameIsNot.new(files)) end
modified()
click to toggle source
# File lib/nite/owl/niteowl.rb, line 303 def modified add(HasFlags.new([:modify])) end
only_if(&block)
click to toggle source
# File lib/nite/owl/niteowl.rb, line 315 def only_if(&block) add(OnlyIf.new(block)) end
only_once()
click to toggle source
# File lib/nite/owl/niteowl.rb, line 291 def only_once run { root.parent.remove(self) } end
remove(a)
click to toggle source
# File lib/nite/owl/niteowl.rb, line 250 def remove(a) @actions.delete_if { |b| a == b } @actions.each { |b| b.is_a?(Action) and b.remove(a) } a end
renamed()
click to toggle source
# File lib/nite/owl/niteowl.rb, line 309 def renamed add(HasFlags.new([:rename])) end
root()
click to toggle source
# File lib/nite/owl/niteowl.rb, line 230 def root r = self while r.parent.parent r = r.parent end r end
run(&block)
click to toggle source
# File lib/nite/owl/niteowl.rb, line 255 def run(&block) add(block) self end
undefer()
click to toggle source
# File lib/nite/owl/niteowl.rb, line 220 def undefer $deferred_actions.delete(self) end