juncture 0.1.3 → 0.1.4

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: 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