simple_states 1.1.0.rc8 → 1.1.0.rc9

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9cbfef0efaf93d1c51a1598450fecc545aa1f553
4
- data.tar.gz: f0587d5e61c30fa30ca244dffe59468a38c66843
3
+ metadata.gz: 6cb0cd4174f43de4ce090284993ccb0aa8d281c8
4
+ data.tar.gz: e4e602930a604f01e96b0c2cb0c40141b712c58a
5
5
  SHA512:
6
- metadata.gz: 3afe817b596759582d3c044a9aaecd0be85ccb147fe3e74ac128538027fccac06ec12fd8c6316ab2db08589902711923f9c77017df3db8bd7358ca9ed9b26f8a
7
- data.tar.gz: a7e809db0bcadb50a8f87049170894de4e9edcac90b09f6204c054220a039d082e25a4631adc3ce8044ede719723061960a9172f13f896f5b6967de9b1117585
6
+ metadata.gz: 92f4f66f9cbd3850146ef9b623fec993ae0f311d052fd74ad3683cf55dc059e86cbf699b8698fea88cd5517e46b5e53b2088119ae9a13127b6711faa1d36d296
7
+ data.tar.gz: 271c62daefe82dbd858d7b4d6b07071ea325af9575bb03447b266e02b44f27bc2e320fb259b03df913e8206e3e940a14c7abab92959ba38c3d677ddf8fbf51c5
@@ -1,9 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- simple_states (1.1.0.rc7)
4
+ simple_states (1.1.0.rc8)
5
5
  activesupport
6
- hashr (~> 0.0.10)
7
6
 
8
7
  GEM
9
8
  remote: https://rubygems.org/
@@ -14,7 +13,6 @@ GEM
14
13
  minitest (~> 5.1)
15
14
  thread_safe (~> 0.3, >= 0.3.4)
16
15
  tzinfo (~> 1.1)
17
- hashr (0.0.22)
18
16
  i18n (0.7.0)
19
17
  json (1.8.3)
20
18
  metaclass (0.0.1)
@@ -54,13 +54,16 @@ module SimpleStates
54
54
  state = data[:state].try(:to_sym) || target_state
55
55
  object.past_states << object.state.to_sym if object.state
56
56
  object.state = state.to_sym
57
- set_timestamp(object, data[:"#{target_state}_at"] || now)
57
+ write_attrs(object, data)
58
58
  end
59
59
 
60
- def set_timestamp(object, time)
61
- reader, writer = :"#{target_state}_at", :"#{target_state}_at="
62
- return unless object.respond_to?(writer) && object.respond_to?(reader) && object.send(reader).nil?
63
- object.send(writer, time)
60
+ def write_attrs(object, data)
61
+ data = { :"#{target_state}_at" => Time.now.utc }.merge(data)
62
+ data.each { |key, value| write_attr(object, key, value) }
63
+ end
64
+
65
+ def write_attr(object, key, value)
66
+ object.send(:"#{key}=", value) if object.respond_to?(:"#{key}=") && object.respond_to?(key) && object.send(key).nil?
64
67
  end
65
68
 
66
69
  def set_state?(object, args)
@@ -69,7 +72,7 @@ module SimpleStates
69
72
  return true unless object.class.state_options[:ordered]
70
73
  states = object.class.state_names
71
74
  lft, rgt = states.index(object.state.try(:to_sym)), states.index(state)
72
- lft.nil? || rgt.nil? || lft < rgt
75
+ lft.nil? || rgt.nil? || lft <= rgt
73
76
  end
74
77
 
75
78
  def target_state
@@ -1,3 +1,3 @@
1
1
  module SimpleStates
2
- VERSION = '1.1.0.rc8'
2
+ VERSION = '1.1.0.rc9'
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.rc8
4
+ version: 1.1.0.rc9
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-10-04 00:00:00.000000000 Z
11
+ date: 2015-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport