module Statesman::Adapters::ActiveRecordQueries
Public Class Methods
[](**args)
click to toggle source
# File lib/statesman/adapters/active_record_queries.rb, line 32 def self.[](**args) ClassMethods.new(**args) end
check_missing_methods!(base)
click to toggle source
# File lib/statesman/adapters/active_record_queries.rb, line 6 def self.check_missing_methods!(base) missing_methods = %i[transition_class initial_state]. reject { |m| base.respond_to?(m) } return if missing_methods.none? raise NotImplementedError, "#{missing_methods.join(', ')} method(s) should be defined on " \ "the model. Alternatively, use the new form of `include " \ "Statesman::Adapters::ActiveRecordQueries[" \ "transition_class: MyTransition, " \ "initial_state: :some_state]`" end
included(base)
click to toggle source
# File lib/statesman/adapters/active_record_queries.rb, line 19 def self.included(base) check_missing_methods!(base) base.include( ClassMethods.new( transition_class: base.transition_class, initial_state: base.initial_state, most_recent_transition_alias: base.try(:most_recent_transition_alias), transition_name: base.try(:transition_name), ), ) end