omdbgateway 0.0.4 → 0.1.0

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: ab416ed1c52d6e21453fe42cff37544ff01aaed4
4
- data.tar.gz: 2e04e1371ae9795d3aebe22583d8a7c22f103278
3
+ metadata.gz: ed6caec8e3f2a8d4af8638612af35c1eb32adcd6
4
+ data.tar.gz: 10dbbaae953d2581e46ea04a079ee9770f7024f3
5
5
  SHA512:
6
- metadata.gz: 8dbc09b1ee9af7e6d791701d34884719d55a3b7e64fc9b34e5b69d72487497f75cc17b492dd95a096ca343f1b030153081d3efb3553f18031f4bf38517c3458f
7
- data.tar.gz: 5c6bc1bd2ae4209f2bb86e08e55a983700a211f5b1f40f2525982e1f91b31db3381e3ebe1583b2cfcccfae9948375d22a6eceeb5255157f6ca1ff3bef15e52b0
6
+ metadata.gz: b8d7fca62e9c35f5d91839583b66264094643eb06df03de1cdfe6ce2c762dead9a079b29182c0d4bab4c4550f467e7720b9c7c6c3ae02e2e17973327705be76e
7
+ data.tar.gz: 95109dbc155421e4649bd8135f06f02c7553b7917ea5c24833a5b02865c6fc43469a85f5f9e7060ce5ddfbde85b48ed1a8ef1e06f13de257643cd638cde52027
data/README.md CHANGED
@@ -1,13 +1,17 @@
1
- # omdbgateway
1
+ #omdbgateway
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/omdbgateway.svg)](http://badge.fury.io/rb/omdbgateway)
4
4
 
5
5
  [![Build Status](https://travis-ci.org/stujo/omdbgateway.svg?branch=master)](https://travis-ci.org/stujo/omdbgateway)
6
6
 
7
- __Note__ is a faraday rewrite of [Casey Scarborough's omdbapi](https://github.com/caseyscarborough/omdbapi)
7
+ [![Code Climate](https://codeclimate.com/github/stujo/omdbgateway.png)](https://codeclimate.com/github/stujo/omdbgateway)
8
+
9
+ #Overview
10
+ A Service Gateway to the omdb api. Adds support for failure or success detection, query simplification
11
+
12
+ For the full format of the Hashes returned by this api please review the source documenation here: [http://www.omdbapi.com/](http://www.omdbapi.com/)
8
13
 
9
- Not that there's anything wrong with what he did, I just wanted to try faraday and we're using OMDB
10
- in our class
14
+ The plan is to support caching via the faraday stack but this is not implemented yet
11
15
 
12
16
 
13
17
  #Installation
@@ -28,16 +32,29 @@ gem "omdbgateway"
28
32
 
29
33
  #Usage
30
34
 
35
+
31
36
  ##Title Search
32
37
 
33
- Returns a single item (chosen by OMDB) as a Hash
38
+ Returns a OMDBGateway::ResponseWrapper for a single item (chosen by OMDB) as a Hash
34
39
 
35
40
  ```
41
+ # Retrieves a single movie or show based on its title.
42
+ #
43
+ # @param title [String] The title of the movie or show.
44
+ # @param year [String] The year of the movie or show.
45
+ # @param full_plot [Boolean] Full Plot data (default: false)
46
+ # @return [OMDBGateway::ResponseWrapper]
47
+ # @example
48
+ # title_search('Game of Thrones')
49
+ def title_search(title, year = nil, full_plot = false, tomatoes = false)
36
50
 
37
- require 'omdbgateway'
51
+ ```
38
52
 
39
- OMDBGateway.gateway.title_search('Star Wars')
40
- => #<OMDBGateway::ResponseWrapper:0x00000101ca5218 @http_status=200, @body={"Title"=>"Star Wars", "Year"=>"1983", "Rated"=>"N/A", "Released"=>"01 May 1983", "Runtime"=>"N/A", "Genre"=>"Action, Adventure, Sci-Fi", "Director"=>"N/A", "Writer"=>"N/A", "Actors"=>"Harrison Ford, Alec Guinness, Mark Hamill, James Earl Jones", "Plot"=>"N/A", "Language"=>"English", "Country"=>"USA", "Awards"=>"N/A", "Poster"=>"N/A", "Metascore"=>"N/A", "imdbRating"=>"7.3", "imdbVotes"=>"292", "imdbID"=>"tt0251413", "Type"=>"game", "Response"=>"True"}, app_failedfalse
53
+
54
+
55
+ ```
56
+
57
+ require 'omdbgateway'
41
58
 
42
59
  OMDBGateway.gateway.title_search('Star Wars').body
43
60
  => {"Title"=>"Star Wars", "Year"=>"1983", "Rated"=>"N/A", "Released"=>"01 May 1983", "Runtime"=>"N/A", "Genre"=>"Action, Adventure, Sci-Fi", "Director"=>"N/A", "Writer"=>"N/A", "Actors"=>"Harrison Ford, Alec Guinness, Mark Hamill, James Earl Jones", "Plot"=>"N/A", "Language"=>"English", "Country"=>"USA", "Awards"=>"N/A", "Poster"=>"N/A", "Metascore"=>"N/A", "imdbRating"=>"7.3", "imdbVotes"=>"292", "imdbID"=>"tt0251413", "Type"=>"game", "Response"=>"True"}
@@ -50,10 +67,22 @@ OMDBGateway.gateway.title_search('Star Wars').body.class
50
67
 
51
68
  ##Free Text Search
52
69
 
53
- Returns an array of items (chosen by OMDB) as Hashes
70
+ Returns a OMDBGateway::ResponseWrapper for an array of items (order chosen by OMDB) based on your search as Hashes
54
71
 
55
72
  each with Title, Year, imdbID and Type fields
56
73
 
74
+ ```
75
+ # Retrieves a movie or show based on its title.
76
+ #
77
+ # @param q [String] The search string
78
+ # @return [OMDBGateway::ResponseWrapper]
79
+ # @example
80
+ # free_search('Game')
81
+ def free_search(q)
82
+
83
+ ```
84
+
85
+
57
86
  ```
58
87
 
59
88
  OMDBGateway.gateway.free_search('Jedi')
@@ -108,7 +137,20 @@ OMDBGateway.gateway.free_search('Jedi').body
108
137
 
109
138
  ## Find By Id
110
139
 
111
- Returns a single item as a Hash with all available fields
140
+ Returns a OMDBGateway::ResponseWrapper for a single movie as a Hash with all available fields
141
+
142
+ ```
143
+
144
+ # Retrieves a movie or show based on its IMDb ID.
145
+ #
146
+ # @param imdb_id [String] The IMDb ID of the movie or show.
147
+ # @param full_plot [Boolean] Full Plot data (default: false)
148
+ # @return [OMDBGateway::ResponseWrapper]
149
+ # @example
150
+ # find_by_id('tt0944947')
151
+ def find_by_id(imdb_id, full_plot = false, tomatoes = true)
152
+
153
+ ```
112
154
 
113
155
 
114
156
  ```
@@ -248,4 +290,9 @@ If needed a default value can be specified, used if the key does not exist
248
290
  OMDBGateway.gateway.free_search('Jedi').prune_array(1).prune_hash('Axiom', 123).body
249
291
  => 123
250
292
 
251
- ```
293
+ ```
294
+
295
+ #History
296
+ __Note__ is a faraday rewrite of [Casey Scarborough's omdbapi](https://github.com/caseyscarborough/omdbapi)
297
+
298
+ Not that there's anything wrong with what he did, I just wanted to try faraday and we're using OMDB in our class
@@ -35,7 +35,7 @@ http_interactions:
35
35
  Access-Control-Allow-Origin:
36
36
  - "*"
37
37
  Date:
38
- - Fri, 18 Apr 2014 00:44:48 GMT
38
+ - Sat, 19 Apr 2014 03:25:11 GMT
39
39
  Content-Length:
40
40
  - '417'
41
41
  body:
@@ -44,7 +44,97 @@ http_interactions:
44
44
  May 1983\",\"Runtime\":\"N/A\",\"Genre\":\"Action, Adventure, Sci-Fi\",\"Director\":\"N/A\",\"Writer\":\"N/A\",\"Actors\":\"Harrison
45
45
  Ford, Alec Guinness, Mark Hamill, James Earl Jones\",\"Plot\":\"N/A\",\"Language\":\"English\",\"Country\":\"USA\",\"Awards\":\"N/A\",\"Poster\":\"N/A\",\"Metascore\":\"N/A\",\"imdbRating\":\"7.3\",\"imdbVotes\":\"292\",\"imdbID\":\"tt0251413\",\"Type\":\"game\",\"Response\":\"True\"}"
46
46
  http_version:
47
- recorded_at: Fri, 18 Apr 2014 00:44:53 GMT
47
+ recorded_at: Sat, 19 Apr 2014 03:25:15 GMT
48
+ - request:
49
+ method: get
50
+ uri: http://omdbapi.com/?t=Star%20Wars&tomatoes=true&y=1983
51
+ body:
52
+ encoding: US-ASCII
53
+ string: ''
54
+ headers:
55
+ User-Agent:
56
+ - Faraday v0.8.9
57
+ Accept-Encoding:
58
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
59
+ Accept:
60
+ - "*/*"
61
+ response:
62
+ status:
63
+ code: 200
64
+ message: OK
65
+ headers:
66
+ Cache-Control:
67
+ - no-cache
68
+ Pragma:
69
+ - no-cache
70
+ Content-Type:
71
+ - text/html; charset=utf-8
72
+ Expires:
73
+ - "-1"
74
+ Server:
75
+ - Microsoft-IIS/7.5
76
+ X-Aspnet-Version:
77
+ - 4.0.30319
78
+ X-Powered-By:
79
+ - ASP.NET
80
+ Access-Control-Allow-Origin:
81
+ - "*"
82
+ Date:
83
+ - Sat, 19 Apr 2014 03:25:12 GMT
84
+ Content-Length:
85
+ - '705'
86
+ body:
87
+ encoding: UTF-8
88
+ string: "{\"Title\":\"Star Wars\",\"Year\":\"1983\",\"Rated\":\"N/A\",\"Released\":\"01
89
+ May 1983\",\"Runtime\":\"N/A\",\"Genre\":\"Action, Adventure, Sci-Fi\",\"Director\":\"N/A\",\"Writer\":\"N/A\",\"Actors\":\"Harrison
90
+ Ford, Alec Guinness, Mark Hamill, James Earl Jones\",\"Plot\":\"N/A\",\"Language\":\"English\",\"Country\":\"USA\",\"Awards\":\"N/A\",\"Poster\":\"N/A\",\"Metascore\":\"N/A\",\"imdbRating\":\"7.3\",\"imdbVotes\":\"292\",\"imdbID\":\"tt0251413\",\"Type\":\"game\",\"tomatoMeter\":\"N/A\",\"tomatoImage\":\"N/A\",\"tomatoRating\":\"N/A\",\"tomatoReviews\":\"N/A\",\"tomatoFresh\":\"N/A\",\"tomatoRotten\":\"N/A\",\"tomatoConsensus\":\"N/A\",\"tomatoUserMeter\":\"N/A\",\"tomatoUserRating\":\"N/A\",\"tomatoUserReviews\":\"N/A\",\"DVD\":\"N/A\",\"BoxOffice\":\"N/A\",\"Production\":\"N/A\",\"Website\":\"N/A\",\"Response\":\"True\"}"
91
+ http_version:
92
+ recorded_at: Sat, 19 Apr 2014 03:25:15 GMT
93
+ - request:
94
+ method: get
95
+ uri: http://omdbapi.com/?plot=full&t=Star%20Wars&y=1983
96
+ body:
97
+ encoding: US-ASCII
98
+ string: ''
99
+ headers:
100
+ User-Agent:
101
+ - Faraday v0.8.9
102
+ Accept-Encoding:
103
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
104
+ Accept:
105
+ - "*/*"
106
+ response:
107
+ status:
108
+ code: 200
109
+ message: OK
110
+ headers:
111
+ Cache-Control:
112
+ - no-cache
113
+ Pragma:
114
+ - no-cache
115
+ Content-Type:
116
+ - text/html; charset=utf-8
117
+ Expires:
118
+ - "-1"
119
+ Server:
120
+ - Microsoft-IIS/7.5
121
+ X-Aspnet-Version:
122
+ - 4.0.30319
123
+ X-Powered-By:
124
+ - ASP.NET
125
+ Access-Control-Allow-Origin:
126
+ - "*"
127
+ Date:
128
+ - Sat, 19 Apr 2014 03:25:12 GMT
129
+ Content-Length:
130
+ - '417'
131
+ body:
132
+ encoding: UTF-8
133
+ string: "{\"Title\":\"Star Wars\",\"Year\":\"1983\",\"Rated\":\"N/A\",\"Released\":\"01
134
+ May 1983\",\"Runtime\":\"N/A\",\"Genre\":\"Action, Adventure, Sci-Fi\",\"Director\":\"N/A\",\"Writer\":\"N/A\",\"Actors\":\"Harrison
135
+ Ford, Alec Guinness, Mark Hamill, James Earl Jones\",\"Plot\":\"N/A\",\"Language\":\"English\",\"Country\":\"USA\",\"Awards\":\"N/A\",\"Poster\":\"N/A\",\"Metascore\":\"N/A\",\"imdbRating\":\"7.3\",\"imdbVotes\":\"292\",\"imdbID\":\"tt0251413\",\"Type\":\"game\",\"Response\":\"True\"}"
136
+ http_version:
137
+ recorded_at: Sat, 19 Apr 2014 03:25:16 GMT
48
138
  - request:
49
139
  method: get
50
140
  uri: http://omdbapi.com/?t=True%20Grit
@@ -80,7 +170,7 @@ http_interactions:
80
170
  Access-Control-Allow-Origin:
81
171
  - "*"
82
172
  Date:
83
- - Fri, 18 Apr 2014 00:44:48 GMT
173
+ - Sat, 19 Apr 2014 03:25:12 GMT
84
174
  Content-Length:
85
175
  - '737'
86
176
  body:
@@ -93,7 +183,7 @@ http_interactions:
93
183
  woman track down her father's murderer.\",\"Language\":\"English\",\"Country\":\"USA\",\"Awards\":\"Nominated
94
184
  for 10 Oscars. Another 31 wins & 85 nominations.\",\"Poster\":\"http://ia.media-imdb.com/images/M/MV5BMjIxNjAzODQ0N15BMl5BanBnXkFtZTcwODY2MjMyNA@@._V1_SX300.jpg\",\"Metascore\":\"80\",\"imdbRating\":\"7.7\",\"imdbVotes\":\"186,806\",\"imdbID\":\"tt1403865\",\"Type\":\"movie\",\"Response\":\"True\"}"
95
185
  http_version:
96
- recorded_at: Fri, 18 Apr 2014 00:44:53 GMT
186
+ recorded_at: Sat, 19 Apr 2014 03:25:16 GMT
97
187
  - request:
98
188
  method: get
99
189
  uri: http://omdbapi.com/?t=True%20Grit&y=1969
@@ -129,7 +219,7 @@ http_interactions:
129
219
  Access-Control-Allow-Origin:
130
220
  - "*"
131
221
  Date:
132
- - Fri, 18 Apr 2014 00:44:48 GMT
222
+ - Sat, 19 Apr 2014 03:25:12 GMT
133
223
  Content-Length:
134
224
  - '745'
135
225
  body:
@@ -142,7 +232,7 @@ http_interactions:
142
232
  father's murderer in Indian territory.\",\"Language\":\"English\",\"Country\":\"USA\",\"Awards\":\"Won
143
233
  1 Oscar. Another 7 wins & 5 nominations.\",\"Poster\":\"http://ia.media-imdb.com/images/M/MV5BMTYwNTE3NDYzOV5BMl5BanBnXkFtZTcwNTU5MzY0MQ@@._V1_SX300.jpg\",\"Metascore\":\"N/A\",\"imdbRating\":\"7.4\",\"imdbVotes\":\"26,792\",\"imdbID\":\"tt0065126\",\"Type\":\"movie\",\"Response\":\"True\"}"
144
234
  http_version:
145
- recorded_at: Fri, 18 Apr 2014 00:44:53 GMT
235
+ recorded_at: Sat, 19 Apr 2014 03:25:16 GMT
146
236
  - request:
147
237
  method: get
148
238
  uri: http://omdbapi.com/?t=Game%20of%20Thrones
@@ -178,7 +268,7 @@ http_interactions:
178
268
  Access-Control-Allow-Origin:
179
269
  - "*"
180
270
  Date:
181
- - Fri, 18 Apr 2014 00:44:48 GMT
271
+ - Sat, 19 Apr 2014 03:25:13 GMT
182
272
  Content-Length:
183
273
  - '693'
184
274
  body:
@@ -201,7 +291,7 @@ http_interactions:
201
291
  MjksNDgyIiwiaW1kYklEIjoidHQwOTQ0OTQ3IiwiVHlwZSI6InNlcmllcyIs
202
292
  IlJlc3BvbnNlIjoiVHJ1ZSJ9
203
293
  http_version:
204
- recorded_at: Fri, 18 Apr 2014 00:44:53 GMT
294
+ recorded_at: Sat, 19 Apr 2014 03:25:17 GMT
205
295
  - request:
206
296
  method: get
207
297
  uri: http://omdbapi.com/?plot=full&t=Game%20of%20Thrones
@@ -237,7 +327,7 @@ http_interactions:
237
327
  Access-Control-Allow-Origin:
238
328
  - "*"
239
329
  Date:
240
- - Fri, 18 Apr 2014 00:44:48 GMT
330
+ - Sat, 19 Apr 2014 03:25:14 GMT
241
331
  Content-Length:
242
332
  - '1588'
243
333
  body:
@@ -280,7 +370,7 @@ http_interactions:
280
370
  MiIsImltZGJJRCI6InR0MDk0NDk0NyIsIlR5cGUiOiJzZXJpZXMiLCJSZXNw
281
371
  b25zZSI6IlRydWUifQ==
282
372
  http_version:
283
- recorded_at: Fri, 18 Apr 2014 00:44:53 GMT
373
+ recorded_at: Sat, 19 Apr 2014 03:25:18 GMT
284
374
  - request:
285
375
  method: get
286
376
  uri: http://omdbapi.com/?t=lsdfoweirjrpwef323423dsfkip
@@ -316,17 +406,17 @@ http_interactions:
316
406
  Access-Control-Allow-Origin:
317
407
  - "*"
318
408
  Date:
319
- - Fri, 18 Apr 2014 00:44:49 GMT
409
+ - Sat, 19 Apr 2014 03:25:14 GMT
320
410
  Content-Length:
321
411
  - '47'
322
412
  body:
323
413
  encoding: UTF-8
324
414
  string: "{\"Response\":\"False\",\"Error\":\"Movie not found!\"}"
325
415
  http_version:
326
- recorded_at: Fri, 18 Apr 2014 00:44:53 GMT
416
+ recorded_at: Sat, 19 Apr 2014 03:25:18 GMT
327
417
  - request:
328
418
  method: get
329
- uri: http://omdbapi.com/?i=tt0411008
419
+ uri: http://omdbapi.com/?i=tt0411008&tomatoes=true
330
420
  body:
331
421
  encoding: US-ASCII
332
422
  string: ''
@@ -359,9 +449,9 @@ http_interactions:
359
449
  Access-Control-Allow-Origin:
360
450
  - "*"
361
451
  Date:
362
- - Fri, 18 Apr 2014 00:44:49 GMT
452
+ - Sat, 19 Apr 2014 03:25:15 GMT
363
453
  Content-Length:
364
- - '832'
454
+ - '1172'
365
455
  body:
366
456
  encoding: ASCII-8BIT
367
457
  string: !binary |-
@@ -383,12 +473,20 @@ http_interactions:
383
473
  bDVCYW5CblhrRnRaVGN3TmpjMU9EVXdNZ0BALl9WMV9TWDMwMC5qcGciLCJN
384
474
  ZXRhc2NvcmUiOiJOL0EiLCJpbWRiUmF0aW5nIjoiOC42IiwiaW1kYlZvdGVz
385
475
  IjoiMjcxLDg0MiIsImltZGJJRCI6InR0MDQxMTAwOCIsIlR5cGUiOiJzZXJp
386
- ZXMiLCJSZXNwb25zZSI6IlRydWUifQ==
476
+ ZXMiLCJ0b21hdG9NZXRlciI6IjgwIiwidG9tYXRvSW1hZ2UiOiJmcmVzaCIs
477
+ InRvbWF0b1JhdGluZyI6IjYuMiIsInRvbWF0b1Jldmlld3MiOiI1IiwidG9t
478
+ YXRvRnJlc2giOiI0IiwidG9tYXRvUm90dGVuIjoiMSIsInRvbWF0b0NvbnNl
479
+ bnN1cyI6Ik4vQSIsInRvbWF0b1VzZXJNZXRlciI6IjcyIiwidG9tYXRvVXNl
480
+ clJhdGluZyI6IjMuNyIsInRvbWF0b1VzZXJSZXZpZXdzIjoiNCwyOTgiLCJE
481
+ VkQiOiIxNCBNYXIgMjAwNiIsIkJveE9mZmljZSI6Ik4vQSIsIlByb2R1Y3Rp
482
+ b24iOiJTaWx2ZXJDcmVzdCBFbnRlcnRhaW5tZW50IiwiV2Vic2l0ZSI6Imh0
483
+ dHA6Ly93d3cubG9zdC10aGVtb3ZpZS5jb20vIiwiUmVzcG9uc2UiOiJUcnVl
484
+ In0=
387
485
  http_version:
388
- recorded_at: Fri, 18 Apr 2014 00:44:54 GMT
486
+ recorded_at: Sat, 19 Apr 2014 03:25:19 GMT
389
487
  - request:
390
488
  method: get
391
- uri: http://omdbapi.com/?i=tt1231230123
489
+ uri: http://omdbapi.com/?i=tt1231230123&tomatoes=true
392
490
  body:
393
491
  encoding: US-ASCII
394
492
  string: ''
@@ -421,14 +519,14 @@ http_interactions:
421
519
  Access-Control-Allow-Origin:
422
520
  - "*"
423
521
  Date:
424
- - Fri, 18 Apr 2014 00:44:49 GMT
522
+ - Sat, 19 Apr 2014 03:25:15 GMT
425
523
  Content-Length:
426
524
  - '48'
427
525
  body:
428
526
  encoding: UTF-8
429
527
  string: "{\"Response\":\"False\",\"Error\":\"Incorrect IMDb ID\"}"
430
528
  http_version:
431
- recorded_at: Fri, 18 Apr 2014 00:44:54 GMT
529
+ recorded_at: Sat, 19 Apr 2014 03:25:19 GMT
432
530
  - request:
433
531
  method: get
434
532
  uri: http://omdbapi.com/?s=Star%20Wars
@@ -464,7 +562,7 @@ http_interactions:
464
562
  Access-Control-Allow-Origin:
465
563
  - "*"
466
564
  Date:
467
- - Fri, 18 Apr 2014 00:44:49 GMT
565
+ - Sat, 19 Apr 2014 03:25:16 GMT
468
566
  Content-Length:
469
567
  - '1009'
470
568
  body:
@@ -494,7 +592,7 @@ http_interactions:
494
592
  YXkgU3BlY2lhbCIsIlllYXIiOiIxOTc4IiwiaW1kYklEIjoidHQwMTkzNTI0
495
593
  IiwiVHlwZSI6Im1vdmllIn1dfQ==
496
594
  http_version:
497
- recorded_at: Fri, 18 Apr 2014 00:44:54 GMT
595
+ recorded_at: Sat, 19 Apr 2014 03:25:20 GMT
498
596
  - request:
499
597
  method: get
500
598
  uri: http://omdbapi.com/?s=Star%20Wars:%20Episode%20VI%20-%20Return%20of%20the%20Jedi
@@ -530,14 +628,14 @@ http_interactions:
530
628
  Access-Control-Allow-Origin:
531
629
  - "*"
532
630
  Date:
533
- - Fri, 18 Apr 2014 00:44:49 GMT
631
+ - Sat, 19 Apr 2014 03:25:17 GMT
534
632
  Content-Length:
535
633
  - '117'
536
634
  body:
537
635
  encoding: UTF-8
538
636
  string: "{\"Search\":[{\"Title\":\"Star Wars: Episode VI - Return of the Jedi\",\"Year\":\"1983\",\"imdbID\":\"tt0086190\",\"Type\":\"movie\"}]}"
539
637
  http_version:
540
- recorded_at: Fri, 18 Apr 2014 00:44:54 GMT
638
+ recorded_at: Sat, 19 Apr 2014 03:25:20 GMT
541
639
  - request:
542
640
  method: get
543
641
  uri: http://omdbapi.com/?s=lsdfoweirjrpwef323423dsfkip
@@ -573,12 +671,12 @@ http_interactions:
573
671
  Access-Control-Allow-Origin:
574
672
  - "*"
575
673
  Date:
576
- - Fri, 18 Apr 2014 00:44:49 GMT
674
+ - Sat, 19 Apr 2014 03:25:17 GMT
577
675
  Content-Length:
578
676
  - '47'
579
677
  body:
580
678
  encoding: UTF-8
581
679
  string: "{\"Response\":\"False\",\"Error\":\"Movie not found!\"}"
582
680
  http_version:
583
- recorded_at: Fri, 18 Apr 2014 00:44:54 GMT
681
+ recorded_at: Sat, 19 Apr 2014 03:25:21 GMT
584
682
  recorded_with: VCR 2.9.0
@@ -29,18 +29,19 @@ module OMDBGateway
29
29
  end
30
30
 
31
31
 
32
- # Retrieves a movie or show based on its title.
32
+ # Retrieves a single movie or show based on its title.
33
33
  #
34
34
  # @param title [String] The title of the movie or show.
35
35
  # @param year [String] The year of the movie or show.
36
- # @param plot [String] The plot of the movie or show.
37
- # @return [Hash]
36
+ # @param full_plot [Boolean] Full Plot data (default: false)
37
+ # @return [OMDBGateway::ResponseWrapper]
38
38
  # @example
39
39
  # title_search('Game of Thrones')
40
- def title_search(title, year = nil, plot = nil)
40
+ def title_search(title, year = nil, full_plot = false, tomatoes = false)
41
41
  response = get '/' do |req|
42
42
  req.params = {:t => title}
43
- req.params[:plot] = plot unless plot.nil?
43
+ req.params[:plot] = 'full' if (full_plot == true || 'full' == full_plot)
44
+ req.params[:tomatoes] = 'true' if tomatoes
44
45
  req.params[:y] = year unless year.nil?
45
46
  end
46
47
  # Middleware creates the Hash
@@ -50,7 +51,7 @@ module OMDBGateway
50
51
  # Retrieves a movie or show based on its title.
51
52
  #
52
53
  # @param q [String] The search string
53
- # @return [Array of Hashes]
54
+ # @return [OMDBGateway::ResponseWrapper]
54
55
  # @example
55
56
  # free_search('Game')
56
57
  def free_search(q)
@@ -61,15 +62,18 @@ module OMDBGateway
61
62
  end
62
63
 
63
64
 
64
- # Retrieves a movie or show based on its IMDb ID.
65
+ # Retrieves a single movie or show based on its IMDb ID.
65
66
  #
66
67
  # @param imdb_id [String] The IMDb ID of the movie or show.
67
- # @return [Hash]
68
+ # @param full_plot [Boolean] Full Plot data (default: false)
69
+ # @return [OMDBGateway::ResponseWrapper]
68
70
  # @example
69
71
  # find_by_id('tt0944947')
70
- def find_by_id(imdb_id)
72
+ def find_by_id(imdb_id, full_plot = false, tomatoes = true)
71
73
  response = get '/' do |req|
72
74
  req.params = {:i => imdb_id}
75
+ req.params[:plot] = 'full' if (full_plot == true || 'full' == full_plot)
76
+ req.params[:tomatoes] = 'true' if tomatoes
73
77
  end
74
78
  response
75
79
  end
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "omdbgateway"
7
- spec.version = '0.0.4'
7
+ spec.version = '0.1.0'
8
8
  spec.authors = ["Stuart Jones"]
9
9
  spec.email = ["omdbgateway@skillbox.com"]
10
10
  spec.description = 'A simple API Service Gateway for the omdb omdbapi.com movie API. Supporting error handling and result pruning'
@@ -23,6 +23,9 @@ OMDBGateway::Gateway
23
23
  with a movie that exists
24
24
  should return a hash of movie attributes
25
25
  should contain a title
26
+ should have tomatoes
27
+ should contain a not have tomatoes
28
+ should have a longer plot
26
29
  with the year parameter
27
30
  should not be the same title
28
31
  with the plot parameter
@@ -86,5 +89,5 @@ OMDBGateway::ResponseWrapper
86
89
  should be nil for empty array
87
90
  should be {'a' => 'A', 'b' => 'B'} for any array
88
91
 
89
- Finished in 0.20503 seconds
90
- 52 examples, 0 failures
92
+ Finished in 0.27338 seconds
93
+ 55 examples, 0 failures
@@ -72,6 +72,12 @@ module OMDBGateway
72
72
  let(:title_results) do
73
73
  gateway.title_search('Star Wars')
74
74
  end
75
+ let(:title_results_with_full_plot) do
76
+ gateway.title_search('Star Wars',1983,true)
77
+ end
78
+ let(:title_results_with_tomatoes) do
79
+ gateway.title_search('Star Wars',1983,false,true)
80
+ end
75
81
 
76
82
  it 'should return a hash of movie attributes' do
77
83
  title_results.should be_instance_of ResponseWrapper
@@ -80,6 +86,18 @@ module OMDBGateway
80
86
  it 'should contain a title' do
81
87
  title_results.as_hash['Title'].should be_instance_of String
82
88
  end
89
+
90
+ it 'should have tomatoes' do
91
+ title_results_with_tomatoes.as_hash['tomatoMeter'].should be_instance_of String
92
+ end
93
+
94
+ it 'should contain a not have tomatoes' do
95
+ title_results.as_hash['tomatoMeter'].should eq nil
96
+ end
97
+
98
+ it 'should have a longer plot' do
99
+ title_results_with_full_plot.prune_hash('Plot','').body.length.should be >= title_results.prune_hash('Plot','').body.length
100
+ end
83
101
  end
84
102
 
85
103
  describe 'with the year parameter' do
@@ -93,7 +111,7 @@ module OMDBGateway
93
111
 
94
112
  describe 'with the plot parameter' do
95
113
  let(:title_results1) { gateway.title_search('Game of Thrones') }
96
- let(:title_results2) { gateway.title_search('Game of Thrones', nil, 'full') }
114
+ let(:title_results2) { gateway.title_search('Game of Thrones', nil, true) }
97
115
 
98
116
  it 'should have different plots' do
99
117
  title_results1.as_hash['Plot'].should_not eq(title_results2.as_hash['Plot'])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omdbgateway
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stuart Jones
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-18 00:00:00.000000000 Z
11
+ date: 2014-04-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler