lib/stateful_enum/machine.rb in stateful_enum-0.3.0 vs lib/stateful_enum/machine.rb in stateful_enum-0.3.1

- old
+ new

@@ -1,5 +1,7 @@ +# frozen_string_literal: true + module StatefulEnum class Machine def initialize(model, column, states, prefix, suffix, &block) @model, @column, @states, @event_names = model, column, states, [] @prefix = if prefix == true @@ -39,11 +41,11 @@ # defining event methods model.class_eval do # def assign() detect_enum_conflict! column, new_method_name define_method new_method_name do - to, condition = transitions[self.send(column).to_sym] + to, condition = transitions[send(column).to_sym] #TODO better error if to && (!condition || instance_exec(&condition)) #TODO transaction? instance_eval(&before) if before original_method = self.class.send(:_enum_methods_module).instance_method "#{prefix}#{to}#{suffix}!" @@ -62,16 +64,16 @@ end # def can_assign?() detect_enum_conflict! column, "can_#{new_method_name}?" define_method "can_#{new_method_name}?" do - transitions.has_key? self.send(column).to_sym + transitions.key? send(column).to_sym end # def assign_transition() detect_enum_conflict! column, "#{new_method_name}_transition" define_method "#{new_method_name}_transition" do - transitions[self.send(column).to_sym].try! :first + transitions[send(column).to_sym].try! :first end end end def transition(transitions, options = {})