juncture 0.1.3 → 0.1.4

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: 1f28a15579970e84b17cd602610f67d1aa1fb0fe
4
- data.tar.gz: ced8f397144e95be239664b175790d463aa96dc1
3
+ metadata.gz: cfbc1fc326d6601300f5eb27f6bec268fb8e8e38
4
+ data.tar.gz: 8b34ea800a6c03e0a8faf8db8f11b6b1875d3de3
5
5
  SHA512:
6
- metadata.gz: 6bb89d966c61a680c1ee2510b921d4961f430a813b9a19f50420c6df11088c05c20d9c3334951089209c06e03eb37a4ea11818c3efd11fff14ed66d12f78e526
7
- data.tar.gz: 1da2fb3916a43f6799c87dbaa1d6b3ae29f77bdb944d14589f85cba60ec4814d47019efabc0c99dfc7abe90afdf0bae1953945e082b04a001c4fb5a99d2ec54d
6
+ metadata.gz: 3b65cbd6412036d639bcd012b0a494cde8e96e513ee37ccd3163424341c236ddd487437cf7844843ad0d80206f9b8d2b72ef8a5857fadc9a51691a82ed163e85
7
+ data.tar.gz: b9cbffdd404fee593417cb61ff26c3f5fa4258079c73e2596ad8a294d96bb3d9f004b56a007829d9c666b7d69d993d51af16c9fa0c6963bc78e20aa86a1afffe
data/lib/juncture.rb CHANGED
@@ -1,6 +1,4 @@
1
1
  class Juncture
2
- attr_reader :states
3
-
4
2
  def initialize *states, **kwargs
5
3
  @states = states
6
4
  @current_state = kwargs[:default]
@@ -26,6 +24,7 @@ class Juncture
26
24
  raise "UNKNOWN STATE: %s" % new_state unless @states.include? new_state
27
25
  @current_state = new_state
28
26
  end
27
+ alias_method :is, :set
29
28
 
30
29
  def next
31
30
  if index.nil? || @states[index+1].nil?
@@ -44,24 +43,24 @@ class Juncture
44
43
  end
45
44
 
46
45
  def <(value)
47
- index < index(value)
46
+ @states[index+1..-1].include? value
48
47
  end
49
48
 
50
49
  def <=(value)
51
- index <= index(value)
50
+ @states[index..-1].include? value
52
51
  end
53
52
 
54
53
  def >(value)
55
- index > index(value)
54
+ @states[0..index-1].include? value
56
55
  end
57
56
 
58
57
  def >=(value)
59
- index >= index(value)
58
+ @states[0..index].include? value
60
59
  end
61
60
 
62
61
  private
63
62
 
64
- def index value = @current_state
65
- @states.index(value) || @states[0]
63
+ def index
64
+ @states.index(@current_state)
66
65
  end
67
66
  end
@@ -1,4 +1,4 @@
1
1
  class Juncture
2
- VERSION = "0.1.3".freeze
3
- DATE = "2014-02-04".freeze
2
+ VERSION = "0.1.4".freeze
3
+ DATE = "2014-02-10".freeze
4
4
  end
@@ -6,177 +6,157 @@ describe Juncture do
6
6
  end
7
7
 
8
8
  describe '::new' do
9
- it 'creates a new instance of Juncture' do
10
- expect(Juncture.new []).to be_an_instance_of Juncture
11
- end
9
+ it 'creates a new instance of Juncture' do
10
+ expect(Juncture.new []).to be_an_instance_of Juncture
11
+ end
12
12
  end
13
13
 
14
14
  describe '#inspect' do
15
- it 'returns the Juncture object' do
16
- expect(Juncture.new([]).inspect).to match(/<Juncture:\S+ State:\S*>/)
17
- end
15
+ it 'returns the Juncture object' do
16
+ expect(Juncture.new([]).inspect).to match(/<Juncture:\S+ State:\S*>/)
17
+ end
18
18
  end
19
19
 
20
20
  describe '#state' do
21
- it 'returns the current state' do
22
- temp = Juncture.new :first, :second, :third
23
- expect(temp.state).to be_nil
24
- end
25
-
26
- it 'returns the default state' do
27
- temp = Juncture.new :first, :second, :third, default: :first
28
- expect(temp.state).to eq :first
29
- end
21
+ it 'returns the current state' do
22
+ temp = Juncture.new 1, 2, 3
23
+ expect(temp.state).to be_nil
24
+ end
25
+
26
+ it 'returns the default state' do
27
+ temp = Juncture.new 1, 2, 3, default: 1
28
+ expect(temp.state).to eq 1
29
+ end
30
30
  end
