lib/transitions/state_transition.rb in transitions-0.1.9 vs lib/transitions/state_transition.rb in transitions-0.1.10
- old
+ new
@@ -28,14 +28,18 @@
@from, @to, @guard, @on_transition = opts[:from], opts[:to], opts[:guard], opts[:on_transition]
@options = opts
end
def perform(obj, *args)
- case @guard
+ [@guard].flatten.all? { |g| perform_guard(obj, g, *args) }
+ end
+
+ def perform_guard(obj, guard, *args)
+ case guard
when Symbol, String
- obj.send(@guard, *args)
+ obj.send(guard, *args)
when Proc
- @guard.call(obj, *args)
+ guard.call(obj, *args)
else
true
end
end