songkickr 0.3.3 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (162) hide show
  1. checksums.yaml +7 -0
  2. data/.bundle/config +2 -0
  3. data/.gitignore +1 -0
  4. data/.travis.yml +8 -0
  5. data/Gemfile.lock +42 -22
  6. data/LICENSE +1 -1
  7. data/README.rdoc +14 -9
  8. data/Rakefile +3 -4
  9. data/lib/songkickr/artist.rb +2 -2
  10. data/lib/songkickr/artist_result.rb +4 -24
  11. data/lib/songkickr/calendar_entry.rb +23 -0
  12. data/lib/songkickr/calendar_result.rb +10 -0
  13. data/lib/songkickr/concert_setlist_result.rb +5 -27
  14. data/lib/songkickr/event.rb +8 -14
  15. data/lib/songkickr/event_result.rb +5 -23
  16. data/lib/songkickr/location.rb +4 -4
  17. data/lib/songkickr/location_result.rb +5 -30
  18. data/lib/songkickr/metro_area.rb +28 -0
  19. data/lib/songkickr/metro_area_result.rb +12 -0
  20. data/lib/songkickr/performance.rb +17 -12
  21. data/lib/songkickr/remote.rb +18 -198
  22. data/lib/songkickr/remote_api/artist_details.rb +17 -0
  23. data/lib/songkickr/remote_api/event_details.rb +17 -0
  24. data/lib/songkickr/remote_api/past_events.rb +48 -0
  25. data/lib/songkickr/remote_api/similar_artists.rb +14 -0
  26. data/lib/songkickr/remote_api/upcoming_events.rb +125 -0
  27. data/lib/songkickr/remote_api/user_events_and_trackings.rb +143 -0
  28. data/lib/songkickr/remote_api/venue_details.rb +16 -0
  29. data/lib/songkickr/result_set.rb +27 -0
  30. data/lib/songkickr/setlist.rb +7 -12
  31. data/lib/songkickr/setlist_item.rb +1 -1
  32. data/lib/songkickr/tracking.rb +18 -0
  33. data/lib/songkickr/tracking_result.rb +24 -0
  34. data/lib/songkickr/venue.rb +10 -2
  35. data/lib/songkickr/venue_result.rb +32 -0
  36. data/lib/songkickr/version.rb +1 -1
  37. data/lib/songkickr.rb +24 -17
  38. data/songkickr.gemspec +17 -44
  39. data/test/fixtures/event_7391451.json +732 -1
  40. data/test/fixtures/location_search.json +38 -0
  41. data/test/fixtures/metro_area.json +11 -0
  42. data/test/fixtures/users_attendance_calendar.json +243 -0
  43. data/test/fixtures/vcr/artist_events.yml +1394 -0
  44. data/test/fixtures/vcr/artist_search.yml +38 -0
  45. data/test/fixtures/vcr/artists_gigography.yml +187 -0
  46. data/test/fixtures/vcr/concert_setlists.yml +47 -0
  47. data/test/fixtures/vcr/event_search.yml +110 -0
  48. data/test/fixtures/vcr/invalid_api_key.yml +6 -36
  49. data/test/fixtures/vcr/invalid_artist_id.yml +6 -6
  50. data/test/fixtures/vcr/invalid_event_id.yml +6 -6
  51. data/test/fixtures/vcr/invalid_user.yml +6 -6
  52. data/test/fixtures/vcr/invalid_venue_id.yml +6 -6
  53. data/test/fixtures/vcr/location_search.yml +42 -0
  54. data/test/fixtures/vcr/metro_areas_events.yml +1535 -0
  55. data/test/fixtures/vcr/similar_artists.yml +64 -0
  56. data/test/fixtures/vcr/users_artist_tracking.yml +99 -0
  57. data/test/fixtures/vcr/users_attendance.yml +66 -0
  58. data/test/fixtures/vcr/users_attendance_calendar.yml +51 -0
  59. data/test/fixtures/vcr/users_events.yml +809 -0
  60. data/test/fixtures/vcr/users_gigography.yml +2782 -0
  61. data/test/fixtures/vcr/users_metro_area_tracking.yml +66 -0
  62. data/test/fixtures/vcr/users_muted_artists.yml +66 -0
  63. data/test/fixtures/vcr/users_tracked_artists.yml +75 -0
  64. data/test/fixtures/vcr/users_tracked_events_calendar.yml +1901 -0
  65. data/test/fixtures/vcr/users_tracked_metro_areas.yml +37 -0
  66. data/test/fixtures/vcr/valid_artist.yml +9 -9
  67. data/test/fixtures/vcr/valid_event.yml +103 -38
  68. data/test/fixtures/vcr/valid_user.yml +634 -44
  69. data/test/fixtures/vcr/valid_venue.yml +25 -26
  70. data/test/fixtures/vcr/venue_calendar.yml +500 -0
  71. data/test/fixtures/vcr/venue_search.yml +42 -0
  72. data/test/helper.rb +1 -27
  73. data/test/songkickr/test_calendar_entry.rb +15 -0
  74. data/test/songkickr/test_event.rb +8 -9
  75. data/test/songkickr/test_location.rb +11 -11
  76. data/test/songkickr/test_metro_area.rb +17 -0
  77. data/test/songkickr/test_remote.rb +149 -3
  78. data/test/songkickr/test_setlist_item.rb +20 -0
  79. data/test/songkickr/test_venue.rb +1 -2
  80. data/test.rb +3 -5
  81. metadata +120 -152
  82. data/bin/autospec +0 -16
  83. data/bin/convert_to_should_syntax +0 -16
  84. data/bin/guard +0 -16
  85. data/bin/htmldiff +0 -16
  86. data/bin/httparty +0 -16
  87. data/bin/jeweler +0 -16
  88. data/bin/ldiff +0 -16
  89. data/bin/rake +0 -16
  90. data/bin/rake2thor +0 -16
  91. data/bin/rg +0 -16
  92. data/bin/ri +0 -16
  93. data/bin/rspec +0 -16
  94. data/bin/thor +0 -16
  95. data/doc/APIError.html +0 -241
  96. data/doc/APIKeyNotSet.html +0 -203
  97. data/doc/LICENSE.html +0 -133
  98. data/doc/README_rdoc.html +0 -173
  99. data/doc/ResourceNotFound.html +0 -203
  100. data/doc/Songkickr/Artist.html +0 -278
  101. data/doc/Songkickr/ArtistResult.html +0 -308
  102. data/doc/Songkickr/ConcertSetlistResult.html +0 -283
  103. data/doc/Songkickr/Event.html +0 -491
  104. data/doc/Songkickr/EventResult.html +0 -306
  105. data/doc/Songkickr/Location.html +0 -299
  106. data/doc/Songkickr/LocationResult.html +0 -309
  107. data/doc/Songkickr/Performance.html +0 -295
  108. data/doc/Songkickr/Remote.html +0 -864
  109. data/doc/Songkickr/Setlist.html +0 -360
  110. data/doc/Songkickr/SetlistItem.html +0 -244
  111. data/doc/Songkickr/Venue.html +0 -265
  112. data/doc/Songkickr.html +0 -261
  113. data/doc/created.rid +0 -16
  114. data/doc/images/add.png +0 -0
  115. data/doc/images/brick.png +0 -0
  116. data/doc/images/brick_link.png +0 -0
  117. data/doc/images/bug.png +0 -0
  118. data/doc/images/bullet_black.png +0 -0
  119. data/doc/images/bullet_toggle_minus.png +0 -0
  120. data/doc/images/bullet_toggle_plus.png +0 -0
  121. data/doc/images/date.png +0 -0
  122. data/doc/images/delete.png +0 -0
  123. data/doc/images/find.png +0 -0
  124. data/doc/images/loadingAnimation.gif +0 -0
  125. data/doc/images/macFFBgHack.png +0 -0
  126. data/doc/images/package.png +0 -0
  127. data/doc/images/page_green.png +0 -0
  128. data/doc/images/page_white_text.png +0 -0
  129. data/doc/images/page_white_width.png +0 -0
  130. data/doc/images/plugin.png +0 -0
  131. data/doc/images/ruby.png +0 -0
  132. data/doc/images/tag_blue.png +0 -0
  133. data/doc/images/tag_green.png +0 -0
  134. data/doc/images/transparent.png +0 -0
  135. data/doc/images/wrench.png +0 -0
  136. data/doc/images/wrench_orange.png +0 -0
  137. data/doc/images/zoom.png +0 -0
  138. data/doc/index.html +0 -110
  139. data/doc/js/darkfish.js +0 -153
  140. data/doc/js/jquery.js +0 -18
  141. data/doc/js/navigation.js +0 -142
  142. data/doc/js/quicksearch.js +0 -114
  143. data/doc/js/search.js +0 -94
  144. data/doc/js/search_index.js +0 -1
  145. data/doc/js/searcher.js +0 -228
  146. data/doc/js/thickbox-compressed.js +0 -10
  147. data/doc/lib/songkickr/artist_rb.html +0 -52
  148. data/doc/lib/songkickr/artist_result_rb.html +0 -52
  149. data/doc/lib/songkickr/concert_setlist_result_rb.html +0 -52
  150. data/doc/lib/songkickr/event_rb.html +0 -52
  151. data/doc/lib/songkickr/event_result_rb.html +0 -52
  152. data/doc/lib/songkickr/location_rb.html +0 -52
  153. data/doc/lib/songkickr/location_result_rb.html +0 -52
  154. data/doc/lib/songkickr/performance_rb.html +0 -52
  155. data/doc/lib/songkickr/remote_rb.html +0 -52
  156. data/doc/lib/songkickr/setlist_item_rb.html +0 -52
  157. data/doc/lib/songkickr/setlist_rb.html +0 -52
  158. data/doc/lib/songkickr/venue_rb.html +0 -52
  159. data/doc/lib/songkickr_rb.html +0 -56
  160. data/doc/rdoc.css +0 -543
  161. data/doc/table_of_contents.html +0 -185
  162. data/test/fixtures/locations_bar.json +0 -1
