lib/aasm/base.rb in aasm-5.0.3 vs lib/aasm/base.rb in aasm-5.0.4

- old
+ new

@@ -52,26 +52,17 @@ configure :logger, Logger.new(STDERR) # make sure to raise an error if no_direct_assignment is enabled # and attribute is directly assigned though aasm_name = @name - return true if should_not_define_method(klass) && !@state_machine.config.no_direct_assignment - klass.send :define_method, "#{@state_machine.config.column}=", ->(state_name) do - if self.class.aasm(:"#{aasm_name}").state_machine.config.no_direct_assignment - raise AASM::NoDirectAssignmentError.new( - 'direct assignment of AASM column has been disabled (see AASM configuration for this class)' - ) - else - super(state_name) + + if @state_machine.config.no_direct_assignment + @klass.send(:define_method, "#{@state_machine.config.column}=") do |state_name| + if self.class.aasm(:"#{aasm_name}").state_machine.config.no_direct_assignment + raise AASM::NoDirectAssignmentError.new('direct assignment of AASM column has been disabled (see AASM configuration for this class)') + end end end - end - - def should_not_define_method(klass) - (klass.methods.include?(:abstract_class) && - klass.abstract_class) || - (klass.superclass.methods.include?(:abstract_class) && - klass.superclass.abstract_class) end # This method is both a getter and a setter def attribute_name(column_name=nil) if column_name