live_paper 0.0.22 → 0.0.23

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: 0c4320a4fff367170dba5cd8daa539c6c5824cb4
4
- data.tar.gz: 0707ddc9c784f3f2ba71629398a26a1084cc9c78
3
+ metadata.gz: ae8ade5ac1bf301f3f4ad667d85c8e56bd39feb1
4
+ data.tar.gz: 5b68905a2265416d44675488978834a62a6ce577
5
5
  SHA512:
6
- metadata.gz: 9f3211494b2a9bc62edfa8b17c611a0ecd6bd15ca597f918b7343d0c5bfea772c1a925d402d8f4a5c880ad83758f4ee0c281eb618fb489f6d6be1948c682cafa
7
- data.tar.gz: c672265db80b82db5078864510ce1d7925bfb53efae98350fc5dd45a649553f4b94dc9db68548a9e15d3a417dad9199cefb5057c0a4d6333f44f6163d7fe2cdd
6
+ metadata.gz: 55789d46658c47bd8f0d5456c413657970078532345efb05299f253e6648eafbcc0a07b1e44f22c3e655e806fc69ff65e21b664195f253dfd2c0c896d68f5624
7
+ data.tar.gz: fbfbdf7bb295bcd07efaff8d919290b7110be3e0740df7d3726510d6febcdddb6768006a9bbeea3c3b95d7a600430aa68e04b0ae536869f1418b3c012ba89b67
data/.gitignore CHANGED
@@ -3,6 +3,7 @@
3
3
  .bundle
4
4
  .config
5
5
  .yardoc
6
+ .pairs
6
7
  Gemfile.lock
7
8
  InstalledFiles
8
9
  _yardoc
@@ -20,4 +21,4 @@ tmp
20
21
  *.o
21
22
  *.a
22
23
  mkmf.log
23
- .idea
24
+ .idea
data/README.md CHANGED
@@ -142,6 +142,44 @@ You can list existing resources with the list operation.
142
142
  t.download_watermark
