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