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