Module: Statesman::Adapters::SequelQueries

Defined in:
lib/statesman/adapters/sequel_queries.rb

Defined Under Namespace

Modules: ClassMethods, DatasetMethods

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
# 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) ⇒ Object



18
19
20
21
22
23
24
25
26
# 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