module Sequel::Plugins::Statesman
Constants
- DEFAULTS
- OPTS
Public Class Methods
configure(model, opts=OPTS)
click to toggle source
# File lib/sequel/plugins/statesman.rb, line 20 def self.configure(model, opts=OPTS) opts = DEFAULTS.merge(opts) model.instance_eval do if opts[:state_machine_class].respond_to? :to_proc @state_machine_class = opts[:state_machine_class].call(self) else @state_machine_class = opts[:state_machine_class] end if opts[:transition_class].respond_to? :to_proc @transition_class = opts[:transition_class].call(self) else @transition_class = opts[:transition_class] end if opts[:define_state_methods] @state_machine_class.states.each do |state| define_method(:"#{state}!") do |metadata = {}| state_machine.transition_to!(state, metadata) end define_method(:"#{state}?") do current_state == state end end end if opts[:include_queries] include ::Statesman::Adapters::SequelQueries end if opts[:destroy_transitions] plugin :association_dependencies add_association_dependencies transition_name => :destroy end end end
configure!(opts=OPTS)
click to toggle source
# File lib/sequel/plugins/statesman.rb, line 16 def self.configure!(opts=OPTS) DEFAULTS.merge!(opts) end