preprocessor-aasm 2.0.6 → 2.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.rdoc CHANGED
@@ -4,17 +4,13 @@ This fork make possible use Integer columns in AR objects (for DB perfomance).
4
4
 
5
5
  class Mary < ActiveRecord::Base
6
6
  include AASM
7
- aasm_integers 0 => :pending,
8
- 1 => :started,
9
- 2 => :finished
10
-
11
7
  aasm_initial_state :pending
12
8
 
13
9
  aasm_column :status
14
10
 
15
- aasm_state :pending
16
- aasm_state :started
17
- aasm_state :finished
11
+ aasm_state :pending, :integer => 0
12
+ aasm_state :started, :integer => 1
13
+ aasm_state :finished, :integer => 2
18
14
 
19
15
  aasm_event :start do
20
16
  transitions :to => :started, :from => [:pending]
@@ -36,6 +32,9 @@ This fork make possible use Integer columns in AR objects (for DB perfomance).
36
32
  mary.aasm_current_state => :started
37
33
  mary.status => 1
38
34
 
35
+ # For writing conditions like { :state => Blog.aasm_integers[:closed] }
36
+ Mary.aasm_integers[:started] => 1
37
+
39
38
 
40
39
  Auto generated named scopes (Mary.pending, Mary.started) also works.
41
40
 
data/Rakefile CHANGED
@@ -41,8 +41,8 @@ if !defined?(Gem)
41
41
  puts "Package target requires RubyGEMs"
42
42
  else
43
43
  spec = Gem::Specification.new do |s|
44
- s.name = 'aasm'
45
- s.version = $package_version
44
+ s.name = 'aaasm'
45
+ s.version = "2.0.8"
46
46
  s.summary = 'State machine mixin for Ruby objects'
47
47
  s.description = <<-EOF
48
48
  AASM is a continuation of the acts as state machine rails plugin, built for plain Ruby objects.
data/lib/aasm.rb CHANGED
@@ -2,6 +2,7 @@ require File.join(File.dirname(__FILE__), 'event')
2
2
  require File.join(File.dirname(__FILE__), 'state')
3
3
  require File.join(File.dirname(__FILE__), 'state_machine')
4
4
  require File.join(File.dirname(__FILE__), 'persistence')
5
+ require File.join(File.dirname(__FILE__), 'integers')
5
6
 
6
7
  module AASM
7
8
  def self.Version
@@ -88,10 +88,6 @@ module AASM
88
88
  # @aasm_column
89
89
  AASM::StateMachine[self].config.column
90
90
  end
91
-
92
- def aasm_integers(integers)
93
- AASM::StateMachine[self].config.integers = integers
94
- end
95
91
 
96
92
  def find_in_state(number, state, *args)
97
93
  with_state_scope state do
@@ -111,14 +107,18 @@ module AASM
111
107
  end
112
108
  end
113
109
 
110
+ def aasm_integers
111
+ AASM::StateMachine[self].integers
112
+ end
113
+
114
114
  # Get state name by integer if integers are set
115
115
  def aasm_state_name(value)
116
- AASM::StateMachine[self].config.integers && value.is_a?(Integer) ? AASM::StateMachine[self].config.integers[value] : value.to_s
116
+ aasm_integers.setted? && value.is_a?(Integer) ? aasm_integers.by_integer(value) : value.to_s
117
117
  end
118
118
 
119
119
  # Get state integer by symbol if integers are set
120
120
  def aasm_state_integer(value)
121
- AASM::StateMachine[self].config.integers && value.is_a?(Symbol) ? AASM::StateMachine[self].config.integers.invert[value] : value
121
+ aasm_integers.setted? && value.is_a?(Symbol) ? aasm_integers.by_state(value) : value
122
122
  end
123
123
 
124
124
 
data/lib/state.rb CHANGED
@@ -1,10 +1,14 @@
1
1
  module AASM
2
2
  module SupportingClasses
3
3
  class State
4
- attr_reader :name, :options, :integer
4
+ attr_reader :name, :options
5
5
 
6
6
  def initialize(name, options={})
7
- @name, @options = name, options
7
+ @name, @options = name, options
8
+ end
9
+
10
+ def method_name
11
+
8
12
  end
9
13
 
10
14
  def ==(state)
data/lib/state_machine.rb CHANGED
@@ -11,7 +11,7 @@ module AASM
11
11
  (@machines ||= {})[args] = val
12
12
  end
13
13
 
14
- attr_accessor :states, :events, :initial_state, :config
14
+ attr_accessor :states, :events, :initial_state, :config, :integers
15
15
  attr_reader :name
16
16
 
17
17
  def initialize(name)
@@ -20,6 +20,7 @@ module AASM
20
20
  @states = []
21
21
  @events = {}
22
22
  @config = OpenStruct.new
23
+ @integers = AASM::SupportingClasses::Integers.new
23
24
  end
24
25
 
25
26
  def clone
@@ -29,7 +30,11 @@ module AASM
29
30
  end
30
31
 
31
32
  def create_state(name, options)
32
- @states << AASM::SupportingClasses::State.new(name, options) unless @states.include?(name)
33
+ unless @states.include?(name)
34
+ state = AASM::SupportingClasses::State.new(name, options)
35
+ @states << state
36
+ integers.add_integer(state) if state.options[:integer]
37
+ end
33
38
  end
34
39
  end
35
40
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: preprocessor-aasm
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.6
4
+ version: 2.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Barron