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