143
143
  ```
144
144
 
145
+ Alternatively, you can upload an image from your local system by providing the path to the jpg file
146
+
147
+ ```ruby
148
+ image = Image.upload "/Users/mike/images/your_image.jpg"
149
+ ```
150
+
151
+ ### RichPayoff Example - Alternate for Watermarked or QR Code Payoff
152
+
153
+ ```ruby
154
+ rich_data = {
155
+ "type":"content action layout",
156
+ "version":1,
157
+ "data":{
158
+ "content":{
159
+ "type":"image",
160
+ "label":"Movember!",
161
+ "data":{"URL":"http://static.movember.com/uploads/2014/profiles/ef4/ef48a53fb031669fe86e741164d56972-546b9b5c56e15-hero.jpg"}
162
+ },
163
+ "actions":[
164
+ {
165
+ "type":"webpage",
166
+ "label":"Donate!",
167
+ "icon":{"id":"533"},
168
+ "data":{"URL":"http://MOBRO.CO/oamike"}
169
+ },
170
+ {
171
+ "type":"share",
172
+ "label":"Share!",
173
+ "icon":{"id":"527"},
174
+ "data":{"URL":"Help Mike get the prize of most donations on his team! MOBRO.CO/oamike"}
175
+ }
176
+ ]
177
+ }
178
+ }
179
+ p=Payoff.create(name: 'name', type: Payoff::TYPE[:RICH], url: dest, data: rich_data)
180
+ l=Link.create(payoff_id: p.id, trigger_id: t.id, name: "link")
181
+ t.download_watermark
182
+ ```
145
183
 
146
184
  ## Contributing
147
185
 
@@ -2,7 +2,7 @@ require_relative 'base_object'
2
2
 
3
3
  module LivePaper
4
4
  class Payoff < BaseObject
5
- attr_accessor :type, :url, :data_type, :data
5
+ attr_accessor :type, :url, :data
6
6
 
7
7
  TYPE = {
8
8
  WEB: 'WEB_PAYOFF',
@@ -30,16 +30,15 @@ module LivePaper
30
30
 
31
31
  private
32
32
  def validate_attributes!
33
- raise ArgumentError, 'Required Attributes needed: name, type, url.' unless all_present? [@name, @type, @url]
34
- raise ArgumentError, 'Required Attributes needed: data_type, data.' if @type == TYPE[:RICH] and !all_present? [@data_type, @data]
33
+ raise ArgumentError, 'Required Attributes needed: name, type' unless all_present? [@name, @type]
34
+ raise ArgumentError, 'Required Attribute needed: url.' if @type == TYPE[:WEB] and !present? @url
35
+ raise ArgumentError, 'Required Attribute needed: data.' if @type == TYPE[:RICH] and !present? @data
35
36
  end
36
37
 
37
38
  def parse_richpayoff(data)
38
39
  data = data[:richPayoff]
39
-
40
40
  @type = TYPE[:RICH]
41
41
  @url = data[:public][:url]
42
- @data_type = data[:private][:'content-type']
43
42
  @data = JSON.parse(Base64.decode64(data[:private][:data]), symbolize_names: true) rescue nil
44
43
  end
45
44
 
@@ -78,7 +77,7 @@ module LivePaper
78
77
  richPayoff: {
79
78
  version: 1,
80
79
  private: {
81
- :'content-type' => @data_type,
80
+ :'content-type' => 'custom-base64',
82
81
  :data => Base64.encode64(@data.to_json)
83
82
  },
84
83
  public: {url: @url}
@@ -1,3 +1,3 @@
1
1
  module LivePaper
2
- VERSION = "0.0.22"
2
+ VERSION = "0.0.23"
3
3
  end
@@ -3,123 +3,121 @@ require 'json'
3
3
 
4
4
  def stub_unimplemented_methods
5
5
  allow_any_instance_of(LivePaper::BaseObject).to receive(:validate_attributes!)
6
- allow_any_instance_of(LivePaper::BaseObject).to receive(:create_body).and_return(@data)
6
+ allow_any_instance_of(LivePaper::BaseObject).to receive(:create_body).and_return(data)
7
7
  allow_any_instance_of(LivePaper::BaseObject).to receive(:parse) { |data| data }
8
- allow(LivePaper::BaseObject).to receive(:api_url).and_return(@api_url)
8
+ allow(LivePaper::BaseObject).to receive(:api_url).and_return(api_url)
9
9
  end
10
10
 
11
11
  describe LivePaper::BaseObject do
12
- before do
13
- @api_url = "#{LivePaper::LP_API_HOST}/v99/objects"
14
- stub_request(:post, /.*livepaperapi.com\/auth\/token.*/).to_return(:body => lpp_auth_response_json, :status => 200)
15
- stub_request(:post, @api_url).to_return(:body => lpp_richpayoff_response_json, :status => 200)
16
-
17
- @data = {
12
+ let(:api_url) { "#{LivePaper::LP_API_HOST}/v99/objects" }
13
+ let(:data) {
14
+ {
18
15
  name: 'name',
19
16
  date_created: 'date_created',
20
17
  date_modified: 'date_modified'
21
18
  }
19
+ }
20
+ let(:object) { LivePaper::BaseObject.new data }
22
21
 
22
+ before do
23
+ stub_request(:post, /.*livepaperapi.com\/auth\/token.*/).to_return(:body => lpp_auth_response_json, :status => 200)
24
+ stub_request(:post, api_url).to_return(:body => lpp_richpayoff_response_json, :status => 200)
23
25
  end
24
26
 
25
27
  describe '#initialize' do
26
- before do
27
- @data = {
28
+ let(:data) {
29
+ {
28
30
  id: 'id',
29
31
  name: 'name',
30
32
  date_created: 'date_created',
31
33
  date_modified: 'date_modified'
32
34
  }
33
- @object = LivePaper::BaseObject.new @data
34
- end
35
+ }
35
36
 
36
37
  it 'should map the id attribute.' do
37
- expect(@object.id).to eq @data[:id]
38
+ expect(object.id).to eq data[:id]
38
39
  end
39
40
 
40
41
  it 'should map the name attribute.' do
41
- expect(@object.name).to eq @data[:name]
42
+ expect(object.name).to eq data[:name]
42
43
  end
43
44
 
44
45
  it 'should map the date_created attribute.' do
45
- expect(@object.date_created).to eq @data[:date_created]
46
+ expect(object.date_created).to eq data[:date_created]
46
47
  end
47
48
 
48
49
  it 'should map the date_modified attribute.' do
49
- expect(@object.date_modified).to eq @data[:date_modified]
50
+ expect(object.date_modified).to eq data[:date_modified]
50
51
  end
51
52
  end
52
53
 
53
54
  describe '#save' do
54
55
  before do
55
56
  stub_unimplemented_methods
56
- @data = {
57
- name: 'name',
58
- date_created: 'date_created',
59
- date_modified: 'date_modified'
60
- }
61
- @obj = LivePaper::BaseObject.new @data
62
57
  end
63
58
 
64
59
  it 'should not make a POST if the object has already an id.' do
65
- @obj.id = 'id'
66
- @obj.save
67
- assert_not_requested :post, @api_url
60
+ object.id = 'id'
61
+ object.save
62
+ assert_not_requested :post, api_url
68
63
  end
69
64
 
70
65
  it 'should re-assign the current object attributes.' do
71
- @obj.save
72
- expect(@obj.name).to eq @data[:name]
73
- expect(@obj.date_created).to eq @data[:date_created]
74
- expect(@obj.date_modified).to eq @data[:date_modified]
66
+ object.save
67
+ expect(object.name).to eq data[:name]
68
+ expect(object.date_created).to eq data[:date_created]
69
+ expect(object.date_modified).to eq data[:date_modified]
75
70
  end
76
71
 
77
72
  it 'should return the object instance.' do
78
- obj = @obj.save
79
- expect(obj).to eq @obj
73
+ obj = object.save
74
+ expect(obj).to eq object
80
75
  end
81
76
 
82
77
  it 'should make a POST to the api_url with the body provided.' do
83
- @obj.save
84
- assert_requested :post, @api_url, :body => @data.to_json
78
+ object.save
79
+ assert_requested :post, api_url, :body => data.to_json
85
80
  end
86
81
  end
87
82
 
88
83
  describe '.create' do
84
+ let(:object) { LivePaper::BaseObject.create data }
89
85
  before do
90
86
  stub_unimplemented_methods
91
- @obj = LivePaper::BaseObject.create @data
92
87
  end
93
88
 
94
89
  it 'should return a object instance.' do
95
- expect(@obj.class).to eq LivePaper::BaseObject
90
+ expect(object.class).to eq LivePaper::BaseObject
96
91
  end
97
92
 
98
93
  it 'should return the object instance with the provided + updated data.' do
99
- expect(@obj.name).to eq @data[:name]
100
- expect(@obj.date_created).to eq @data[:date_created]
101
- expect(@obj.date_modified).to eq @data[:date_modified]
94
+ expect(object.name).to eq data[:name]
95
+ expect(object.date_created).to eq data[:date_created]
96
+ expect(object.date_modified).to eq data[:date_modified]
102
97
  end
103
98
  end
104
99
 
105
100
  describe '.list' do
101
+ let(:data) {
102
+ {lists: [{id: 1, name: 'first'},
103
+ {id: 2, name: 'second'},
104
+ {id: 3, name: 'third'}
105
+ ]}
106
+ }
106
107
  before do
107
- allow(LivePaper::BaseObject).to receive(:api_url).and_return(@api_url)
108
+ allow(LivePaper::BaseObject).to receive(:api_url).and_return(api_url)
108
109
  allow(LivePaper::BaseObject).to receive(:list_key).and_return(:lists)
109
110
  allow(LivePaper::BaseObject).to receive(:item_key).and_return(:list)
110
- @data = {lists: [{id: 1, name: 'first'},
111
- {id: 2, name: 'second'},
112
- {id: 3, name: 'third'}
113
- ]}
114
- stub_request(:get, "#{@api_url}").to_return(:body => @data.to_json, :status => 200)
111
+ stub_request(:get, "#{api_url}").to_return(:body => data.to_json, :status => 200)
115
112
  end
113
+
116
114
  it 'should return array of parsed objects' do
117
- allow(@data).to receive(:body).and_return(@data)
118
- @data[:lists].each do |datum|
115
+ allow(data).to receive(:body).and_return(data)
116
+ data[:lists].each do |datum|
119
117
  expect(LivePaper::BaseObject).to receive(:parse).with({:list => datum}.to_json) { datum[:id] }
120
118
  end
121
119
  result = LivePaper::BaseObject.list
122
- expect(result.count).to eq @data[:lists].size
120
+ expect(result.count).to eq data[:lists].size
123
121
  result.each_with_index do |res, i|
124
122
  expect(res).to eq i+1
125
123
  end
@@ -128,15 +126,15 @@ describe LivePaper::BaseObject do
128
126
 
129
127
  describe '.get' do
130
128
  before do
131
- allow(LivePaper::BaseObject).to receive(:api_url).and_return(@api_url)
132
- @data = '"id": "id", "name": "name"'
133
- stub_request(:get, "#{@api_url}/base_object").to_return(:body => @data, :status => 200)
134
- stub_request(:get, "#{@api_url}/base_object_not_existent").to_return(:body => '{}', :status => 404)
129
+ allow(LivePaper::BaseObject).to receive(:api_url).and_return(api_url)
130
+ @body = '"id": "id", "name": "name"'
131
+ stub_request(:get, "#{api_url}/base_object").to_return(:body => @body, :status => 200)
132
+ stub_request(:get, "#{api_url}/base_object_not_existent").to_return(:body => '{}', :status => 404)
135
133
  end
136
134
  context 'the requested base_object exists.' do
137
135
  it 'should return the requested base object.' do
138
- allow(@data).to receive(:body).and_return(@data)
139
- expect(LivePaper::BaseObject).to receive(:parse).with(@data)
136
+ allow(@body).to receive(:body).and_return(@body)
137
+ expect(LivePaper::BaseObject).to receive(:parse).with(@body)
140
138
  LivePaper::BaseObject.get('base_object')
141
139
  end
142
140
  end
@@ -155,10 +153,10 @@ describe LivePaper::BaseObject do
155
153
  describe '.update' do
156
154
  let(:obj_id) { 12345 }
157
155
  let(:update_json) { {name: 'new_name'}.to_json }
158
- let (:data1) { {name: 'name',
159
- id: obj_id,
160
- date_created: 'date_created',
161
- date_modified: 'date_modified'} }
156
+ let (:data) { {name: 'name',
157
+ id: obj_id,
158
+ date_created: 'date_created',
159
+ date_modified: 'date_modified'} }
162
160
  let(:resp_body) {}
163
161
 
164
162
  before do
@@ -173,72 +171,59 @@ describe LivePaper::BaseObject do
173
171
  date_modified: 'new_date_modified'}} }
174
172
  let(:new_name) { 'my_valid_name_change' }
175
173
  before do
176
- @response = resp_body
177
- stub_request(:put, "#{@api_url}/#{obj_id}").to_return(:body => resp_body.to_json, :status => 200)
178
- @obj=LivePaper::BaseObject.new data1
179
- @obj.name = new_name
174
+ stub_request(:put, "#{api_url}/#{obj_id}").to_return(:body => resp_body.to_json, :status => 200)
180
175
  end
181
176
  it 'should return success' do
182
- ret_val = @obj.update
183
- assert_requested :put, "#{@api_url}/#{obj_id}"
177
+ object.name = new_name
178
+ ret_val = object.update
179
+ assert_requested :put, "#{api_url}/#{obj_id}"
184
180
  expect(ret_val).to eq '200 OK'
185
181
  end
186
- xit 'should reflect the updated object' do
187
- allow(@response).to receive(:body).and_return(@response[:object])
188
- allow(@obj).to receive(:parse) { |data| data }
189
- @obj.update
190
- assert_requested :put, "#{@api_url}/#{obj_id}"
191
- expect(@obj).to receive(:parse).with(resp_body)
192
-
193
- expect(@obj.name).to eq new_name
194
- expect(@obj.date_modified).to eq 'new_date_modified'
195
- end
196
-
197
182
  end
198
183
 
199
184
  context 'with invalid data' do
200
185
  before do
201
- stub_request(:put, "#{@api_url}/#{obj_id}").to_return(:body => resp_body, :status => 400)
202
- @obj=LivePaper::BaseObject.new data1
203
- @obj.name = 'my_new_name'
186
+ stub_request(:put, "#{api_url}/#{obj_id}").to_return(:body => resp_body, :status => 400)
187
+ object.name = 'my_new_name'
204
188
  end
189
+
205
190
  it 'should return the error details' do
206
- ret_val = @obj.update
207
- assert_requested :put, "#{@api_url}/#{obj_id}"
191
+ ret_val = object.update
192
+ assert_requested :put, "#{api_url}/#{obj_id}"
208
193
  expect(ret_val).to eq 'Bad Request'
209
194
  end
210
195
  it 'should preserve the invalid object attributes' do
211
- @obj.update
212
- assert_requested :put, "#{@api_url}/#{obj_id}"
213
- expect(@obj.name).to eq 'my_new_name'
196
+ object.update
197
+ assert_requested :put, "#{api_url}/#{obj_id}"
198
+ expect(object.name).to eq 'my_new_name'
214
199
  end
215
200
  end
216
201
 
217
202
  context 'remote object has been deleted' do
218
203
  before do
219
- stub_request(:put, "#{@api_url}/#{obj_id}").to_return(:body => resp_body, :status => 404)
204
+ stub_request(:put, "#{api_url}/#{obj_id}").to_return(:body => resp_body, :status => 404)
220
205
  end
206
+
221
207
  it 'should return an error' do
222
- @obj=LivePaper::BaseObject.new data1
223
- ret_val = @obj.update
224
- assert_requested :put, "#{@api_url}/#{obj_id}"
208
+ ret_val = object.update
209
+ assert_requested :put, "#{api_url}/#{obj_id}"
225
210
  expect(ret_val).to eq 'Object Invalid'
226
211
  end
227
212
  end
228
213
 
229
214
  context 'remote object was never saved.' do
215
+ let(:obj_id) { nil }
230
216
  it 'should return an error' do
231
- @obj = LivePaper::BaseObject.new @data
232
- ret_val = @obj.update
217
+ obj = LivePaper::BaseObject.new data
218
+ ret_val = obj.update
233
219
  expect(ret_val).to eq 'Object Invalid'
234
220
  end
235
221
  end
236
222
  end
237
223
 
238
224
  describe '.delete' do
239
- before do
240
- stub_unimplemented_methods
241
- @data = {
225
+ let(:data) {
226
+ {
242
227
  name: 'name',
243
228
  id: 'obj_id',
244
229
  date_created: 'date_created',
@@ -248,38 +233,41 @@ describe LivePaper::BaseObject do
248
233
  {:rel => "analytics", :href => "/analytics/v1/objects/obj_id"}
249
234
  ]
250
235
  }
251
- @obj = LivePaper::BaseObject.create @data
252
- @self_link = "#{@api_url}/#{@obj.id}"
236
+ }
237
+ let(:self_link) { "#{api_url}/#{object.id}" }
238
+
239
+ before do
240
+ stub_unimplemented_methods
253
241
  end
254
242
 
255
243
  it 'should not DELETE if the object does not have an id.' do
256
- @obj.id = nil
257
- ret_val = @obj.delete
258
- assert_not_requested :delete, @self_link
244
+ object.id = nil
245
+ ret_val = object.delete
246
+ assert_not_requested :delete, self_link
259
247
  expect(ret_val).to eq 'Object Invalid'
260
248
  end
261
249
 
262
250
  context 'successful delete' do
263
251
  before do
264
- stub_request(:delete, @self_link).to_return(:status => 200, :body => "")
252
+ stub_request(:delete, self_link).to_return(:status => 200, :body => "")
265
253
  end
266
254
  it 'should DELETE when there is an ID' do
267
- result=@obj.delete
268
- assert_requested :delete, "#{@api_url}/#{@obj.id}"
255
+ result=object.delete
256
+ assert_requested :delete, self_link
269
257
  expect(result).to eq '200 OK'
270
258
  end
271
259
  end
272
260
 
273
261
  context 'when link points to object' do
274
262
  before do
275
- @bodee = lpp_delete_error_response
276
- stub_request(:delete, @self_link).to_return(:status => 409, :body => @bodee)
263
+ @body = lpp_delete_error_response
264
+ stub_request(:delete, self_link).to_return(:status => 409, :body => @body)
277
265
  end
278
266
  it 'should fail' do
279
- result=@obj.delete
280
- assert_requested :delete, "#{@api_url}/#{@obj.id}"
267
+ result=object.delete
268
+ assert_requested :delete, self_link
281
269
  expect(result).to eq 'Conflict'
282
- expect(@obj.errors).to eq JSON.parse @bodee
270
+ expect(object.errors).to eq JSON.parse(@body)
283
271
  end
284
272
  end
285
273
  end
@@ -403,7 +391,7 @@ describe LivePaper::BaseObject do
403
391
  end
404
392
  it 'should request the access token' do
405
393
  expect(LivePaper::BaseObject).to receive(:request_access_token)
406
- LivePaper::BaseObject.rest_request(@api_url, :post)
394
+ LivePaper::BaseObject.rest_request(api_url, :post)
407
395
  end
408
396
  end
409
397
 
@@ -414,7 +402,7 @@ describe LivePaper::BaseObject do
414
402
 
415
403
  it 'should NOT call request_access_token' do
416
404
  expect(LivePaper::BaseObject).to receive(:request_access_token).exactly(0).times
417
- LivePaper::BaseObject.rest_request(@api_url, :post)
405
+ LivePaper::BaseObject.rest_request(api_url, :post)
418
406
  end
419
407
 
420
408
  context 'when the access token is invalid' do
@@ -429,7 +417,7 @@ describe LivePaper::BaseObject do
429
417
 
430
418
  it 'should request access an token' do
431
419
  expect(LivePaper::BaseObject).to receive(:request_access_token).exactly(2).times
432
- LivePaper::BaseObject.rest_request(@api_url, :put, body: @data.to_json)
420
+ LivePaper::BaseObject.rest_request(api_url, :put, body: data.to_json)
433
421
  end
434
422
 
435
423
  end
@@ -8,200 +8,204 @@ describe LivePaper::Payoff do
8
8
  stub_request(:get, "#{LivePaper::Payoff.api_url}/payoff_not_existent").to_return(:body => '{}', :status => 404)
9
9
  end
10
10
 
11
+ let(:data) {
12
+ {
13
+ id: 'id',
14
+ name: 'name',
15
+ type: 'type',
16
+ url: 'url',
17
+ data: 'data'
18
+ }
19
+ }
20
+ let(:payoff) { LivePaper::Payoff.new data }
21
+
11
22
  describe '#initialize' do
12
- before do
13
- @data = {
14
- id: 'id',
15
- name: 'name',
16
- type: 'type',
17
- url: 'url',
18
- data_type: 'data_type',
19
- data: 'data'
20
- }
21
- @payoff = LivePaper::Payoff.new @data
22
- end
23
23
 
24
24
  it 'should map the type attribute.' do
25
- expect(@payoff.type).to eq @data[:type]
25
+ expect(payoff.type).to eq data[:type]
26
26
  end
27
27
 
28
28
  it 'should map the url attribute.' do
29
- expect(@payoff.url).to eq @data[:url]
30
- end
31
-
32
- it 'should map the data_type attribute.' do
33
- expect(@payoff.data_type).to eq @data[:data_type]
29
+ expect(payoff.url).to eq data[:url]
34
30
  end
35
31
 
36
32
  it 'should map the data attribute.' do
37
- expect(@payoff.data).to eq @data[:data]
33
+ expect(payoff.data).to eq data[:data]
38
34
  end
39
35
  end
40
36
 
41
37
  describe '#save' do
42
38
  context 'all needed attributes are provided.' do
43
39
  context 'payoff type is RICH_PAYOFF.' do
44
- before :each do
45
- @data = {
40
+ let(:rich_data) {
41
+ {
42
+ type: "content action layout",
43
+ version: 1,
44
+ data: {
45
+ content: {
46
+ type: "image",
47
+ label: "Movember!",
48
+ data: {URL: "http://static.movember.com/uploads/2014/profiles/ef4/ef48a53fb031669fe86e741164d56972-546b9b5c56e15-hero.jpg"}
49
+ },
50
+ actions: [
51
+ {
52
+ type: "webpage",
53
+ label: "Donate!",
54
+ icon: {id: "533"},
55
+ data: {URL: "http://MOBRO.CO/oamike"}
56
+ },
57
+ {
58
+ type: "share",
59
+ label: "Share!",
60
+ icon: {id: "527"},
61
+ data: {URL: "Help Mike get the prize of most donations on his team! MOBRO.CO/oamike"}
62
+ }
63
+ ]
64
+ }
65
+ }
66
+ }
67
+ let(:data) {
68
+ {
46
69
  name: 'name',
47
70
  type: LivePaper::Payoff::TYPE[:RICH],
48
71
  url: 'url',
49
- data_type: 'data_type',
50
- data: 'data'
72
+ data: rich_data
51
73
  }
52
- @payoff = LivePaper::Payoff.new @data
53
- end
74
+ }
54
75
 
55
76
  it 'should make a POST to the payoff URL with the richpayoff options hash.' do
56
- @payoff.save
77
+ payoff.save
57
78
  assert_requested :post, LivePaper::Payoff.api_url, :body => {
58
- payoff: {
59
- name: 'name',
60
- richPayoff: {
61
- version: 1,
62
- private: {
63
- :'content-type' => 'data_type',
64
- :data => Base64.encode64('data'.to_json)
65
- },
66
- public: {
67
- url: 'url'
68
- }
69
- }
70
- }
71
- }.to_json
79
+ payoff: {
80
+ name: 'name',
81
+ richPayoff: {
82
+ version: 1,
83
+ private: {
84
+ :'content-type' => 'custom-base64',
85
+ :data => Base64.encode64(rich_data.to_json)
86
+ },
87
+ public: {
88
+ url: 'url'
89
+ }
90
+ }
91
+ }
92
+ }.to_json
72
93
  end
73
94
  end
74
95
 
75
96
  context 'payoff type is WEB_PAYOFF.' do
76
- before :each do
77
- @data = {
97
+ let(:data) {
98
+ {
78
99
  name: 'name',
79
100
  type: LivePaper::Payoff::TYPE[:WEB],
80
101
  url: 'url'
81
102
  }
82
- @payoff = LivePaper::Payoff.new @data
83
- end
103
+ }
84
104
 
85
105
  it 'should make a POST to the payoff URL with the webpayoff options hash.' do
86
- @payoff.save
106
+ payoff.save
87
107
  assert_requested :post, LivePaper::Payoff.api_url, :body => {
88
- payoff: {
89
- name: @data[:name],
90
- URL: @data[:url]
91
- }
92
- }.to_json
108
+ payoff: {
109
+ name: data[:name],
110
+ URL: data[:url]
111
+ }
112
+ }.to_json
93
113
  end
94
114
  end
95
115
 
96
116
  end
97
117
 
98
118
  context 'when we do not have all needed data.' do
99
- before :each do
100
- @data = {
119
+ let(:data) {
120
+ {
101
121
  name: 'name',
102
122
  type: LivePaper::Payoff::TYPE[:WEB],
103
123
  url: 'url'
104
124
  }
105
- @payoff = LivePaper::Payoff.new @data
106
- end
107
-
125
+ }
108
126
  it 'should raise an exception if the name was not provided.' do
109
- @payoff.name = nil
110
- expect { @payoff.save }.to raise_error ArgumentError
127
+ payoff.name = nil
128
+ expect { payoff.save }.to raise_error ArgumentError
111
129
  end
112
130
 
113
131
  it 'should raise an exception if the type was not provided.' do
114
- @payoff.type = nil
115
- expect { @payoff.save }.to raise_error ArgumentError
132
+ payoff.type = nil
133
+ expect { payoff.save }.to raise_error ArgumentError
116
134
  end
117
135
 
118
136
  it 'should raise an exception a unsupported type was provided.' do
119
- @payoff.type = 'unsupported type'
120
- expect { @payoff.save }.to raise_error ArgumentError
137
+ payoff.type = 'unsupported type'
138
+ expect { payoff.save }.to raise_error ArgumentError
121
139
  end
122
140
 
123
141
  it 'should raise an exception if the url was not provided.' do
124
- @payoff.url = nil
125
- expect { @payoff.save }.to raise_error ArgumentError
142
+ payoff.url = nil
143
+ expect { payoff.save }.to raise_error ArgumentError
126
144
  end
127
145
 
128
146
  context 'payoff type is RICH_PAYOFF.' do
129
- before :each do
130
- @data = {
147
+ let(:data) {
148
+ {
131
149
  name: 'name',
132
150
  type: LivePaper::Payoff::TYPE[:RICH],
133
151
  url: 'url',
134
- data_type: 'data_type',
135
152
  data: 'data'
136
153
  }
137
- @payoff = LivePaper::Payoff.new @data
138
- end
139
- it 'should raise an exception if the data_type was not provided.' do
140
- @payoff.data_type = nil
141
- expect { @payoff.save }.to raise_error ArgumentError
142
- end
154
+ }
155
+
143
156
  it 'should raise an exception if the data was not provided.' do
144
- @payoff.data = nil
145
- expect { @payoff.save }.to raise_error ArgumentError
157
+ payoff.data = nil
158
+ expect { payoff.save }.to raise_error ArgumentError
146
159
  end
147
160
  end
148
161
  end
149
162
  end
150
163
 
151
164
  describe '#parse' do
152
- before do
153
- @payoff = LivePaper::Payoff.parse(lpp_payoff_response_json)
154
- end
165
+ let(:payoff) { LivePaper::Payoff.parse(lpp_payoff_response_json) }
155
166
 
156
167
  it 'should return a Payoff object.' do
157
- expect(@payoff.class).to eq LivePaper::Payoff
168
+ expect(payoff.class).to eq LivePaper::Payoff
158
169
  end
159
170
 
160
171
  it 'should map the id attribute.' do
161
- expect(@payoff.id).to eq 'payoff_id'
172
+ expect(payoff.id).to eq 'payoff_id'
162
173
  end
163
174
  it 'should map the name attribute.' do
164
- expect(@payoff.name).to eq 'name'
175
+ expect(payoff.name).to eq 'name'
165
176
  end
166
177
 
167
178
  it 'should map the url attribute.' do
168
- expect(@payoff.url).to eq 'url'
179
+ expect(payoff.url).to eq 'url'
169
180
  end
170
181
 
171
182
  context 'when the data is from a web payoff.' do
172
183
  it 'should map the payoff type attribute.' do
173
- expect(@payoff.type).to eq LivePaper::Payoff::TYPE[:WEB]
184
+ expect(payoff.type).to eq LivePaper::Payoff::TYPE[:WEB]
174
185
  end
175
186
  end
176
187
 
177
188
  context 'when the data is from a rich payoff.' do
178
- before do
179
- @payoff = LivePaper::Payoff.parse(lpp_richpayoff_response_json)
180
- end
189
+ let(:payoff) { LivePaper::Payoff.parse(lpp_richpayoff_response_json) }
181
190
 
182
191
  it 'should map the payoff type attribute.' do
183
- expect(@payoff.type).to eq LivePaper::Payoff::TYPE[:RICH]
192
+ expect(payoff.type).to eq LivePaper::Payoff::TYPE[:RICH]
184
193
  end
185
194
 
186
- it 'should map the data_type attribute.' do
187
- expect(@payoff.data_type).to eq 'data_type'
188
- end
189
195
  it 'should map the data attribute.' do
190
- expect(@payoff.data).to eq ({field: 1})
196
+ expect(payoff.data).to eq ({field: 1})
191
197
  end
192
198
  end
193
199
  end
194
200
 
195
201
  describe '.get' do
196
202
  context 'the requested payoff exists.' do
197
- before do
198
- @payoff = LivePaper::Payoff.get('payoff_id')
199
- end
203
+ let(:payoff) { LivePaper::Payoff.get('payoff_id') }
200
204
 
201
205
  it 'should return the requested payoff.' do
202
- expect(@payoff.id).to eq 'payoff_id'
203
- expect(@payoff.name).to eq 'name'
204
- expect(@payoff.url).to eq 'url'
206
+ expect(payoff.id).to eq 'payoff_id'
207
+ expect(payoff.name).to eq 'name'
208
+ expect(payoff.url).to eq 'url'
205
209
  end
206
210
 
207
211
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: live_paper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.22
4
+ version: 0.0.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Whitmarsh
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-03-05 00:00:00.000000000 Z
12
+ date: 2015-04-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
@@ -109,7 +109,6 @@ files:
109
109
  - spec/live_paper/link_spec.rb
110
110
  - spec/live_paper/payoff_spec.rb
111
111
  - spec/live_paper/trigger_spec.rb
112
- - spec/live_paper_session_spec.rb
113
112
  - spec/spec_helper.rb
114
113
  - spec/spec_helpers/lpp_client.rb
115
114
  homepage: https://github.com/IPGPTP/live_paper_rubygem
@@ -132,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
131
  version: '0'
133
132
  requirements: []
134
133
  rubyforge_project:
135
- rubygems_version: 2.4.6
134
+ rubygems_version: 2.0.14
136
135
  signing_key:
137
136
  specification_version: 4
138
137
  summary: Ruby interface to the Live Paper service by HP.
@@ -142,6 +141,5 @@ test_files:
142
141
  - spec/live_paper/link_spec.rb
143
142
  - spec/live_paper/payoff_spec.rb
144
143
  - spec/live_paper/trigger_spec.rb
145
- - spec/live_paper_session_spec.rb
146
144
  - spec/spec_helper.rb
147
145
  - spec/spec_helpers/lpp_client.rb
@@ -1,16 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe LivePaper::LivePaperSession do
4
-
5
- describe '#shorten' do
6
- pending
7
- end
8
-
9
- describe '#qr_bytes' do
10
- pending
11
- end
12
-
13
- describe '#wm_bytes' do
14
- pending
15
- end
16
- end