muster 0.0.10 → 0.0.11

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.
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Muster::Rack do
4
- let(:application) { lambda{|env| [200, {'Content-Type' => 'text/plain'}, '']} }
4
+ let(:application) { lambda { |_| [200, { 'Content-Type' => 'text/plain' }, ''] } }
5
5
  let(:environment) { Rack::MockRequest.env_for('/?name=value&order=name') }
6
6
  let(:options) { {} }
7
7
  let(:middleware) { Muster::Rack.new(application, Muster::Strategies::Hash, options) }
@@ -9,7 +9,7 @@ describe Muster::Rack do
9
9
  it 'parse query string with strategy' do
10
10
  middleware.call(environment)
11
11
 
12
- environment[Muster::Rack::QUERY].should == {'name' => 'value', 'order' => 'name'}
12
+ environment[Muster::Rack::QUERY].should eq('name' => 'value', 'order' => 'name')
13
13
  environment[Muster::Rack::QUERY].should be_an_instance_of(Muster::Results)
14
14
  end
15
15
 
@@ -18,7 +18,7 @@ describe Muster::Rack do
18
18
 
19
19
  middleware.call(environment)
20
20
 
21
- environment[Muster::Rack::QUERY].should == {'name' => 'value'}
21
+ environment[Muster::Rack::QUERY].should eq('name' => 'value')
22
22
  environment[Muster::Rack::QUERY].should be_an_instance_of(Muster::Results)
23
23
  end
24
24
 
@@ -26,27 +26,27 @@ describe Muster::Rack do
26
26
  strategy = Muster::Strategies::Hash.new(:field => :name)
27
27
  Muster::Rack.new(application, strategy).call(environment)
28
28
 
29
- environment[Muster::Rack::QUERY].should == {'name' => 'value'}
29
+ environment[Muster::Rack::QUERY].should eq('name' => 'value')
30
30
  environment[Muster::Rack::QUERY].should be_an_instance_of(Muster::Results)
31
31
  end
32
32
 
33
33
  it 'merges multiple strategies into one result' do
34
34
  Muster::Rack.new(application, Muster::Strategies::Hash, :field => :name).call(environment)
35
- environment[Muster::Rack::QUERY].should == {'name' => 'value'}
35
+ environment[Muster::Rack::QUERY].should eq('name' => 'value')
36
36
  environment[Muster::Rack::QUERY].should be_an_instance_of(Muster::Results)
37
37
 
38
38
  Muster::Rack.new(application, Muster::Strategies::Hash, :field => :order).call(environment)
39
- environment[Muster::Rack::QUERY].should == {'name' => 'value', 'order' => 'name'}
39
+ environment[Muster::Rack::QUERY].should eq('name' => 'value', 'order' => 'name')
40
40
  environment[Muster::Rack::QUERY].should be_an_instance_of(Muster::Results)
41
41
  end
42
42
 
43
43
  it 'supports indifferent access' do
44
44
  Muster::Rack.new(application, Muster::Strategies::Hash, :field => :name).call(environment)
45
- environment[Muster::Rack::QUERY].should == {'name' => 'value'}
45
+ environment[Muster::Rack::QUERY].should eq('name' => 'value')
46
46
  environment[Muster::Rack::QUERY].should be_an_instance_of(Muster::Results)
47
47
 
48
48
  Muster::Rack.new(application, Muster::Strategies::Hash, :field => :order).call(environment)
49
- environment[Muster::Rack::QUERY].should == {'name' => 'value', 'order' => 'name'}
49
+ environment[Muster::Rack::QUERY].should eq('name' => 'value', 'order' => 'name')
50
50
  environment[Muster::Rack::QUERY].should be_an_instance_of(Muster::Results)
51
51
 
52
52
  environment[Muster::Rack::QUERY]['name'].should eq 'value'
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Muster::Results do
4
- let(:data) { {:name => [1, 2, 3]} }
4
+ let(:data) { { :name => [1, 2, 3] } }
5
5
  let(:options) { {} }
6
6
  subject(:results) { Muster::Results.new(data, options) }
7
7
 
@@ -10,7 +10,7 @@ describe Muster::Results do
10
10
  describe '#filter' do
11
11
  context 'without options hash' do
12
12
  it 'returns the same as fetch' do
13
- results.filter(:name).should eq [1,2,3]
13
+ results.filter(:name).should eq [1, 2, 3]
14
14
  end
15
15
 
16
16
  it 'supports a default value' do
@@ -18,21 +18,21 @@ describe Muster::Results do
18
18
  end
19
19
 
20
20
  it 'throws exception without default' do
21
- expect{ results.filter(:bogons) }.to raise_error(KeyError)
21
+ expect { results.filter(:bogons) }.to raise_error(KeyError)
22
22
  end
23
23
  end
24
24
 
25
25
  context 'with options hash' do
26
26
  context 'with :except option' do
27
27
  context 'with data value as Array' do
28
- before { data[:name] = [1,2,3] }
28
+ before { data[:name] = [1, 2, 3] }
29
29
 
30
30
  it 'returns values not listed in :except as array' do
31
- results.filter(:name, :except => [2]).should eq [1,3]
31
+ results.filter(:name, :except => [2]).should eq [1, 3]
32
32
  end
33
33
 
34
34
  it 'returns values not listed in :except as scalar' do
35
- results.filter(:name, :except => 2).should eq [1,3]
35
+ results.filter(:name, :except => 2).should eq [1, 3]
36
36
  end
37
37
  end
38
38
 
@@ -55,7 +55,7 @@ describe Muster::Results do
55
55
  end
56
56
 
57
57
  it 'returns values listed in :only as array' do
58
- results.filter(:name, :only => [1,3]).should eq [1,3]
58
+ results.filter(:name, :only => [1, 3]).should eq [1, 3]
59
59
  end
60
60
  end
61
61
  end
@@ -80,7 +80,7 @@ describe Muster::Results do
80
80
 
81
81
  filtered_results = results.filtered
82
82
  filtered_results.should be_an_instance_of(Muster::Results)
83
- filtered_results.should == {"name"=>[2, 3], "page"=>1, "order"=>[], "where"=>nil}
83
+ filtered_results.should eq('name' => [2, 3], 'page' => 1, 'order' => [], 'where' => nil)
84
84
  end
85
85
  end
86
86
  end
@@ -93,7 +93,7 @@ describe Muster::Results do
93
93
  end
94
94
 
95
95
  it 'returns a Hash with method missing dot notation' do
96
- data[:pagination] = {:page => 1, :per_page => 10}
96
+ data[:pagination] = { :page => 1, :per_page => 10 }
97
97
 
98
98
  results.pagination.should be_an_kind_of(Hash)
99
99
  results.pagination.page.should eq 1
@@ -105,7 +105,7 @@ describe Muster::Results do
105
105
 
106
106
  context 'without matching key' do
107
107
  it 'returns NoMethodError' do
108
- expect{ results.foop }.to raise_error(NoMethodError)
108
+ expect { results.foop }.to raise_error(NoMethodError)
109
109
  end
110
110
  end
111
111
 
@@ -6,7 +6,17 @@ describe Muster::Strategies::ActiveRecord do
6
6
 
7
7
  describe '#parse' do
8
8
  it 'returns a Muster::Results instance' do
9
- subject.parse('').should == {"select"=>[], "order"=>[], "limit"=>30, "offset"=>nil, "where"=>{}, "joins"=>{}, "includes"=>{}, "pagination"=>{:page=>1, :per_page=>30}}
9
+ result = {
10
+ 'select' => [],
11
+ 'order' => [],
12
+ 'limit' => 30,
13
+ 'offset' => nil,
14
+ 'where' => {},
15
+ 'joins' => {},
16
+ 'includes' => {},
17
+ 'pagination' => { :page => 1, :per_page => 30 }
18
+ }
19
+ subject.parse('').should eq(result)
10
20
  subject.parse('').should be_an_instance_of(Muster::Results)
11
21
  end
12
22
 
@@ -21,7 +31,6 @@ describe Muster::Strategies::ActiveRecord do
21
31
 
22
32
  it 'supports comma separated values' do
