simple_states 1.1.0.rc5 → 1.1.0.rc7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 08cd20b4c3fb3a7f24851e71a511e0ceec335e80
4
- data.tar.gz: 22d653ec211a6507ee79ad774bcc604096dfced6
3
+ metadata.gz: 2b4846151d903961bc29e2a5004515bead3d5064
4
+ data.tar.gz: efbcb59bdcf552e31492117d6b779253e1505a67
5
5
  SHA512:
6
- metadata.gz: 2de3393af9bf9bc2c78a96efc52c77022d4feeda20e093fb40a6a6542105b13471f2e5c4c1bfb39efc38949a7786531cb1ccf80773fee149bd0d66103451bb13
7
- data.tar.gz: ef5b76be5af7dca69d302ac4bf0005153b3087c9c31d452c2dd7b963d831c749d58c7310d1ca6bc9ecc37750b8dad7ad8f21e22a4e1fb1de4893152df7e452ec
6
+ metadata.gz: 940486943b52ef093d0ac0c6204b0b2aec31b3b2831022344173f757d7bd7da5a17885335ac946b7045a43e71d13d8c4b2e25c71ac97412fc0b751b0f74ed00f
7
+ data.tar.gz: 89a8bcf7b64d517112def866dd41babfd5f9400ae15100f39837bccbc21a600e17f894fbc1476cacb153d12551448758af6b91bc2158147a4b85fa300c8e32cc
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- simple_states (1.1.0.rc4)
4
+ simple_states (1.1.0.rc6)
5
5
  activesupport
6
6
  hashr (~> 0.0.10)
7
7
 
@@ -37,6 +37,3 @@ DEPENDENCIES
37
37
  rake (~> 0.9.2)
38
38
  simple_states!
39
39
  test_declarative
40
-
41
- BUNDLED WITH
42
- 1.10.6
@@ -15,7 +15,7 @@ module SimpleStates
15
15
  end
16
16
 
17
17
  def call(object, *args)
18
- return if skip?(object, args)
18
+ return false if skip?(object, args) || !set_state?(object, args)
19
19
 
20
20
  raise_invalid_transition(object) unless can_transition?(object)
21
21
  run_callbacks(object, :before, args)
@@ -58,7 +58,7 @@ module SimpleStates
58
58
  data = args.last.is_a?(Hash) ? args.last : {}
59
59
  state = data[:state].try(:to_sym) || target_state
60
60
  object.past_states << object.state.to_sym if object.state
61
- object.state = state.to_sym if set_state?(object, state)
61
+ object.state = state.to_sym
62
62
  set_timestamp(object, data[:"#{target_state}_at"] || now)
63
63
  end
64
64
 
@@ -68,11 +68,13 @@ module SimpleStates
68
68
  object.send(writer, time)
69
69
  end
70
70
 
71
- def set_state?(object, state)
71
+ def set_state?(object, args)
72
+ data = args.last.is_a?(Hash) ? args.last : {}
73
+ state = data[:state].try(:to_sym) || target_state
72
74
  return true unless object.class.state_options[:ordered]
73
75
  states = object.class.state_names
74
76
  lft, rgt = states.index(object.state.try(:to_sym)), states.index(state)
75
- lft && rgt && lft < rgt
77
+ lft.nil? || rgt.nil? || lft < rgt
76
78
  end
77
79
 
78
80
  def target_state
@@ -30,7 +30,7 @@ module SimpleStates
30
30
  def define_event(const, (name, options))
31
31
  const.send(:define_method, name) do |*args|
32
32
  event = args.first.is_a?(Event) ? args.shift : Event.new(name, options)
33
- event.call(self, *args) { super(*args) if defined?(super) }
33
+ event.call(self, *args) { defined?(super) ? super(*args) : true }
34
34
  end
35
35
 
36
36
  const.send(:define_method, :"#{name}!") do |*args|
@@ -1,3 +1,3 @@
1
1
  module SimpleStates
2
- VERSION = '1.1.0.rc5'
2
+ VERSION = '1.1.0.rc7'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_states
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0.rc5
4
+ version: 1.1.0.rc7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sven Fuchs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-12 00:00:00.000000000 Z
11
+ date: 2015-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport