simple_states 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -2,13 +2,13 @@ source :rubygems
2
2
 
3
3
  gemspec
4
4
 
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
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
@@ -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.3.beta.1)
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.3.beta.1)
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
@@ -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
@@ -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)
@@ -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
- if object.singleton_class.respond_to?(:after_initialize)
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)
@@ -1,3 +1,3 @@
1
1
  module SimpleStates
2
- VERSION = '0.0.10'
2
+ VERSION = '0.0.11'
3
3
  end
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.10
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-03 00:00:00.000000000Z
12
+ date: 2011-11-11 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &70310391704160 !ruby/object:Gem::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: *70310391704160
24
+ version_requirements: *70332126751680
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: hashr
27
- requirement: &70310391703660 !ruby/object:Gem::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: *70310391703660
35
+ version_requirements: *70332126751180
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70310391703160 !ruby/object:Gem::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.3.beta.1
43
+ version: 0.9.2
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70310391703160
46
+ version_requirements: *70332126750660
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: test_declarative
49
- requirement: &70310391702780 !ruby/object:Gem::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: *70310391702780
57
+ version_requirements: *70332126750260
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: mocha
60
- requirement: &70310391702320 !ruby/object:Gem::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: *70310391702320
68
+ version_requirements: *70332126749760
69
69
  description: ! '[description]'
70
70
  email: svenfuchs@artweb-design.de
71
71
  executables: []