23
33
  subject.parse('select=id&select=guid,name')[:select].should == ['id', 'guid', 'name']
24
-
25
34
  end
26
35
  end
27
36
 
@@ -59,11 +68,11 @@ describe Muster::Strategies::ActiveRecord do
59
68
  end
60
69
 
61
70
  it 'returns a nested hash of separated values' do
62
- subject.parse('joins=author.country.name')[:joins].should eq [{'author' => { 'country' => 'name'}}]
71
+ subject.parse('joins=author.country.name')[:joins].should eq [{ 'author' => { 'country' => 'name' } }]
63
72
  end
64
73
 
65
74
  it 'returns an array of nested hashes' do
66
- subject.parse('joins=author.country.name,activity.rule')[:joins].should eq [{'author' => { 'country' => 'name'}}, {'activity' => 'rule'}]
75
+ subject.parse('joins=author.country.name,activity.rule')[:joins].should eq [{ 'author' => { 'country' => 'name' } }, { 'activity' => 'rule' }]
67
76
  end
68
77
  end
69
78
 
@@ -77,17 +86,18 @@ describe Muster::Strategies::ActiveRecord do
77
86
  end
78
87
 
79
88
  it 'returns a nested hash of separated values' do
80
- subject.parse('includes=author.country.name')[:includes].should eq [{'author' => { 'country' => 'name'}}]
89
+ subject.parse('includes=author.country.name')[:includes].should eq [{ 'author' => { 'country' => 'name' } }]
81
90
  end
82
91
 
83
92
  it 'returns an array of nested hashes' do
84
- subject.parse('includes=author.country.name,activity.rule')[:includes].should eq [{'author' => { 'country' => 'name'}}, {'activity' => 'rule'}]
93
+ results = [{ 'author' => { 'country' => 'name' } }, { 'activity' => 'rule' }]
94
+ subject.parse('includes=author.country.name,activity.rule')[:includes].should eq results
85
95
  end
86
96
  end
87
97
 
88
98
  context 'pagination' do
89
99
  it 'returns default will paginate compatible pagination' do
90
- subject.parse('')[:pagination].should == {:page => 1, :per_page => 30}
100
+ subject.parse('')[:pagination].should eq(:page => 1, :per_page => 30)
91
101
  end
92
102
 
93
103
  it 'returns default limit options' do
@@ -100,35 +110,35 @@ describe Muster::Strategies::ActiveRecord do
100
110
 
101
111
  it 'accepts per_page option' do
102
112
  results = subject.parse('per_page=10')
103
- results[:pagination].should == {:page => 1, :per_page => 10}
113
+ results[:pagination].should eq(:page => 1, :per_page => 10)
104
114
  results[:limit].should eq 10
105
115
  results[:offset].should eq nil
106
116
  end
107
117
 
108
118
  it 'ensures per_page is positive integer' do
109
119
  results = subject.parse('per_page=-10')
110
- results[:pagination].should == {:page => 1, :per_page => 30}
120
+ results[:pagination].should eq(:page => 1, :per_page => 30)
111
121
  results[:limit].should eq 30
112
122
  results[:offset].should eq nil
113
123
  end
114
124
 
115
125
  it 'accepts page_size option' do
116
126
  results = subject.parse('page_size=10')
117
- results[:pagination].should == {:page => 1, :per_page => 10}
127
+ results[:pagination].should eq(:page => 1, :per_page => 10)
118
128
  results[:limit].should eq 10
119
129
  results[:offset].should eq nil
120
130
  end
121
131
 
122
132
  it 'accepts page option' do
123
133
  results = subject.parse('page=2')
124
- results[:pagination].should == {:page => 2, :per_page => 30}
134
+ results[:pagination].should eq(:page => 2, :per_page => 30)
125
135
  results[:limit].should eq 30
126
136
  results[:offset].should eq 30
127
137
  end
128
138
 
129
139
  it 'ensures page is positive integer' do
130
140
  results = subject.parse('page=a')
131
- results[:pagination].should == {:page => 1, :per_page => 30}
141
+ results[:pagination].should eq(:page => 1, :per_page => 30)
132
142
  results[:limit].should eq 30
133
143
  results[:offset].should eq nil
134
144
  end
@@ -136,55 +146,54 @@ describe Muster::Strategies::ActiveRecord do
136
146
 
137
147
  context 'wheres' do
138
148
  it 'returns a single value as a string in a hash' do
139
- subject.parse('where=id:1')[:where].should == {'id' => '1'}
149
+ subject.parse('where=id:1')[:where].should eq('id' => '1')
140
150
  end
141
151
 
142
152
  it 'returns a single value as nil in a hash' do
143
- subject.parse('where=id:null')[:where].should == {'id' => nil}
144
- subject.parse('where=id:NULL')[:where].should == {'id' => nil}
145
- subject.parse('where=id:Null')[:where].should == {'id' => nil}
146
- subject.parse('where=id:nil')[:where].should == {'id' => nil}
147
- subject.parse('where=id:NIL')[:where].should == {'id' => nil}
148
- subject.parse('where=id:Nil')[:where].should == {'id' => nil}
153
+ subject.parse('where=id:null')[:where].should eq('id' => nil)
154
+ subject.parse('where=id:NULL')[:where].should eq('id' => nil)
155
+ subject.parse('where=id:Null')[:where].should eq('id' => nil)
156
+ subject.parse('where=id:nil')[:where].should eq('id' => nil)
157
+ subject.parse('where=id:NIL')[:where].should eq('id' => nil)
158
+ subject.parse('where=id:Nil')[:where].should eq('id' => nil)
149
159
  end
150
160
 
151
161
  it 'returns values as an Array in a hash' do
152
- subject.parse('where=id:1&where=id:2')[:where].should == {'id' => ['1', '2']}
162
+ subject.parse('where=id:1&where=id:2')[:where].should eq('id' => ['1', '2'])
153
163
  end
154
164
 
155
165
  it 'supports pipe for multiple values' do
156
- subject.parse('where=id:1|2')[:where].should == {'id' => ['1', '2']}
166
+ subject.parse('where=id:1|2')[:where].should eq('id' => ['1', '2'])
157
167
  end
158
168
  end
159
169
 
160
170
  context 'the full monty' do
161
171
  it 'returns a hash of all options' do
162
- query_string = 'select=id,guid,name&where=name:foop&order=id:desc&order=name&page=3&page_size=5&includes=author.country,comments&joins=activity'
172
+ query_string = 'select=id,guid,name&where=name:foop&order=id:desc&order=name&page=3&page_size=5&includes=author.country,comments&joins=activity' # rubocop:disable Metrics/LineLength
163
173
  results = subject.parse(query_string)
164
174
 
165
- results[:select].should == ['id', 'guid', 'name']
166
- results[:where].should == {'name' => 'foop'}
167
- results[:order].should == ['id desc', 'name asc']
168
- results[:includes].should == [{'author' => 'country'}, 'comments']
169
- results[:joins].should == ['activity']
170
- results[:pagination].should == {:page => 3, :per_page => 5}
171
- results[:offset].should == 10
172
- results[:limit].should == 5
175
+ results[:select].should eq ['id', 'guid', 'name']
176
+ results[:where].should eq('name' => 'foop')
177
+ results[:order].should eq ['id desc', 'name asc']
178
+ results[:includes].should eq [{ 'author' => 'country' }, 'comments']
179
+ results[:joins].should eq ['activity']
180
+ results[:pagination].should eq(:page => 3, :per_page => 5)
181
+ results[:offset].should eq 10
182
+ results[:limit].should eq 5
173
183
  end
174
184
 
175
185
  it 'supports indifferent access' do
176
- query_string = 'select=id,guid,name&where=name:foop&order=id:desc&order=name&page=3&page_size=5&includes=author.country,comments&joins=activity'
186
+ query_string = 'select=id,guid,name&where=name:foop&order=id:desc&order=name&page=3&page_size=5&includes=author.country,comments&joins=activity' # rubocop:disable Metrics/LineLength
177
187
  results = subject.parse(query_string)
178
188
 
