Class: Statesman::Adapters::ActiveRecordQueries::ClassMethods
- Inherits:
-
Module
- Object
- Module
- Statesman::Adapters::ActiveRecordQueries::ClassMethods
- Defined in:
- lib/statesman/adapters/active_record_queries.rb
Instance Method Summary collapse
- #included(base) ⇒ Object
-
#initialize(**args) ⇒ ClassMethods
constructor
A new instance of ClassMethods.
Constructor Details
#initialize(**args) ⇒ ClassMethods
Returns a new instance of ClassMethods.
49 50 51 |
# File 'lib/statesman/adapters/active_record_queries.rb', line 49 def initialize(**args) @args = args end |
Instance Method Details
#included(base) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/statesman/adapters/active_record_queries.rb', line 53 def included(base) ensure_inheritance(base) if base.respond_to?(:subclasses) && base.subclasses.any? query_builder = QueryBuilder.new( base, transition_class: @args[:transition_class], initial_state: @args[:initial_state], most_recent_transition_alias: @args[:most_recent_transition_alias], transition_name: @args[:transition_name], ) base.define_singleton_method(:most_recent_transition_join) do query_builder.most_recent_transition_join end define_in_state(base, query_builder) define_not_in_state(base, query_builder) define_method(:reload) do |*a| instance = super(*a) if instance.respond_to?(:state_machine, true) instance.send(:state_machine).reset end instance end end |