31
31
 
32
32
  describe '#set' do
33
- it 'sets the current state' do
34
- temp = Juncture.new :first, :second, :third
35
- temp.set :first
36
- expect(temp.state).to eq :first
37
- end
38
-
39
- it 'raises an error if the state is not present' do
40
- temp = Juncture.new :first, :second, :third
41
- expect{ temp.set :fourth }.to raise_error
42
- end
33
+ it 'sets the current state' do
34
+ temp = Juncture.new 1, 2, 3
35
+ temp.set 1
36
+ expect(temp.state).to eq 1
37
+ end
38
+
39
+ it 'raises an error if the state is not present' do
40
+ temp = Juncture.new 1, 2, 3
41
+ expect{ temp.set 4 }.to raise_error
42
+ end
43
43
  end
44
44
 
45
45
  describe '#next' do
46
46
  it 'moves the state forward one step' do
47
- temp = Juncture.new :first, :second, :third, default: :first
48
- expect(temp.next).to eq :second
49
- expect(temp.state).to eq :second
50
- expect(temp.next).to eq :third
51
- expect(temp.state).to eq :third
47
+ temp = Juncture.new 1, 2, 3, default: 1
48
+ expect(temp.next).to eq 2
49
+ expect(temp.state).to eq 2
50
+ expect(temp.next).to eq 3
51
+ expect(temp.state).to eq 3
52
52
  end
53
53
 
54
54
  it 'resets if on final state' do
55
- temp = Juncture.new :first, :second, :third, default: :second
56
- expect(temp.next).to eq :third
57
- expect(temp.state).to eq :third
58
- expect(temp.next).to eq :first
59
- expect(temp.state).to eq :first
55
+ temp = Juncture.new 1, 2, 3, default: 2
56
+ expect(temp.next).to eq 3
57
+ expect(temp.state).to eq 3
58
+ expect(temp.next).to eq 1
59
+ expect(temp.state).to eq 1
60
60
  end
61
61
 
62
62
  it 'resets if default is nil' do
63
- temp = Juncture.new :first, :second, :third
64
- expect(temp.next).to eq :first
65
- expect(temp.state).to eq :first
66
- expect(temp.next).to eq :second
67
- expect(temp.state).to eq :second
63
+ temp = Juncture.new 1, 2, 3
64
+ expect(temp.next).to eq 1
65
+ expect(temp.state).to eq 1
66
+ expect(temp.next).to eq 2
67
+ expect(temp.state).to eq 2
68
68
  end
69
69
 
70
70
  it 'resets if default is not a state' do
71
- temp = Juncture.new :first, :second, :third, default: 4
72
- expect(temp.next).to eq :first
73
- expect(temp.state).to eq :first
74
- expect(temp.next).to eq :second
75
- expect(temp.state).to eq :second
71
+ temp = Juncture.new 1, 2, 3, default: 4
72
+ expect(temp.next).to eq 1
73
+ expect(temp.state).to eq 1
74
+ expect(temp.next).to eq 2
75
+ expect(temp.state).to eq 2
76
76
  end
77
77
  end
78
78
 
79
79
  describe '#==' do
80
80
  it 'returns true if matching' do
81
- temp = Juncture.new :first, :second, :third, default: :second
82
- expect(temp == :second).to be_true
81
+ temp = Juncture.new 1, 2, 3, default: 2
82
+ expect(temp == 2).to be_true
83
83
  end
84
84
 
85
85
  it 'returns false if not matching' do
86
- temp = Juncture.new :first, :second, :third, default: :second
87
- expect(temp == :first).to be_false
86
+ temp = Juncture.new 1, 2, 3, default: 2
87
+ expect(temp == 1).to be_false
88
88
  end
89
89
  end
90
90
 
91
91
  describe '#===' do
92
92
  it 'returns true if matching' do
93
- temp = Juncture.new :first, :second, :third, default: :second
94
- expect(temp === :second).to be_true
93
+ temp = Juncture.new 1, 2, 3, default: 2
94
+ expect(temp === 2).to be_true
95
95
  end
96
96
 
97
97
  it 'returns false if not matching' do
98
- temp = Juncture.new :first, :second, :third, default: :second
99
- expect(temp === :first).to be_false
98
+ temp = Juncture.new 1, 2, 3, default: 2
99
+ expect(temp === 1).to be_false
100
100
  end
101
101
  end
102
102
 
103
103
  describe '#<' do
104
104
  it 'returns true if matching' do
