simple_states 0.0.10 → 0.0.11
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/Gemfile +10 -10
- data/Gemfile.lock +3 -28
- data/lib/simple_states.rb +5 -0
- data/lib/simple_states/event.rb +9 -9
- data/lib/simple_states/states.rb +1 -7
- data/lib/simple_states/version.rb +1 -1
- metadata +13 -13
data/Gemfile
CHANGED
@@ -2,13 +2,13 @@ source :rubygems
|
|
2
2
|
|
3
3
|
gemspec
|
4
4
|
|
5
|
-
group :test do
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
end
|
5
|
+
# group :test do
|
6
|
+
# platforms :mri_18 do
|
7
|
+
# gem "require_relative", "~> 1.0.1"
|
8
|
+
# gem 'ruby-debug'
|
9
|
+
# end
|
10
|
+
#
|
11
|
+
# platforms :mri_19 do
|
12
|
+
# gem 'ruby-debug19', :platforms => :mri_19 unless RUBY_VERSION == '1.9.3'
|
13
|
+
# end
|
14
|
+
# end
|
data/Gemfile.lock
CHANGED
@@ -10,43 +10,18 @@ GEM
|
|
10
10
|
specs:
|
11
11
|
activesupport (3.1.1)
|
12
12
|
multi_json (~> 1.0)
|
13
|
-
archive-tar-minitar (0.5.2)
|
14
|
-
columnize (0.3.4)
|
15
13
|
hashr (0.0.16)
|
16
|
-
linecache (0.46)
|
17
|
-
rbx-require-relative (> 0.0.4)
|
18
|
-
linecache19 (0.5.12)
|
19
|
-
ruby_core_source (>= 0.1.4)
|
20
14
|
mocha (0.9.12)
|
21
15
|
multi_json (1.0.3)
|
22
|
-
rake (0.9.
|
23
|
-
rbx-require-relative (0.0.5)
|
24
|
-
require_relative (1.0.2)
|
25
|
-
ruby-debug (0.10.4)
|
26
|
-
columnize (>= 0.1)
|
27
|
-
ruby-debug-base (~> 0.10.4.0)
|
28
|
-
ruby-debug-base (0.10.4)
|
29
|
-
linecache (>= 0.3)
|
30
|
-
ruby-debug-base19 (0.11.25)
|
31
|
-
columnize (>= 0.3.1)
|
32
|
-
linecache19 (>= 0.5.11)
|
33
|
-
ruby_core_source (>= 0.1.4)
|
34
|
-
ruby-debug19 (0.11.6)
|
35
|
-
columnize (>= 0.3.1)
|
36
|
-
linecache19 (>= 0.5.11)
|
37
|
-
ruby-debug-base19 (>= 0.11.19)
|
38
|
-
ruby_core_source (0.1.5)
|
39
|
-
archive-tar-minitar (>= 0.5.2)
|
16
|
+
rake (0.9.2.2)
|
40
17
|
test_declarative (0.0.5)
|
41
18
|
|
42
19
|
PLATFORMS
|
20
|
+
java
|
43
21
|
ruby
|
44
22
|
|
45
23
|
DEPENDENCIES
|
46
24
|
mocha
|
47
|
-
rake (~> 0.9.
|
48
|
-
require_relative (~> 1.0.1)
|
49
|
-
ruby-debug
|
50
|
-
ruby-debug19
|
25
|
+
rake (~> 0.9.2)
|
51
26
|
simple_states!
|
52
27
|
test_declarative
|
data/lib/simple_states.rb
CHANGED
@@ -13,6 +13,7 @@ module SimpleStates
|
|
13
13
|
|
14
14
|
included do
|
15
15
|
class_attribute :state_names, :initial_state, :events
|
16
|
+
after_initialize :init_state if respond_to?(:after_initialize)
|
16
17
|
self.initial_state = :created
|
17
18
|
self.events = []
|
18
19
|
end
|
@@ -48,6 +49,10 @@ module SimpleStates
|
|
48
49
|
|
49
50
|
attr_reader :past_states
|
50
51
|
|
52
|
+
def init_state
|
53
|
+
self.state = self.class.initial_state
|
54
|
+
end
|
55
|
+
|
51
56
|
def past_states
|
52
57
|
@past_states ||= []
|
53
58
|
end
|
data/lib/simple_states/event.rb
CHANGED
@@ -38,15 +38,6 @@ module SimpleStates
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
-
def set_state(object)
|
42
|
-
if state = target_state(object)
|
43
|
-
object.past_states << object.state if object.state
|
44
|
-
object.state = state.to_sym
|
45
|
-
object.send(:"#{state}_at=", Time.now) if object.respond_to?(:"#{state}_at=") && object.respond_to?(:"#{state}_at") && object.send(:"#{state}_at").nil?
|
46
|
-
object.save! if @saving
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
41
|
protected
|
51
42
|
|
52
43
|
def skip?(object, args)
|
@@ -64,6 +55,15 @@ module SimpleStates
|
|
64
55
|
send_methods(object, options.send(type), args)
|
65
56
|
end
|
66
57
|
|
58
|
+
def set_state(object)
|
59
|
+
if state = target_state(object)
|
60
|
+
object.past_states << object.state if object.state
|
61
|
+
object.state = state.to_sym
|
62
|
+
object.send(:"#{state}_at=", Time.now) if object.respond_to?(:"#{state}_at=") && object.respond_to?(:"#{state}_at") && object.send(:"#{state}_at").nil?
|
63
|
+
object.save! if @saving
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
67
|
def target_state(object)
|
68
68
|
options.to || :"#{name}ed".tap do |state|
|
69
69
|
raise_unknown_target_state(object) unless object.class.states.include?(state)
|
data/lib/simple_states/states.rb
CHANGED
@@ -3,13 +3,7 @@ module SimpleStates
|
|
3
3
|
class << self
|
4
4
|
def init(object)
|
5
5
|
object.singleton_class.send(:include, proxy_for(object.class))
|
6
|
-
|
7
|
-
object.singleton_class.after_initialize do
|
8
|
-
self.state = self.class.initial_state if attributes.keys.include?('state') && state.blank?
|
9
|
-
end
|
10
|
-
else
|
11
|
-
object.state = object.class.initial_state
|
12
|
-
end
|
6
|
+
object.init_state unless object.singleton_class.respond_to?(:after_initialize)
|
13
7
|
end
|
14
8
|
|
15
9
|
def proxy_for(klass)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_states
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-11-
|
12
|
+
date: 2011-11-11 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &70332126751680 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70332126751680
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: hashr
|
27
|
-
requirement: &
|
27
|
+
requirement: &70332126751180 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,21 +32,21 @@ dependencies:
|
|
32
32
|
version: 0.0.10
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70332126751180
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &70332126750660 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 0.9.
|
43
|
+
version: 0.9.2
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70332126750660
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: test_declarative
|
49
|
-
requirement: &
|
49
|
+
requirement: &70332126750260 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70332126750260
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: mocha
|
60
|
-
requirement: &
|
60
|
+
requirement: &70332126749760 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70332126749760
|
69
69
|
description: ! '[description]'
|
70
70
|
email: svenfuchs@artweb-design.de
|
71
71
|
executables: []
|