goggle-box 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Readme.md +5 -5
- data/lib/goggle-box/objectify.rb +13 -1
- data/lib/goggle-box/version.rb +1 -1
- data/spec/goggle-box/tvrage/show_spec.rb +7 -7
- metadata +3 -3
data/Readme.md
CHANGED
@@ -21,13 +21,13 @@ It allows you to search and retrieve Shows and Episodes from the TVRage API. Obj
|
|
21
21
|
>> show = GoggleBox::TVRage::Show.new(shows.first.showid, :lazy => true)
|
22
22
|
|
23
23
|
- If one season only
|
24
|
-
>> show.
|
25
|
-
>> show.
|
24
|
+
>> show.episode_list.seasons => Only season or array of seasons
|
25
|
+
>> show.episode_list.seasons.episodes => Episodes in this season
|
26
26
|
|
27
27
|
- If more than one season
|
28
|
-
>> show.
|
29
|
-
>> show.
|
30
|
-
>> show.
|
28
|
+
>> show.episode_list.seasons.first => First season
|
29
|
+
>> show.episode_list.seasons.second => Second season etc
|
30
|
+
>> show.episode_list.seasons.first.episodes => Array of episodes in season etc
|
31
31
|
|
32
32
|
#### Episode Information
|
33
33
|
>> GoggleBox::TVRage::Episode.listings_by_show(show.showid)
|
data/lib/goggle-box/objectify.rb
CHANGED
@@ -1,11 +1,23 @@
|
|
1
1
|
require 'ostruct'
|
2
2
|
|
3
3
|
module Objectify
|
4
|
+
|
5
|
+
DICTIONARY = {
|
6
|
+
'season' => 'seasons',
|
7
|
+
'episodelist' => 'episode_list',
|
8
|
+
'episode' => 'episodes'
|
9
|
+
}
|
10
|
+
|
11
|
+
def swap_words(word)
|
12
|
+
return word unless DICTIONARY[word]
|
13
|
+
DICTIONARY[word]
|
14
|
+
end
|
15
|
+
|
4
16
|
def objectify(object = self)
|
5
17
|
return case object
|
6
18
|
when Hash
|
7
19
|
obj = {}
|
8
|
-
object.each { |k,v| obj[k.downcase] = objectify(v) }
|
20
|
+
object.each { |k,v| obj[swap_words(k.downcase)] = objectify(v) }
|
9
21
|
OpenStruct.new(obj)
|
10
22
|
when Array
|
11
23
|
object = object.clone
|
data/lib/goggle-box/version.rb
CHANGED
@@ -70,20 +70,20 @@ module GoggleBox::TVRage
|
|
70
70
|
end
|
71
71
|
|
72
72
|
it "Show should respond to episodelist" do
|
73
|
-
subject.
|
73
|
+
subject.episode_list.class.should be(OpenStruct)
|
74
74
|
end
|
75
75
|
|
76
76
|
describe "Shows with just one season" do
|
77
77
|
it "Episodelist should have an OpenStruct of a season if just one" do
|
78
|
-
subject.
|
78
|
+
subject.episode_list.seasons.class.should be(OpenStruct)
|
79
79
|
end
|
80
80
|
|
81
81
|
it "Season should have an array of episodes if more than one" do
|
82
|
-
subject.
|
82
|
+
subject.episode_list.seasons.episodes.class.should be(Array)
|
83
83
|
end
|
84
84
|
|
85
85
|
it "Season should more than one episode to constitute an array" do
|
86
|
-
subject.
|
86
|
+
subject.episode_list.seasons.episodes.size.should have_at_least(2).items
|
87
87
|
end
|
88
88
|
end
|
89
89
|
|
@@ -94,15 +94,15 @@ module GoggleBox::TVRage
|
|
94
94
|
end
|
95
95
|
|
96
96
|
it "Episodelist should have an Array of seasons" do
|
97
|
-
subject.
|
97
|
+
subject.episode_list.seasons.class.should be(Array)
|
98
98
|
end
|
99
99
|
|
100
100
|
it "Array of Seasons shouldn't be equal to one" do
|
101
|
-
subject.
|
101
|
+
subject.episode_list.seasons.size.should have_at_least(2).items
|
102
102
|
end
|
103
103
|
|
104
104
|
it "Episode should have an OpenStruct if only one episode" do
|
105
|
-
subject.
|
105
|
+
subject.episode_list.seasons[1].episodes.class.should be(OpenStruct)
|
106
106
|
end
|
107
107
|
|
108
108
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: goggle-box
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 1
|
10
|
+
version: 0.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Paul Ingham
|