179
- results['select'].should == ['id', 'guid', 'name']
180
- results['where'].should == {'name' => 'foop'}
181
- results['order'].should == ['id desc', 'name asc']
182
- results['includes'].should == [{'author' => 'country'}, 'comments']
183
- results['joins'].should == ['activity']
184
- results['pagination'].should == {:page => 3, :per_page => 5}
185
- results['offset'].should == 10
186
- results['limit'].should == 5
187
-
189
+ results['select'].should eq ['id', 'guid', 'name']
190
+ results['where'].should eq('name' => 'foop')
191
+ results['order'].should eq ['id desc', 'name asc']
192
+ results['includes'].should eq [{ 'author' => 'country' }, 'comments']
193
+ results['joins'].should eq ['activity']
194
+ results['pagination'].should eq(:page => 3, :per_page => 5)
195
+ results['offset'].should eq 10
196
+ results['limit'].should eq 5
188
197
  end
189
198
  end
190
199
  end
@@ -5,15 +5,14 @@ describe Muster::Strategies::FilterExpression do
5
5
  subject { Muster::Strategies::FilterExpression.new(options) }
6
6
 
7
7
  describe '#parse' do
8
-
9
8
  context 'by default' do
10
9
  it 'returns empty hash for empty query string' do
11
- subject.parse('').should == {}
10
+ subject.parse('').should eq({})
12
11
  subject.parse('').should be_an_instance_of(Muster::Results)
13
12
  end
14
13
 
15
14
  it 'returns hash of all key/value pairs' do
16
- subject.parse('where=id:1&filter=name:foop').should == { 'where' => {'id' => '1'}, 'filter' => {'name' => 'foop'} }
15
+ subject.parse('where=id:1&filter=name:foop').should eq('where' => { 'id' => '1' }, 'filter' => { 'name' => 'foop' })
17
16
  end
18
17
 
19
18
  it 'hash supports indifferent key access' do
@@ -23,19 +22,19 @@ describe Muster::Strategies::FilterExpression do
23
22
  end
24
23
 
25
24
  it 'combines multiple expressions into an array' do
26
- subject.parse('where=id:1&where=id:2').should == { 'where' => {'id' => ['1', '2']} }
25
+ subject.parse('where=id:1&where=id:2').should eq('where' => { 'id' => ['1', '2'] })
27
26
  end
28
27
 
29
28
  it 'support for multiple values using |' do
30
- subject.parse('where=id:1|2&where=id:3').should == { 'where' => {'id' => ['1', '2', '3']} }
29
+ subject.parse('where=id:1|2&where=id:3').should eq('where' => { 'id' => ['1', '2', '3'] })
31
30
  end
32
31
 
33
32
  it 'support for multiple expressions using ,' do
34
- subject.parse('where=id:1,id:2,id:3').should == { 'where' => {'id' => ['1', '2', '3']} }
33
+ subject.parse('where=id:1,id:2,id:3').should eq('where' => { 'id' => ['1', '2', '3'] })
35
34
  end
36
35
 
37
36
  it 'discards non unique values' do
38
- subject.parse('where=id:1&where=id:2&where=id:1').should == { 'where' => {'id' => ['1', '2']} }
37
+ subject.parse('where=id:1&where=id:2&where=id:1').should eq('where' => { 'id' => ['1', '2'] })
39
38
  end
40
39
  end
41
40
 
@@ -47,11 +46,11 @@ describe Muster::Strategies::FilterExpression do
47
46
  end
48
47
 
49
48
  it 'converts comma separated value into Array' do
50
- subject.parse('where=id:1,2').should == { 'where' => {'id' => ['1', '2']} }
49
+ subject.parse('where=id:1,2').should eq('where' => { 'id' => ['1', '2'] })
51
50
  end
52
51
 
53
52
  it 'ignores spaces after commas' do
54
- subject.parse('where=id:1,+2,%20 3').should == { 'where' => {'id' => ['1', '2', '3']} }
53
+ subject.parse('where=id:1,+2,%20 3').should eq('where' => { 'id' => ['1', '2', '3'] })
55
54
  end
56
55
  end
57
56
 
@@ -62,7 +61,7 @@ describe Muster::Strategies::FilterExpression do
62
61
  end
63
62
 
64
63
  it 'converts comma separated value into Array' do
65
- subject.parse('where=id:1,2,3').should == { 'where' => {'id' => ['1', '2', '3']} }
64
+ subject.parse('where=id:1,2,3').should eq('where' => { 'id' => ['1', '2', '3'] })
66
65
  end
67
66
  end
68
67
  end
@@ -72,11 +71,11 @@ describe Muster::Strategies::FilterExpression do
72
71
  before { options[:field_separator] = /\s*!\s*/ }
73
72
 
74
73
  it 'splits field from values' do
75
- subject.parse('where=id!1').should == { 'where' => {'id' => '1'} }
74
+ subject.parse('where=id!1').should eq('where' => { 'id' => '1' })
76
75
  end
77
76
 
78
77
  it 'ignores spaces after field' do
79
- subject.parse('where=id ! 1').should == { 'where' => {'id' => '1'} }
78
+ subject.parse('where=id ! 1').should eq('where' => { 'id' => '1' })
80
79
  end
81
80
  end
82
81
 
@@ -84,7 +83,7 @@ describe Muster::Strategies::FilterExpression do
84
83
  before { options[:field_separator] = '!' }
85
84
 
86
85
  it 'converts comma separated value into Array' do
87
- subject.parse('where=id!1').should == { 'where' => {'id' => '1'} }
86
+ subject.parse('where=id!1').should eq('where' => { 'id' => '1' })
88
87
  end
89
88
  end
90
89
  end
@@ -94,7 +93,7 @@ describe Muster::Strategies::FilterExpression do
94
93
  before { options[:field] = :where }
95
94
 
96
95
  it 'fields returns expressions for the key specified' do
97
- subject.parse('where=id:1&filters=id:2').should == { 'where' => {'id' => '1'} }
96
+ subject.parse('where=id:1&filters=id:2').should eq('where' => { 'id' => '1' })
98
97
  end
99
98
  end
100
99
 
@@ -102,7 +101,7 @@ describe Muster::Strategies::FilterExpression do
102
101
  before { options[:fields] = [:where, :filter] }
103
102
 
104
103
  it 'fields returns expressions for the keys specified' do
105
- subject.parse('where=id:1&filter=id:2&attribute=id:3').should == { 'where' => {'id' => '1'}, 'filter' => {'id' => '2'} }
104
+ subject.parse('where=id:1&filter=id:2&attribute=id:3').should eq('where' => { 'id' => '1' }, 'filter' => { 'id' => '2' })
106
105
  end
107
106
  end
108
107
 
@@ -110,7 +109,7 @@ describe Muster::Strategies::FilterExpression do
110
109
  before { options[:field] = 'where' }
111
110
 
112
111
  it 'fields returns expressions for the key specified' do
113
- subject.parse('where=id:1&filter=id:2').should == { 'where' => {'id' => '1'} }
112
+ subject.parse('where=id:1&filter=id:2').should eq('where' => { 'id' => '1' })
114
113
  end
115
114
  end
116
115
 
@@ -118,10 +117,9 @@ describe Muster::Strategies::FilterExpression do
118
117
  before { options[:fields] = ['where', 'filter'] }
119
118
 
120
119
  it 'fields returns expressions for the keys specified' do
121
- subject.parse('where=id:1&filter=id:2&attribute=id:3').should == { 'where' => {'id' => '1'}, 'filter' => {'id' => '2'} }
120
+ subject.parse('where=id:1&filter=id:2&attribute=id:3').should eq('where' => { 'id' => '1' }, 'filter' => { 'id' => '2' })
122
121
  end
123
122
  end
124
123
  end
125
-
126
124
  end
127
125
  end
@@ -5,15 +5,14 @@ describe Muster::Strategies::Hash do
5
5
  subject { Muster::Strategies::Hash.new(options) }
6
6
 
7
7
  describe '#parse' do
8
-
9
8
  context 'by default' do
10
9
  it 'returns empty hash for empty query string' do
11
- subject.parse('').should == {}
10
+ subject.parse('').should eq({})
12
11
  subject.parse('').should be_an_instance_of(Muster::Results)
13
12
  end
14
13
 
15
14
  it 'returns hash of all key/value pairs' do
16
- subject.parse('a=1&b=2').should == {'a' => '1', 'b' => '2'}
15
+ subject.parse('a=1&b=2').should eq('a' => '1', 'b' => '2')
17
16
  end
18
17
 
19
18
  it 'hash supports indifferent key access' do
@@ -23,11 +22,11 @@ describe Muster::Strategies::Hash do
23
22
  end
24
23
 
25
24
  it 'combines multiple key values into an array' do
26
- subject.parse('a=1&a=2').should == {'a' => ['1', '2']}
25
+ subject.parse('a=1&a=2').should eq('a' => ['1', '2'])
27
26
  end
28
27
 
29
28
  it 'discards non unique values' do
30
- subject.parse('a=1&a=2&a=1').should == {'a' => ['1', '2']}
29
+ subject.parse('a=1&a=2&a=1').should eq('a' => ['1', '2'])
31
30
  end
32
31
  end
33
32
 
@@ -36,11 +35,11 @@ describe Muster::Strategies::Hash do
36
35
  before { options[:value_separator] = /,\s*/ }
37
36
 
38
37
  it 'converts comma separated value into Array' do
39
- subject.parse('a=1,2&a=3').should == {'a' => ['1', '2', '3']}
38
+ subject.parse('a=1,2&a=3').should eq('a' => ['1', '2', '3'])
40
39
  end
41
40
 
42
41
  it 'ignores spaces after commas' do
43
- subject.parse('a=1,+2,%20 3').should == {'a' => ['1', '2', '3']}
42
+ subject.parse('a=1,+2,%20 3').should eq('a' => ['1', '2', '3'])
44
43
  end
45
44
  end
46
45
 
@@ -48,7 +47,7 @@ describe Muster::Strategies::Hash do
48
47
  before { options[:value_separator] = '|' }
49
48
 
50
49
  it 'converts comma separated value into Array' do
51
- subject.parse('a=1|2|3').should == {'a' => ['1', '2', '3']}
50
+ subject.parse('a=1|2|3').should eq('a' => ['1', '2', '3'])
52
51
  end
53
52
  end
54
53
  end
@@ -58,7 +57,7 @@ describe Muster::Strategies::Hash do
58
57
  before { options[:field] = :a }
59
58
 
60
59
  it 'fields returns values for the key specified' do
61
- subject.parse('a=1&b=2').should == {'a' => '1'}
60
+ subject.parse('a=1&b=2').should eq('a' => '1')
62
61
  end
63
62
  end
64
63
 
@@ -66,7 +65,7 @@ describe Muster::Strategies::Hash do
66
65
  before { options[:fields] = [:a, :b] }
67
66
 
68
67
  it 'fields returns values for the keys specified' do
69
- subject.parse('a=1&b=2&c=3').should == {'a' => '1', 'b' => '2'}
68
+ subject.parse('a=1&b=2&c=3').should eq('a' => '1', 'b' => '2')
70
69
  end
71
70
  end
72
71
 
@@ -74,7 +73,7 @@ describe Muster::Strategies::Hash do
74
73
  before { options[:field] = 'a' }
75
74
 
76
75
  it 'fields returns values for the key specified' do
77
- subject.parse('a=1&b=2').should == {'a' => '1'}
76
+ subject.parse('a=1&b=2').should eq('a' => '1')
78
77
  end
79
78
  end
80
79
 
@@ -82,10 +81,9 @@ describe Muster::Strategies::Hash do
82
81
  before { options[:fields] = ['a', 'b'] }
83
82
 
84
83
  it 'fields returns values for the keys specified' do
85
- subject.parse('a=1&b=2&c=3').should == {'a' => '1', 'b' => '2'}
84
+ subject.parse('a=1&b=2&c=3').should eq('a' => '1', 'b' => '2')
86
85
  end
87
86
  end
88
87
  end
89
-
90
88
  end
91
89
  end