105
- temp = Juncture.new :first, :second, :third, default: :second
106
- expect(temp < :third).to be_true
107
- end
108
-
109
- it 'returns false if not matching' do
110
- temp = Juncture.new :first, :second, :third, default: :second
111
- expect(temp < :second).to be_false
105
+ temp = Juncture.new 1, 2, 3, default: 2
106
+ expect(temp < 3).to be_true
112
107
  end
113
108
 
114
109
  it 'returns false if not matching' do
115
- temp = Juncture.new :first, :second, :third, default: :second
116
- expect(temp < :first).to be_false
110
+ temp = Juncture.new 1, 2, 3, default: 2
111
+ expect(temp < 2).to be_false
117
112
  end
118
113
  end
119
114
 
120
115
  describe '#<=' do
121
116
  it 'returns true if matching' do
122
- temp = Juncture.new :first, :second, :third, default: :second
123
- expect(temp <= :third).to be_true
124
- end
125
-
126
- it 'returns true if matching' do
127
- temp = Juncture.new :first, :second, :third, default: :second
128
- expect(temp <= :second).to be_true
117
+ temp = Juncture.new 1, 2, 3, default: 2
118
+ expect(temp <= 2).to be_true
129
119
  end
130
120
 
131
121
  it 'returns false if not matching' do
132
- temp = Juncture.new :first, :second, :third, default: :second
133
- expect(temp <= :first).to be_false
122
+ temp = Juncture.new 1, 2, 3, default: 2
123
+ expect(temp <= 1).to be_false
134
124
  end
135
125
  end
136
126
 
137
127
  describe '#>' do
138
128
  it 'returns true if matching' do
139
- temp = Juncture.new :first, :second, :third, default: :second
140
- expect(temp > :first).to be_true
141
- end
142
-
143
- it 'returns false if not matching' do
144
- temp = Juncture.new :first, :second, :third, default: :second
145
- expect(temp > :second).to be_false
129
+ temp = Juncture.new 1, 2, 3, default: 2
130
+ expect(temp > 1).to be_true
146
131
  end
147
132
 
148
133
  it 'returns false if not matching' do
149
- temp = Juncture.new :first, :second, :third, default: :second
150
- expect(temp > :third).to be_false
134
+ temp = Juncture.new 1, 2, 3, default: 2
135
+ expect(temp > 2).to be_false
151
136
  end
152
137
  end
153
138
 
154
139
  describe '#>=' do
155
140
  it 'returns true if matching' do
156
- temp = Juncture.new :first, :second, :third, default: :second
157
- expect(temp >= :first).to be_true
158
- end
159
-
160
- it 'returns true if matching' do
161
- temp = Juncture.new :first, :second, :third, default: :second
162
- expect(temp >= :second).to be_true
141
+ temp = Juncture.new 1, 2, 3, default: 2
142
+ expect(temp >= 2).to be_true
163
143
  end
164
144
 
165
145
  it 'returns false if not matching' do
166
- temp = Juncture.new :first, :second, :third, default: :second
167
- expect(temp >= :third).to be_false
146
+ temp = Juncture.new 1, 2, 3, default: 2
147
+ expect(temp >= 3).to be_false
168
148
  end
169
149
  end
170
150
 
171
151
  describe '#method_missing' do
172
152
  it 'forards to the state array' do
173
- temp = Juncture.new :first, :second, :third, default: :second
174
- expect(temp[1]).to eq :second
153
+ temp = Juncture.new 1, 2, 3, default: 2
154
+ expect(temp[1]).to eq 2
175
155
  expect(temp.length).to eq 3
176
156
  end
177
157
 
178
158
  it 'raises an error to super' do
179
- temp = Juncture.new :first, :second, :third, default: :second
159
+ temp = Juncture.new 1, 2, 3, default: 2
180
160
  expect{ temp.no_response }.to raise_error
181
161
  end
182
162
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: juncture
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Slaughter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-04 00:00:00.000000000 Z
11
+ date: 2014-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -72,10 +72,10 @@ executables: []
72
72
  extensions: []
73
73
  extra_rdoc_files: []
74
74
  files:
75
- - README.md
76
75
  - LICENSE
77
- - lib/juncture/version.rb
76
+ - README.md
78
77
  - lib/juncture.rb
78
+ - lib/juncture/version.rb
79
79
  - spec/juncture_spec.rb
80
80
  - spec/spec_helper.rb
81
81
  homepage: http://benslaughter.github.io/juncture/
@@ -98,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
98
  version: '0'
99
99
  requirements: []
100
100
  rubyforge_project:
101
- rubygems_version: 2.0.3
101
+ rubygems_version: 2.2.2
102
102
  signing_key:
103
103
  specification_version: 4
104
104
  summary: Simple state object