class AASM::Base
def safely_define_method(klass, method_name, method_definition)
def safely_define_method(klass, method_name, method_definition) # Warn if method exists and it did not originate from an enum if klass.method_defined?(method_name) && ! ( @state_machine.config.enum && klass.respond_to?(:defined_enums) && klass.defined_enums.values.any?{ |methods| methods.keys{| enum | enum + '?' == method_name } }) unless AASM::Configuration.hide_warnings @state_machine.config.logger.warn "#{klass.name}: overriding method '#{method_name}'!" end end klass.send(:define_method, method_name, method_definition).tap do |sym| apply_ruby2_keyword(klass, sym) end end