data/doc/rdoc.css DELETED
@@ -1,543 +0,0 @@
1
- /*
2
- * "Darkfish" Rdoc CSS
3
- * $Id: rdoc.css 54 2009-01-27 01:09:48Z deveiant $
4
- *
5
- * Author: Michael Granger <ged@FaerieMUD.org>
6
- *
7
- */
8
-
9
- /* Base Green is: #6C8C22 */
10
-
11
- * { padding: 0; margin: 0; }
12
-
13
- body {
14
- background: #efefef;
15
- font: 14px "Helvetica Neue", Helvetica, Tahoma, sans-serif;
16
- margin-left: 40px;
17
- }
18
- body.file-popup {
19
- font-size: 90%;
20
- margin-left: 0;
21
- }
22
-
23
- h1 {
24
- font-size: 300%;
25
- text-shadow: rgba(135,145,135,0.65) 2px 2px 3px;
26
- color: #6C8C22;
27
- }
28
- h2,h3,h4 { margin-top: 1.5em; }
29
-
30
- :link,
31
- :visited {
32
- color: #6C8C22;
33
- text-decoration: none;
34
- }
35
- :link:hover,
36
- :visited:hover {
37
- border-bottom: 1px dotted #6C8C22;
38
- }
39
-
40
- pre {
41
- background: #ddd;
42
- padding: 0.5em 0;
43
- }
44
-
45
- /* @group Generic Classes */
46
-
47
- .initially-hidden {
48
- display: none;
49
- }
50
-
51
- #search-field {
52
- width: 98%;
53
- background: #eee;
54
- border: none;
55
- height: 1.5em;
56
- -webkit-border-radius: 4px;
57
- }
58
- #search-field:focus {
59
- background: #f1edba;
60
- }
61
- #search-field:-moz-placeholder,
62
- #search-field::-webkit-input-placeholder {
63
- font-weight: bold;
64
- color: #666;
65
- }
66
-
67
- .missing-docs {
68
- font-size: 120%;
69
- background: white url(images/wrench_orange.png) no-repeat 4px center;
70
- color: #ccc;
71
- line-height: 2em;
72
- border: 1px solid #d00;
73
- opacity: 1;
74
- padding-left: 20px;
75
- text-indent: 24px;
76
- letter-spacing: 3px;
77
- font-weight: bold;
78
- -webkit-border-radius: 5px;
79
- -moz-border-radius: 5px;
80
- }
81
-
82
- .target-section {
83
- border: 2px solid #dcce90;
84
- border-left-width: 8px;
85
- padding: 0 1em;
86
- background: #fff3c2;
87
- }
88
-
89
- /* @end */
90
-
91
- /* @group Index Page, Standalone file pages */
92
- .indexpage ul {
93
- line-height: 160%;
94
- list-style: none;
95
- }
96
- .indexpage ul :link,
97
- .indexpage ul :visited {
98
- font-size: 16px;
99
- }
100
-
101
- .indexpage li {
102
- padding-left: 20px;
103
- }
104
-
105
- .indexpage ul > li {
106
- background: url(images/bullet_black.png) no-repeat left 4px;
107
- }
108
- .indexpage li.method {
109
- background: url(images/plugin.png) no-repeat left 4px;
110
- }
111
- .indexpage li.module {
112
- background: url(images/package.png) no-repeat left 4px;
113
- }
114
- .indexpage li.class {
115
- background: url(images/ruby.png) no-repeat left 4px;
116
- }
117
- .indexpage li.file {
118
- background: url(images/page_white_text.png) no-repeat left 4px;
119
- }
120
- .indexpage li li {
121
- background: url(images/tag_blue.png) no-repeat left 4px;
122
- }
123
- .indexpage li .toc-toggle {
124
- width: 16px;
125
- height: 16px;
126
- background: url(images/add.png) no-repeat;
127
- }
128
-
129
- .indexpage li .toc-toggle.open {
130
- background: url(images/delete.png) no-repeat;
131
- }
132
-
133
- /* @end */
134
-
135
- /* @group Top-Level Structure */
136
-
137
- #metadata {
138
- float: left;
139
- width: 260px;
140
- }
141
-
142
- #documentation {
143
- margin: 2em 1em 5em 300px;
144
- min-width: 340px;
145
- }
146
-
147
- #validator-badges {
148
- clear: both;
149
- margin: 1em 1em 2em;
150
- font-size: smaller;
151
- }
152
-
153
- /* @end */
154
-
155
- /* @group Metadata Section */
156
- #metadata .section {
157
- background-color: #dedede;
158
- -moz-border-radius: 5px;
159
- -webkit-border-radius: 5px;
160
- border: 1px solid #aaa;
161
- margin: 0 8px 8px;
162
- font-size: 90%;
163
- overflow: hidden;
164
- }
165
- #metadata h3.section-header {
166
- margin: 0;
167
- padding: 2px 8px;
168
- background: #ccc;
169
- color: #666;
170
- -moz-border-radius-topleft: 4px;
171
- -moz-border-radius-topright: 4px;
172
- -webkit-border-top-left-radius: 4px;
173
- -webkit-border-top-right-radius: 4px;
174
- border-bottom: 1px solid #aaa;
175
- }
176
- #metadata #home-section h3.section-header {
177
- border-bottom: 0;
178
- }
179
-
180
- #metadata ul,
181
- #metadata dl,
182
- #metadata p {
183
- padding: 8px;
184
- list-style: none;
185
- }
186
-
187
- #file-metadata {
188
- margin-top: 2em;
189
- }
190
-
191
- #file-metadata ul {
192
- padding-left: 28px;
193
- list-style-image: url(images/page_green.png);
194
- }
195
-
196
- dl.svninfo {
197
- color: #666;
198
- margin: 0;
199
- }
200
- dl.svninfo dt {
201
- font-weight: bold;
202
- }
203
-
204
- ul.link-list li {
205
- white-space: nowrap;
206
- }
207
- ul.link-list .type {
208
- font-size: 8px;
209
- text-transform: uppercase;
210
- color: white;
211
- background: #969696;
212
- padding: 2px 4px;
213
- -webkit-border-radius: 5px;
214
- }
215
-
216
- /* @end */
217
-
218
- /* @group Class Metadata Section */
219
- #class-metadata {
220
- margin-top: 2em;
221
- }
222
- /* @end */
223
-
224
- /* @group Project Metadata Section */
225
- #project-metadata {
226
- margin-top: 2em;
227
- }
228
-
229
- #project-metadata .section {
230
- border: 1px solid #aaa;
231
- }
232
- #project-metadata h3.section-header {
233
- border-bottom: 1px solid #aaa;
234
- position: relative;
235
- }
236
-
237
- #project-metadata form {
238
- color: #777;
239
- background: #ccc;
240
- }
241
-
242
- /* @end */
243
-
244
- /* @group Documentation Section */
245
- .description {
246
- font-size: 100%;
247
- color: #333;
248
- }
249
-
250
- .description p {
251
- margin: 1em 0.4em;
252
- }
253
-
254
- .description li p {
255
- margin: 0;
256
- }
257
-
258
- .description ol,
259
- .description ul {
260
- margin-left: 1.5em;
261
- }
262
- .description ol li,
263
- .description ul li {
264
- line-height: 1.4em;
265
- }
266
-
267
- .note-list {
268
- margin: 8px 0;
269
- }
270
-
271
- .label-list {
272
- margin: 8px 1.5em;
273
- border: 1px solid #ccc;
274
- }
275
- .description .label-list {
276
- font-size: 14px;
277
- }
278
-
279
- .note-list dt {
280
- font-weight: bold;
281
- }
282
- .note-list dd {
283
- padding: 0 12px;
284
- }
285
-
286
- .label-list dt {
287
- padding: 2px 4px;
288
- font-weight: bold;
289
- background: #ddd;
290
- }
291
- .label-list dd {
292
- padding: 2px 12px;
293
- }
294
- .label-list dd + dt,
295
- .note-list dd + dt {
296
- margin-top: 0.7em;
297
- }
298
-
299
- #documentation .section {
300
- font-size: 90%;
301
- }
302
-
303
- #documentation h2.section-header {
304
- margin-top: 1em;
305
- padding: 0.25em 0.5em;
306
- background: #ccc;
307
- color: #333;
308
- font-size: 175%;
309
- border: 1px solid #bbb;
310
- -moz-border-radius: 3px;
311
- -webkit-border-radius: 3px;
312
- }
313
-
314
- .documentation-section-title {
315
- position: relative;
316
- }
317
- .documentation-section-title .section-click-top {
318
- position: absolute;
319
- top: 6px;
320
- right: 12px;
321
- font-size: 10px;
322
- color: #9b9877;
323
- visibility: hidden;
324
- padding-right: 0.5px;
325
- }
326
-
327
- .documentation-section-title:hover .section-click-top {
328
- visibility: visible;
329
- }
330
-
331
- #documentation h3.section-header {
332
- margin-top: 1em;
333
- padding: 0.25em 0.5em;
334
- background-color: #dedede;
335
- color: #333;
336
- font-size: 150%;
337
- border: 1px solid #bbb;
338
- -moz-border-radius: 3px;
339
- -webkit-border-radius: 3px;
340
- }
341
-
342
- #constants-list > dl,
343
- #attributes-list > dl {
344
- margin: 1em 0 2em;
345
- border: 0;
346
- }
347
- #constants-list > dl dt,
348
- #attributes-list > dl dt {
349
- padding-left: 0;
350
- font-weight: bold;
351
- font-family: Monaco, "Andale Mono";
352
- background: inherit;
353
- }
354
- #constants-list > dl dt a,
355
- #attributes-list > dl dt a {
356
- color: inherit;
357
- }
358
- #constants-list > dl dd,
359
- #attributes-list > dl dd {
360
- margin: 0 0 1em 0;
361
- padding: 0;
362
- color: #666;
363
- }
364
-
365
- .documentation-section h2 {
366
- position: relative;
367
- }
368
-
369
- .documentation-section h2 a {
370
- position: absolute;
371
- top: 8px;
372
- right: 10px;
373
- font-size: 12px;
374
- color: #9b9877;
375
- visibility: hidden;
376
- }
377
-
378
- .documentation-section h2:hover a {
379
- visibility: visible;
380
- }
381
-
382
- /* @group Method Details */
383
-
384
- #documentation .method-source-code {
385
- display: none;
386
- }
387
-
388
- #documentation .method-detail {
389
- margin: 0.5em 0;
390
- padding: 0.5em 0;
391
- cursor: pointer;
392
- }
393
- #documentation .method-detail:hover {
394
- background-color: #f1edba;
395
- }
396
- #documentation .method-heading {
397
- position: relative;
398
- padding: 2px 4px 0 20px;
399
- font-size: 125%;
400
- font-weight: bold;
401
- color: #333;
402
- background: url(images/brick.png) no-repeat left bottom;
403
- }
404
- #documentation .method-heading :link,
405
- #documentation .method-heading :visited {
406
- color: inherit;
407
- }
408
- #documentation .method-click-advice {
409
- position: absolute;
410
- top: 2px;
411
- right: 5px;
412
- font-size: 10px;
413
- color: #9b9877;
414
- visibility: hidden;
415
- padding-right: 20px;
416
- line-height: 20px;
417
- background: url(images/zoom.png) no-repeat right top;
418
- }
419
- #documentation .method-heading:hover .method-click-advice {
420
- visibility: visible;
421
- }
422
-
423
- #documentation .method-alias .method-heading {
424
- color: #666;
425
- background: url(images/brick_link.png) no-repeat left bottom;
426
- }
427
-
428
- #documentation .method-description,
429
- #documentation .aliases {
430
- margin: 0 20px;
431
- color: #666;
432
- }
433
-
434
- #documentation .method-description p,
435
- #documentation .aliases p {
436
- line-height: 1.2em;
437
- }
438
-
439
- #documentation .aliases {
440
- padding-top: 4px;
441
- font-style: italic;
442
- cursor: default;
443
- }
444
- #documentation .method-description p {
445
- margin-bottom: 0.5em;
446
- }
447
- #documentation .method-description ul {
448
- margin-left: 1.5em;
449
- }
450
- pre {
451
- margin: 0.5em 0;
452
- }
453
-
454
- #documentation .attribute-method-heading {
455
- background: url(images/tag_green.png) no-repeat left bottom;
456
- }
457
- #documentation #attribute-method-details .method-detail:hover {
458
- background-color: transparent;
459
- cursor: default;
460
- }
461
- #documentation .attribute-access-type {
462
- font-size: 60%;
463
- text-transform: uppercase;
464
- vertical-align: super;
465
- padding: 0 2px;
466
- }
467
- /* @end */
468
-
469
- /* @end */
470
-
471
- /* @group Source Code */
472
-
473
- pre {
474
- overflow: auto;
475
- background: #262626;
476
- color: white;
477
- border: 1px dashed #999;
478
- padding: 0.5em;
479
- }
480
-
481
- .description pre {
482
- margin: 0 0.4em;
483
- }
484
-
485
- .ruby-constant { color: #7fffd4; background: transparent; }
486
- .ruby-keyword { color: #00ffff; background: transparent; }
487
- .ruby-ivar { color: #eedd82; background: transparent; }
488
- .ruby-operator { color: #00ffee; background: transparent; }
489
- .ruby-identifier { color: #ffdead; background: transparent; }
490
- .ruby-node { color: #ffa07a; background: transparent; }
491
- .ruby-comment { color: #dc0000; font-weight: bold; background: transparent; }
492
- .ruby-regexp { color: #ffa07a; background: transparent; }
493
- .ruby-value { color: #7fffd4; background: transparent; }
494
-
495
- /* @end */
496
-
497
-
498
- /* @group search results */
499
- #search-results h1 {
500
- font-size: 1em;
501
- font-weight: normal;
502
- text-shadow: none;
503
- }
504
-
505
- #search-results .current {
506
- background: #ccc;
507
- border-bottom: 1px solid transparent;
508
- }
509
-
510
- #search-results li {
511
- list-style: none;
512
- border-bottom: 1px solid #aaa;
513
- -moz-border-radius: 4px;
514
- -webkit-border-radius: 4px;
515
- border-radius: 4px;
516
- margin-bottom: 0.5em;
517
- }
518
-
519
- #search-results li:last-child {
520
- border-bottom: none;
521
- margin-bottom: 0;
522
- }
523
-
524
- #search-results li p {
525
- padding: 0;
526
- margin: 0.5em;
527
- }
528
-
529
- #search-results .search-namespace {
530
- font-weight: bold;
531
- }
532
-
533
- #search-results li em {
534
- background: yellow;
535
- font-style: normal;
536
- }
537
-
538
- #search-results pre {
539
- margin: 0.5em;
540
- }
541
-
542
- /* @end */
543
-