gamifier 1.0.8 → 1.1.0
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.
- data/.rspec +1 -0
- data/README.md +55 -3
- data/examples/dev.rb +18 -7
- data/lib/gamifier/dsl/api_key.rb +19 -0
- data/lib/gamifier/dsl/network.rb +60 -6
- data/lib/gamifier/dsl/site.rb +5 -0
- data/lib/gamifier/dsl.rb +3 -2
- data/lib/gamifier/engine.rb +8 -4
- data/lib/gamifier/models/api_key.rb +10 -0
- data/lib/gamifier/models/network.rb +10 -0
- data/lib/gamifier/version.rb +1 -1
- data/lib/gamifier.rb +3 -4
- data/spec/integration/collection_integration_spec.rb +6 -6
- data/spec/integration/dsl_integration_spec.rb +59 -63
- data/spec/integration/player_integration_spec.rb +8 -5
- data/spec/integration/user_integration_spec.rb +21 -12
- data/spec/spec_integration_helper.rb +12 -12
- data/spec/unit/collection_spec.rb +17 -17
- data/spec/unit/dsl/api_key_spec.rb +42 -0
- data/spec/unit/dsl/network_spec.rb +130 -17
- data/spec/unit/dsl/site_spec.rb +120 -27
- data/spec/unit/dsl_spec.rb +2 -2
- data/spec/unit/engine_spec.rb +98 -10
- data/spec/unit/gamifier_spec.rb +9 -7
- data/spec/unit/model_spec.rb +29 -0
- data/spec/unit/models/activity_definition_spec.rb +15 -15
- data/spec/unit/models/player_spec.rb +21 -14
- metadata +8 -2
data/spec/unit/engine_spec.rb
CHANGED
@@ -23,37 +23,112 @@ describe Gamifier::Engine do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
describe "#uri_to" do
|
26
|
+
|
26
27
|
it "should correctly concatenate URIs" do
|
27
28
|
@engine.uri_to.to_s.should == "http://somewhere.ltd/path/1234/"
|
28
29
|
@engine.uri_to("resource").to_s.should == "http://somewhere.ltd/path/1234/resource"
|
29
30
|
@engine.uri_to("/resource").to_s.should == "http://somewhere.ltd/resource"
|
30
31
|
@engine.uri_to("../resource").to_s.should == "http://somewhere.ltd/path/resource"
|
31
32
|
end
|
33
|
+
|
32
34
|
end
|
33
35
|
|
34
36
|
describe "configuration" do
|
37
|
+
|
35
38
|
before do
|
36
39
|
@engine = Gamifier::Engine.new(:key => "new-key")
|
37
40
|
end
|
41
|
+
|
38
42
|
it "should overwrite the global configuration with the given parameters at intialization time" do
|
39
43
|
@engine.config.should == {:uri => "http://somewhere.ltd/path/", :key => "new-key"}
|
40
44
|
Gamifier.config.should == {:uri => "http://somewhere.ltd/path/", :key => "1234"}
|
41
45
|
end
|
42
46
|
|
43
47
|
describe "#ok?" do
|
44
|
-
it "should be true" do
|
45
|
-
@engine.should be_ok
|
46
|
-
end
|
47
48
|
|
48
|
-
|
49
|
-
|
50
|
-
|
49
|
+
subject { @engine.ok? }
|
50
|
+
|
51
|
+
context "with enterprise_key" do
|
52
|
+
|
53
|
+
before do
|
54
|
+
@engine.config[:key] = ''
|
55
|
+
@engine.config[:enterprise_key] = '5678'
|
56
|
+
end
|
57
|
+
|
58
|
+
context "with uri" do
|
59
|
+
|
60
|
+
before do
|
61
|
+
@engine.config[:uri] = 'http://foo.com'
|
62
|
+
end
|
63
|
+
|
64
|
+
it { should be_true }
|
65
|
+
|
66
|
+
end
|
67
|
+
|
68
|
+
context "without uri" do
|
69
|
+
|
70
|
+
before do
|
71
|
+
@engine.config[:uri] = ''
|
72
|
+
end
|
73
|
+
|
74
|
+
it { should_not be_true }
|
75
|
+
|
76
|
+
end
|
77
|
+
|
51
78
|
end
|
52
79
|
|
53
|
-
|
54
|
-
|
55
|
-
|
80
|
+
context "without enterprise_key" do
|
81
|
+
|
82
|
+
before do
|
83
|
+
@engine.config[:enterprise_key] = ''
|
84
|
+
end
|
85
|
+
|
86
|
+
context "with key and uri" do
|
87
|
+
|
88
|
+
before do
|
89
|
+
@engine.config[:key] = '1234'
|
90
|
+
@engine.config[:uri] = 'http://foo.com'
|
91
|
+
end
|
92
|
+
|
93
|
+
it { should be_true }
|
94
|
+
|
95
|
+
end
|
96
|
+
|
97
|
+
context "with key" do
|
98
|
+
|
99
|
+
before do
|
100
|
+
@engine.config[:key] = '1234'
|
101
|
+
@engine.config[:uri] = ''
|
102
|
+
end
|
103
|
+
|
104
|
+
it { should_not be_true }
|
105
|
+
|
106
|
+
end
|
107
|
+
|
108
|
+
context "with uri" do
|
109
|
+
|
110
|
+
before do
|
111
|
+
@engine.config[:key] = ''
|
112
|
+
@engine.config[:uri] = 'http://foo.com'
|
113
|
+
end
|
114
|
+
|
115
|
+
it { should_not be_true }
|
116
|
+
|
117
|
+
end
|
118
|
+
|
119
|
+
context "without key and uri" do
|
120
|
+
|
121
|
+
before do
|
122
|
+
@engine.config[:key] = ''
|
123
|
+
@engine.config[:uri] = ''
|
124
|
+
end
|
125
|
+
|
126
|
+
it { should_not be_true }
|
127
|
+
|
128
|
+
end
|
129
|
+
|
56
130
|
end
|
131
|
+
|
57
132
|
end
|
58
133
|
|
59
134
|
end
|
@@ -71,26 +146,31 @@ describe Gamifier::Engine do
|
|
71
146
|
end
|
72
147
|
|
73
148
|
describe "#transmit" do
|
149
|
+
|
74
150
|
it "transmits POST requests to the API" do
|
75
151
|
stub_request(:post, "http://somewhere.ltd/path/1234/resource.json").
|
76
152
|
with(:body => {:a => "b", :c => ["d", "e"]}, :headers => { 'Content-Type' => 'application/x-www-form-urlencoded' })
|
77
153
|
@engine.transmit :post, "resource", :body => {"a" => "b", :c => ["d", "e"]}
|
78
154
|
end
|
155
|
+
|
79
156
|
it "transmits GET requests to the API" do
|
80
157
|
stub_request(:get, "http://somewhere.ltd/path/1234/resource.json").
|
81
158
|
with(:query => {"limit" => "5"})
|
82
159
|
@engine.transmit :get, "resource", :query => {"limit" => "5"}
|
83
160
|
end
|
161
|
+
|
84
162
|
it "should return true if the response is 204" do
|
85
163
|
stub_request(:get, "http://somewhere.ltd/resource.json").
|
86
164
|
to_return(:status => 204)
|
87
165
|
@engine.transmit(:get, "/resource").should be_true
|
88
166
|
end
|
167
|
+
|
89
168
|
it "should return the parsed response if the status is in the 2xx range (except 204)" do
|
90
169
|
stub_request(:get, "http://somewhere.ltd/resource.json").
|
91
170
|
to_return(:body => JSON.dump(site), :headers => {'Content-Type' => 'application/json;charset=utf-8'})
|
92
171
|
@engine.transmit(:get, "/resource").should == site
|
93
172
|
end
|
173
|
+
|
94
174
|
[:get, :head].each do |method|
|
95
175
|
it "should return nil if the response status is 422 (Unprocessable Entity) and method is #{method}" do
|
96
176
|
stub_request(method, "http://somewhere.ltd/resource.json").
|
@@ -98,6 +178,7 @@ describe Gamifier::Engine do
|
|
98
178
|
@engine.transmit(method, "/resource").should be_nil
|
99
179
|
end
|
100
180
|
end
|
181
|
+
|
101
182
|
[:delete, :post, :put].each do |method|
|
102
183
|
it "should return false if the response status is 422 (Unprocessable Entity) and method is #{method}" do
|
103
184
|
stub_request(method, "http://somewhere.ltd/resource.json").
|
@@ -105,11 +186,13 @@ describe Gamifier::Engine do
|
|
105
186
|
@engine.transmit(method, "/resource").should be_false
|
106
187
|
end
|
107
188
|
end
|
189
|
+
|
108
190
|
it "should return nil if the response status is 404" do
|
109
191
|
stub_request(:get, "http://somewhere.ltd/resource.json").
|
110
192
|
to_return(:status => 404)
|
111
193
|
@engine.transmit(:get, "/resource").should be_nil
|
112
194
|
end
|
195
|
+
|
113
196
|
it "should raise an HTTPServerError for a 5xx code" do
|
114
197
|
stub_request(:get, "http://somewhere.ltd/resource.json").
|
115
198
|
to_return(:status => 500)
|
@@ -117,6 +200,7 @@ describe Gamifier::Engine do
|
|
117
200
|
@engine.transmit(:get, "/resource")
|
118
201
|
}.to raise_error Gamifier::HTTPServerError
|
119
202
|
end
|
203
|
+
|
120
204
|
it "should raise an HTTPClientError for a 4xx code" do
|
121
205
|
stub_request(:get, "http://somewhere.ltd/resource.json").
|
122
206
|
to_return(:status => 400)
|
@@ -124,14 +208,17 @@ describe Gamifier::Engine do
|
|
124
208
|
@engine.transmit(:get, "/resource")
|
125
209
|
}.to raise_error Gamifier::HTTPClientError
|
126
210
|
end
|
211
|
+
|
127
212
|
end
|
128
213
|
|
129
214
|
describe "collections" do
|
215
|
+
|
130
216
|
%w{activities activity_definitions groups players rewards reward_definitions sites units users}.each do |collection|
|
131
217
|
it "should respond ##{collection}" do
|
132
218
|
@engine.should respond_to(collection.to_sym)
|
133
219
|
end
|
134
220
|
end
|
221
|
+
|
135
222
|
it "should instantiate a new collection object with the correct model" do
|
136
223
|
collection = @engine.players
|
137
224
|
collection.should be_a(Gamifier::Collection)
|
@@ -140,4 +227,5 @@ describe Gamifier::Engine do
|
|
140
227
|
end
|
141
228
|
|
142
229
|
end
|
143
|
-
|
230
|
+
|
231
|
+
end
|
data/spec/unit/gamifier_spec.rb
CHANGED
@@ -8,18 +8,18 @@ describe Gamifier do
|
|
8
8
|
|
9
9
|
it "should allow to set the API URI" do
|
10
10
|
Gamifier.set :uri, "http://somwhere.ltd"
|
11
|
-
Gamifier.config[:uri].should
|
11
|
+
Gamifier.config[:uri].should eq "http://somwhere.ltd"
|
12
12
|
end
|
13
13
|
|
14
14
|
it "should allow to set the API KEY" do
|
15
15
|
Gamifier.set :key, "1234"
|
16
|
-
Gamifier.config[:key].should
|
16
|
+
Gamifier.config[:key].should eq "1234"
|
17
17
|
end
|
18
18
|
|
19
19
|
it "should allow to set multiple configuration options at once" do
|
20
20
|
Gamifier.set :uri => "http://somewhere.ltd", "key" => "1234"
|
21
|
-
Gamifier.config[:uri].should
|
22
|
-
Gamifier.config[:key].should
|
21
|
+
Gamifier.config[:uri].should eq "http://somewhere.ltd"
|
22
|
+
Gamifier.config[:key].should eq "1234"
|
23
23
|
end
|
24
24
|
|
25
25
|
it "should allow to reset the state" do
|
@@ -31,10 +31,11 @@ describe Gamifier do
|
|
31
31
|
it "should accept a logger object" do
|
32
32
|
logger = mock("logger")
|
33
33
|
Gamifier.logger = logger
|
34
|
-
Gamifier.logger.should
|
34
|
+
Gamifier.logger.should eq logger
|
35
35
|
end
|
36
36
|
|
37
37
|
describe "with proper configuration" do
|
38
|
+
|
38
39
|
before do
|
39
40
|
Gamifier.set :uri => "http://somewhere.ltd/path/", :key => "1234"
|
40
41
|
end
|
@@ -48,13 +49,14 @@ describe Gamifier do
|
|
48
49
|
it "should return an instance of Gamifier::Engine" do
|
49
50
|
Gamifier.engine.should be_instance_of(Gamifier::Engine)
|
50
51
|
end
|
51
|
-
|
52
|
+
|
52
53
|
it "should create a new engine object after reset" do
|
53
54
|
engine = Gamifier.engine
|
54
55
|
Gamifier.reset!
|
55
56
|
Gamifier.set :uri => "http://somewhere.ltd/path/", :key => "1234"
|
56
57
|
Gamifier.engine.should_not be_equal(engine)
|
57
58
|
end
|
59
|
+
|
58
60
|
end
|
59
61
|
|
60
|
-
end
|
62
|
+
end
|
data/spec/unit/model_spec.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Gamifier::Model do
|
4
|
+
|
4
5
|
def raw_find
|
5
6
|
'{"data":{"name":null,"created_at":"2012-05-31T04:59:22-07:00","email":"1234@dimelo.com","_id":"4fc75d1a3dc648153b006183"},"paging":null}'
|
6
7
|
end
|
@@ -31,6 +32,7 @@ describe Gamifier::Model do
|
|
31
32
|
end
|
32
33
|
|
33
34
|
describe "model instances" do
|
35
|
+
|
34
36
|
before do
|
35
37
|
@model = Gamifier::Model.new :x => "y", :a => "b"
|
36
38
|
end
|
@@ -69,50 +71,63 @@ describe Gamifier::Model do
|
|
69
71
|
end
|
70
72
|
|
71
73
|
describe "existing model" do
|
74
|
+
|
72
75
|
before do
|
73
76
|
@model.stub!(:new?).and_return false
|
74
77
|
@model.stub!(:path).and_return("models/1234")
|
75
78
|
end
|
79
|
+
|
76
80
|
it "should save itself using PUT if not new" do
|
77
81
|
@model.engine.should_receive(:transmit).with(:put, "models/1234", :body => {"model" => hash_including(:x => "y")})
|
78
82
|
@model.save
|
79
83
|
end
|
84
|
+
|
80
85
|
it "should destroy itself using DELETE if not new" do
|
81
86
|
@model.engine.should_receive(:transmit).with(:delete, "models/1234")
|
82
87
|
@model.destroy
|
83
88
|
end
|
89
|
+
|
84
90
|
it "should update the model with the given attributes" do
|
85
91
|
@model.engine.should_receive(:transmit).with(:put, "models/1234", :body => {"model" => {:key => "value"}})
|
86
92
|
@model.update_attributes(:key => "value")
|
87
93
|
end
|
94
|
+
|
88
95
|
end
|
89
96
|
|
90
97
|
describe "new model" do
|
98
|
+
|
91
99
|
before do
|
92
100
|
@model.stub!(:new?).and_return true
|
93
101
|
end
|
102
|
+
|
94
103
|
it "should save itself using POST if new" do
|
95
104
|
@model.engine.should_receive(:transmit).with(:post, "models", :body => {"model" => hash_including(:x => "y")})
|
96
105
|
@model.save
|
97
106
|
end
|
107
|
+
|
98
108
|
it "should return true if destroying and new" do
|
99
109
|
@model.destroy.should be_true
|
100
110
|
end
|
111
|
+
|
101
112
|
it "should raise an error if trying to call update_attributes" do
|
102
113
|
expect{ @model.update_attributes(:key => "value") }.to raise_error(Gamifier::Error)
|
103
114
|
end
|
115
|
+
|
104
116
|
end
|
105
117
|
|
106
118
|
describe "#payload_for_submission" do
|
119
|
+
|
107
120
|
it "should reject any attribute not in the list of the mutable_attributes (if any)" do
|
108
121
|
@model.class.mutable_attributes :last_name
|
109
122
|
@model.first_name = "hello"
|
110
123
|
@model.last_name = "world"
|
111
124
|
@model.payload_for_submission.should == {"model" => {:last_name => "world"}}
|
112
125
|
end
|
126
|
+
|
113
127
|
end
|
114
128
|
|
115
129
|
describe "replace_if_successful" do
|
130
|
+
|
116
131
|
it "should replace the attributes if res is a Hash and has a 'data' key" do
|
117
132
|
@model.replace_if_successful(JSON.parse(raw_create)).should == @model
|
118
133
|
@model._id.should == "4fc7661f49f83857cd006044"
|
@@ -123,33 +138,41 @@ describe Gamifier::Model do
|
|
123
138
|
@model.replace_if_successful(value).should == value
|
124
139
|
end
|
125
140
|
end
|
141
|
+
|
126
142
|
end
|
127
143
|
|
128
144
|
end
|
129
145
|
|
130
146
|
describe "FinderMethods" do
|
147
|
+
|
131
148
|
before do
|
132
149
|
@engine = mock(Gamifier::Engine)
|
133
150
|
@collection = Gamifier::Collection.new(@engine, Gamifier::Model)
|
134
151
|
end
|
152
|
+
|
135
153
|
describe "all" do
|
154
|
+
|
136
155
|
it "should issue a get request with no params" do
|
137
156
|
@engine.should_receive(:transmit).with(:get, "models", :query => {:page => 1, :per_page => 50})
|
138
157
|
@collection.all
|
139
158
|
end
|
159
|
+
|
140
160
|
it "should issue a get request with the given params" do
|
141
161
|
@engine.should_receive(:transmit).with(:get, "models", :query => {:page => 1, :per_page => 50, :limit => 5})
|
142
162
|
@collection.all :limit => 5
|
143
163
|
end
|
164
|
+
|
144
165
|
it "should return a list of entries" do
|
145
166
|
@engine.should_receive(:transmit).and_return({'data' => [{'key' => 'value1'}, {'key' => 'value2'}]})
|
146
167
|
entries = @collection.all
|
147
168
|
entries.length.should == 2
|
148
169
|
entries.all?{|e| e.kind_of?(Gamifier::Model)}.should be_true
|
149
170
|
end
|
171
|
+
|
150
172
|
end
|
151
173
|
|
152
174
|
describe "find" do
|
175
|
+
|
153
176
|
it "should return the first entry if data is returned" do
|
154
177
|
@engine.should_receive(:transmit).with(:get, "models/1234@dimelo.com", :query => {}).
|
155
178
|
and_return JSON.parse(raw_find)
|
@@ -157,12 +180,15 @@ describe Gamifier::Model do
|
|
157
180
|
user.should be_a(Gamifier::Model)
|
158
181
|
user._id.should == "4fc75d1a3dc648153b006183"
|
159
182
|
end
|
183
|
+
|
160
184
|
end
|
161
185
|
|
162
186
|
describe "find_by_name" do
|
187
|
+
|
163
188
|
before do
|
164
189
|
@raw_payload = '{"data":[{"name":"karma","label":"Karma","normalized_name":"unit_karma","type":"point","abbreviation":"kar","display_priority":0},{"name":"yoh","label":"Yoh","normalized_name":"unit_yoh","type":"point","abbreviation":"yoh","display_priority":0},{"name":"karma","label":"Karma","normalized_name":"unit_karma","type":"point","abbreviation":"kar","display_priority":0}],"paging":{}}'
|
165
190
|
end
|
191
|
+
|
166
192
|
it "should return the first entry if a matching entry can be found" do
|
167
193
|
@engine.should_receive(:transmit).with(:get, "models", instance_of(Hash)).
|
168
194
|
and_return JSON.parse(@raw_payload)
|
@@ -170,13 +196,16 @@ describe Gamifier::Model do
|
|
170
196
|
entry.should be_a(Gamifier::Model)
|
171
197
|
entry.label.should == "Karma"
|
172
198
|
end
|
199
|
+
|
173
200
|
it "should return nil if no entry can be found" do
|
174
201
|
@engine.should_receive(:transmit).with(:get, "models", instance_of(Hash)).
|
175
202
|
and_return JSON.parse('{"data": [], "paging": {}}')
|
176
203
|
entry = @collection.find_by_name("karma")
|
177
204
|
entry.should be_nil
|
178
205
|
end
|
206
|
+
|
179
207
|
end
|
180
208
|
|
181
209
|
end
|
210
|
+
|
182
211
|
end
|
@@ -10,9 +10,9 @@ describe Gamifier::Player do
|
|
10
10
|
|
11
11
|
subject { Gamifier::ActivityDefinition.new.limit(1, 24.0) }
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
its(:enable_rate_limiting) { should be_true }
|
14
|
+
its(:bucket_max_capacity) { should eq(1) }
|
15
|
+
its(:bucket_drain_rate) { should eq(1 / 24.0) }
|
16
16
|
|
17
17
|
end
|
18
18
|
|
@@ -20,9 +20,9 @@ describe Gamifier::Player do
|
|
20
20
|
|
21
21
|
subject { Gamifier::ActivityDefinition.new.limit_per_day(1) }
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
23
|
+
its(:enable_rate_limiting) { should be_true }
|
24
|
+
its(:bucket_max_capacity) { should eq(1) }
|
25
|
+
its(:bucket_drain_rate) { should eq(1 / 24.0) }
|
26
26
|
|
27
27
|
end
|
28
28
|
|
@@ -30,9 +30,9 @@ describe Gamifier::Player do
|
|
30
30
|
|
31
31
|
subject { Gamifier::ActivityDefinition.new.limit_per_week(1) }
|
32
32
|
|
33
|
-
|
34
|
-
|
35
|
-
|
33
|
+
its(:enable_rate_limiting) { should be_true }
|
34
|
+
its(:bucket_max_capacity) { should eq(1) }
|
35
|
+
its(:bucket_drain_rate) { should eq(1 / (24.0 * 7.0)) }
|
36
36
|
|
37
37
|
end
|
38
38
|
|
@@ -40,9 +40,9 @@ describe Gamifier::Player do
|
|
40
40
|
|
41
41
|
subject { Gamifier::ActivityDefinition.new.limit_once_per_day }
|
42
42
|
|
43
|
-
|
44
|
-
|
45
|
-
|
43
|
+
its(:enable_rate_limiting) { should be_true }
|
44
|
+
its(:bucket_max_capacity) { should eq(1) }
|
45
|
+
its(:bucket_drain_rate) { should eq(1 / 24.0) }
|
46
46
|
|
47
47
|
end
|
48
48
|
|
@@ -50,9 +50,9 @@ describe Gamifier::Player do
|
|
50
50
|
|
51
51
|
subject { Gamifier::ActivityDefinition.new.limit_once_per_week }
|
52
52
|
|
53
|
-
|
54
|
-
|
55
|
-
|
53
|
+
its(:enable_rate_limiting) { should be_true }
|
54
|
+
its(:bucket_max_capacity) { should eq(1) }
|
55
|
+
its(:bucket_drain_rate) { should eq(1 / (24.0 * 7.0)) }
|
56
56
|
|
57
57
|
end
|
58
58
|
|
@@ -1,15 +1,16 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Gamifier::Player do
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
|
5
|
+
let(:engine) { mock(Gamifier::Engine) }
|
6
|
+
|
7
7
|
describe "crediting" do
|
8
|
+
|
8
9
|
it "should create a new activity and save it" do
|
9
10
|
player = Gamifier::Player.new(:_id => "1234")
|
10
|
-
player.engine =
|
11
|
+
player.engine = engine
|
11
12
|
|
12
|
-
|
13
|
+
engine.should_receive(:activities).
|
13
14
|
and_return(collection = mock(Gamifier::Collection))
|
14
15
|
collection.should_receive(:build).
|
15
16
|
with(:data1 => "value", :player_id => "1234", :verb => "event").
|
@@ -17,11 +18,13 @@ describe Gamifier::Player do
|
|
17
18
|
|
18
19
|
player.credit('event', :data1 => "value").should == true
|
19
20
|
end
|
21
|
+
|
20
22
|
end
|
21
|
-
|
23
|
+
|
22
24
|
describe "FinderMethods" do
|
25
|
+
|
23
26
|
before do
|
24
|
-
@collection = Gamifier::Collection.new(
|
27
|
+
@collection = Gamifier::Collection.new(engine, Gamifier::Player)
|
25
28
|
end
|
26
29
|
|
27
30
|
it "should have included all the methods" do
|
@@ -31,21 +34,25 @@ describe Gamifier::Player do
|
|
31
34
|
end
|
32
35
|
|
33
36
|
describe "find_by_site_and_email" do
|
37
|
+
|
34
38
|
it "should issue a get request with the correct params" do
|
35
|
-
|
39
|
+
engine.should_receive(:transmit).with(:get, "players", :query => {:site=>"test.ltd", :email=>"hi@hello.com", :limit => 5})
|
36
40
|
@collection.find_by_site_and_email 'test.ltd', 'hi@hello.com', :limit => 5
|
37
41
|
end
|
42
|
+
|
38
43
|
end
|
39
|
-
|
44
|
+
|
40
45
|
describe "find_by_player_id" do
|
41
|
-
|
46
|
+
|
42
47
|
let(:player_id) { '123456789' }
|
43
|
-
|
48
|
+
|
44
49
|
it "should issue a get request with the correct params" do
|
45
|
-
|
50
|
+
engine.should_receive(:transmit).with(:get, "players/#{player_id}")
|
46
51
|
@collection.find_by_player_id(player_id)
|
47
52
|
end
|
48
|
-
|
53
|
+
|
49
54
|
end
|
55
|
+
|
50
56
|
end
|
51
|
-
|
57
|
+
|
58
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gamifier
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-02-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
@@ -99,6 +99,7 @@ extensions: []
|
|
99
99
|
extra_rdoc_files: []
|
100
100
|
files:
|
101
101
|
- .gitignore
|
102
|
+
- .rspec
|
102
103
|
- Gemfile
|
103
104
|
- LICENSE
|
104
105
|
- README.md
|
@@ -109,6 +110,7 @@ files:
|
|
109
110
|
- lib/gamifier.rb
|
110
111
|
- lib/gamifier/collection.rb
|
111
112
|
- lib/gamifier/dsl.rb
|
113
|
+
- lib/gamifier/dsl/api_key.rb
|
112
114
|
- lib/gamifier/dsl/network.rb
|
113
115
|
- lib/gamifier/dsl/site.rb
|
114
116
|
- lib/gamifier/engine.rb
|
@@ -116,7 +118,9 @@ files:
|
|
116
118
|
- lib/gamifier/model.rb
|
117
119
|
- lib/gamifier/models/activity.rb
|
118
120
|
- lib/gamifier/models/activity_definition.rb
|
121
|
+
- lib/gamifier/models/api_key.rb
|
119
122
|
- lib/gamifier/models/group.rb
|
123
|
+
- lib/gamifier/models/network.rb
|
120
124
|
- lib/gamifier/models/player.rb
|
121
125
|
- lib/gamifier/models/reward.rb
|
122
126
|
- lib/gamifier/models/reward_definition.rb
|
@@ -132,6 +136,7 @@ files:
|
|
132
136
|
- spec/spec_helper.rb
|
133
137
|
- spec/spec_integration_helper.rb
|
134
138
|
- spec/unit/collection_spec.rb
|
139
|
+
- spec/unit/dsl/api_key_spec.rb
|
135
140
|
- spec/unit/dsl/network_spec.rb
|
136
141
|
- spec/unit/dsl/site_spec.rb
|
137
142
|
- spec/unit/dsl_spec.rb
|
@@ -172,6 +177,7 @@ test_files:
|
|
172
177
|
- spec/spec_helper.rb
|
173
178
|
- spec/spec_integration_helper.rb
|
174
179
|
- spec/unit/collection_spec.rb
|
180
|
+
- spec/unit/dsl/api_key_spec.rb
|
175
181
|
- spec/unit/dsl/network_spec.rb
|
176
182
|
- spec/unit/dsl/site_spec.rb
|
177
183
|
- spec/unit/dsl_spec.rb
|