Module: Stateful

Defined in:
lib/Stateful.rb,
lib/Stateful/Poro.rb,
lib/Stateful/State.rb,
lib/Stateful/Sequel.rb,
lib/Stateful/VERSION.rb,
lib/Stateful/Transition.rb,
lib/Stateful/ActiveRecord.rb,
lib/Stateful/ClassMethods.rb,
lib/Stateful/StateMachine.rb,
lib/Stateful/InstanceMethods.rb,
lib/Stateful/Poro/ClassMethods.rb,
lib/Stateful/Sequel/ClassMethods.rb,
lib/Stateful/ActiveRecord/ClassMethods.rb

Overview

Stateful/ActiveRecord/ClassMethods.rb Stateful::ActiveRecord::ClassMethods

Defined Under Namespace

Modules: ActiveRecord, ClassMethods, InstanceMethods, Poro, Sequel Classes: State, StateMachine, Transition

Constant Summary collapse

VERSION =
'2.2.0'

Class Method Summary collapse

Class Method Details

.extended(klass) ⇒ Object Also known as: included



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/Stateful.rb', line 8

def extended(klass)
  if Object.const_defined?(:ActiveRecord) && defined?(::ActiveRecord::Base) && klass < ::ActiveRecord::Base
    require_relative File.join('Stateful', 'ActiveRecord')
    klass.extend(Stateful::ActiveRecord)
  elsif Object.const_defined?(:Sequel) && defined?(::Sequel::Model) && klass < ::Sequel::Model
    require_relative File.join('Stateful', 'Sequel')
    klass.extend(Stateful::Sequel)
  else
    require_relative File.join('Stateful', 'Poro')
    klass.extend(Stateful::Poro)
  end
end