module Statesman::Adapters::SequelQueries
Public Class Methods
included(base)
click to toggle source
# File lib/statesman/adapters/sequel_queries.rb, line 4 def self.included(base) base.instance_eval do extend(ClassMethods) one_to_many(transition_name) one_to_one(most_recent_transition_association_name, class: transition_class, conditions: { most_recent: true }) dataset_module(DatasetMethods) end end
states_where(model, states)
click to toggle source
# File lib/statesman/adapters/sequel_queries.rb, line 18 def self.states_where(model, states) if states.include? model.initial_state.to_s "#{model.most_recent_transition_association_name}.to_state IN ? OR #{ model.most_recent_transition_association_name}.to_state IS NULL" else "#{model.most_recent_transition_association_name}.to_state IN ? AND #{ model.most_recent_transition_association_name}.to_state IS NOT NULL" end end