solidstate 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/solidstate.rb +10 -12
  3. data/solidstate.gemspec +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d5e329bd4e30446a3a96146851efb85c274c88c6
4
- data.tar.gz: cc34e7f4b3431d15d5bfd9f3068f72276e8f71a5
3
+ metadata.gz: 1c6122af4d0c25f9d7f471e01e1218bbc3412736
4
+ data.tar.gz: 3a839b2b68a1fc5b7e722f47ca140bdf3f5046df
5
5
  SHA512:
6
- metadata.gz: 8de3251b5fcec27241e83e452e4ba985b0e332b906f5e72533ecb8a55d31565c4b5c7dfe0744661b04d0240c4858937d93bb9b177920307e434d27d2ebfa5c76
7
- data.tar.gz: 8b8188819b832c9738ce478cabd6ecc7f49008bf897711d8330b5ae9319af69523ee775cfa7888359a06c91b9d4f8f1333e2987767da226d457641689b85e60c
6
+ metadata.gz: fc5fd9a1496f46095faca46dbf7fb314c309a9dc27b43d326c9b72dc12452493462f215194f3c62866f292b532385517936c02f978c1109328e260eaf19bcba1
7
+ data.tar.gz: d2c6724403fd42662823d1a99e6bf0b01b51f1c4902decdf39f0e07d60884e08a3492610e614e5c0644d1e6f0787ea5941056cde5312bbfb9e3f350630951521
data/lib/solidstate.rb CHANGED
@@ -1,3 +1,6 @@
1
+ require 'active_support/concern'
2
+ require 'active_support/core_ext/module'
3
+
1
4
  module SolidState
2
5
  extend ActiveSupport::Concern
3
6
 
@@ -5,22 +8,17 @@ module SolidState
5
8
 
6
9
  STATE_ATTRIBUTE = :state.freeze
7
10
 
11
+ mattr_accessor :possible_states
12
+ mattr_accessor :state_transitions
13
+
8
14
  module ClassMethods
9
15
 
10
16
  def states(*list, &block)
11
17
  list = list.collect(&:to_s)
12
18
  raise "This is not a list of names" unless list.first.respond_to?(:downcase)
13
19
 
14
- @@states = list
15
- @@state_transitions = {}
16
-
17
- def self.states
18
- @@states
19
- end
20
-
21
- def self.state_transitions
22
- @@state_transitions
23
- end
20
+ self.possible_states = list
21
+ self.state_transitions = {}
24
22
 
25
23
  if respond_to?(:validates_inclusion_of)
26
24
  validates_inclusion_of STATE_ATTRIBUTE, in: list
@@ -52,8 +50,8 @@ module SolidState
52
50
  # puts "From #{from} to #{to.join(' or ')}"
53
51
  to.each do |dest|
54
52
 
55
- state_transitions[from.to_sym] ||= []
56
- state_transitions[from.to_sym].push(dest.to_sym)
53
+ self.state_transitions[from.to_sym] ||= []
54
+ self.state_transitions[from.to_sym].push(dest.to_sym)
57
55
 
58
56
  define_method("#{dest}!") do
59
57
  unless set_state(dest.to_sym)
data/solidstate.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "solidstate"
5
- s.version = '0.3.1'
5
+ s.version = '0.4.0'
6
6
  s.platform = Gem::Platform::RUBY
7
7
  s.authors = ['Tomás Pollak']
8
8
  s.email = ['tomas@forkhq.com']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidstate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomás Pollak
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-12 00:00:00.000000000 Z
11
+ date: 2018-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler