memo_rage 0.0.3 → 0.0.4

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.
@@ -0,0 +1,10 @@
1
+ module MemoRage
2
+ class Info < Node
3
+ attr_reader :image
4
+ attr_reader :runtime
5
+ attr_reader :network
6
+ attr_reader :airtime
7
+ attr_reader :airday
8
+ attr_reader :timezone
9
+ end
10
+ end
@@ -14,10 +14,6 @@ module MemoRage
14
14
  text.text
15
15
  end
16
16
  end
17
-
18
- def parse_value(element, key)
19
- element.elements.map { |e| e.has_name?(key) }.include?(true) ? element.elements[key].text : ""
20
- end
21
17
  end
22
18
  end
23
19
  end
@@ -0,0 +1,19 @@
1
+ module MemoRage
2
+ module Parser
3
+ class Entry
4
+ def initialize(entry)
5
+ @entry = entry
6
+ end
7
+
8
+ def method_missing(sym, *args)
9
+ @entry.elements.map { |e| e.has_name?(sym.to_s) }.include?(true) ? @entry.elements[sym.to_s].text : ""
10
+ end
11
+
12
+ def to_array(name)
13
+ @entry.elements[name.to_s].elements.collect do |text|
14
+ text.text
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -12,26 +12,27 @@ module MemoRage
12
12
 
13
13
  def parse_entry(entry)
14
14
  episodes = []
15
- season_number = 0
16
15
  entry.elements["Episodelist"].elements.each("Season") do |season|
17
- season_number += 1
18
16
  season.elements.each("episode") do |episode|
17
+ episode = MemoRage::Parser::Entry.new(episode)
19
18
  episodes << MemoRage::Episode.new(
20
- :num => parse_value(episode, "epnum"),
21
- :season => season_number,
22
- :season_num => parse_value(episode, "seasonnum"),
23
- :prod_num => parse_value(episode, "prodnum"),
24
- :airdate => parse_value(episode,"airdate"),
25
- :link => parse_value(episode,"link"),
26
- :title => parse_value(episode,"title"),
27
- :rating => parse_value(episode,"rating"),
28
- :image => parse_value(episode,"screencap")
19
+ :num => episode.epnum,
20
+ :season => season.attributes["no"].to_i,
21
+ :season_num => episode.seasonnum,
22
+ :prod_num => episode.prodnum,
23
+ :airdate => episode.airdate,
24
+ :link => episode.link,
25
+ :title => episode.title,
26
+ :rating => episode.rating,
27
+ :image => episode.screencap
29
28
  )
30
29
  end
31
30
  end
31
+
32
+ entry = MemoRage::Parser::Entry.new(entry)
32
33
  MemoRage::Show.new(
33
- :name => parse_value(entry, "name"),
34
- :seasons => parse_value(entry, "totalseasons").to_i,
34
+ :name => entry.name,
35
+ :seasons => entry.totalseasons.to_i,
35
36
  :episodes => episodes
36
37
  )
37
38
  end
@@ -11,22 +11,23 @@ module MemoRage
11
11
  end
12
12
 
13
13
  def parse_entry(entry)
14
+ entry = MemoRage::Parser::Entry.new(entry)
14
15
  MemoRage::Show.new(
15
- :id => parse_value(entry, "showid").to_i,
16
- :name => parse_value(entry, "showname"),
17
- :link => parse_value(entry, "showlink"),
18
- :seasons => parse_value(entry, "seasons").to_i,
19
- :image => parse_value(entry, "image"),
20
- :started => parse_value(entry, "started"),
21
- :ended => parse_value(entry, "ended"),
22
- :origin_country => parse_value(entry, "origin_country"),
23
- :status => parse_value(entry, "status"),
24
- :classification => parse_value(entry, "classification"),
25
- :genres => form_array(entry.elements["genres"]),
26
- :runtime => parse_value(entry, "runtime").to_i,
27
- :airtime => parse_value(entry, "airtime"),
28
- :airday => parse_value(entry, "airday"),
29
- :timezone => parse_value(entry, "timezone")
16
+ :id => entry.showid.to_i,
17
+ :name => entry.showname,
18
+ :link => entry.showlink,
19
+ :seasons => entry.seasons.to_i,
20
+ :image => entry.image,
21
+ :started => entry.started,
22
+ :ended => entry.ended,
23
+ :origin_country => entry.origin_country,
24
+ :status => entry.status,
25
+ :classification => entry.classification,
26
+ :genres => entry.to_array(:genres),
27
+ :runtime => entry.runtime.to_i,
28
+ :airtime => entry.airtime,
29
+ :airday => entry.airday,
30
+ :timezone => entry.timezone
30
31
  )
31
32
  end
32
33
 
@@ -16,9 +16,10 @@ module MemoRage
16
16
  end
17
17
 
18
18
  def parse_entry(entry)
19
+ entry = MemoRage::Parser::Entry.new(entry)
19
20
  MemoRage::Show.new(
20
- :id => parse_value(entry , "showid").to_i,
21
- :name => parse_value(entry , "name")
21
+ :id => entry.showid.to_i,
22
+ :name => entry.name
22
23
  )
23
24
  end
24
25
  end
@@ -1,4 +1,5 @@
1
1
  require "memo_rage/parser/base"
2
+ require "memo_rage/parser/entry"
2
3
  require "memo_rage/parser/show_search"
3
4
  require "memo_rage/parser/show_info"
4
5
  require "memo_rage/parser/episode_list"
@@ -1,3 +1,3 @@
1
1
  module MemoRage
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -8,6 +8,7 @@ describe MemoRage::Parser::EpisodeList do
8
8
  list = client.episode_list("2930")
9
9
  list.name.should == "Buffy the Vampire Slayer"
10
10
  list.seasons.should == 7
11
+ list.episodes.last.season.should == 7
11
12
  end
12
13
  end
13
14
  end
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,6 @@
1
1
  $LOAD_PATH.unshift(File.dirname(__FILE__))
2
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
3
 
4
-
5
4
  require 'rspec'
6
5
  require 'timecop'
7
6
  require 'memo_rage'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: memo_rage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,12 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-03-12 00:00:00.000000000Z
13
+ date: 2012-03-13 00:00:00.000000000 +02:00
14
+ default_executable:
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: httpclient
17
- requirement: !ruby/object:Gem::Requirement
18
+ requirement: &21924140 !ruby/object:Gem::Requirement
18
19
  none: false
19
20
  requirements:
20
21
  - - ! '>='
@@ -22,15 +23,10 @@ dependencies:
22
23
  version: 2.2.0.2
23
24
  type: :runtime
24
25
  prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
- requirements:
28
- - - ! '>='
29
- - !ruby/object:Gem::Version
30
- version: 2.2.0.2
26
+ version_requirements: *21924140
31
27
  - !ruby/object:Gem::Dependency
32
28
  name: hashie
33
- requirement: !ruby/object:Gem::Requirement
29
+ requirement: &21923640 !ruby/object:Gem::Requirement
34
30
  none: false
35
31
  requirements:
36
32
  - - ! '>='
@@ -38,15 +34,10 @@ dependencies:
38
34
  version: 1.1.0
39
35
  type: :runtime
40
36
  prerelease: false
41
- version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ! '>='
45
- - !ruby/object:Gem::Version
46
- version: 1.1.0
37
+ version_requirements: *21923640
47
38
  - !ruby/object:Gem::Dependency
48
39
  name: rake
49
- requirement: !ruby/object:Gem::Requirement
40
+ requirement: &21923180 !ruby/object:Gem::Requirement
50
41
  none: false
51
42
  requirements:
52
43
  - - ! '>='
@@ -54,15 +45,10 @@ dependencies:
54
45
  version: 0.8.7
55
46
  type: :development
56
47
  prerelease: false
57
- version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
- requirements:
60
- - - ! '>='
61
- - !ruby/object:Gem::Version
62
- version: 0.8.7
48
+ version_requirements: *21923180
63
49
  - !ruby/object:Gem::Dependency
64
50
  name: rspec
65
- requirement: !ruby/object:Gem::Requirement
51
+ requirement: &21922720 !ruby/object:Gem::Requirement
66
52
  none: false
67
53
  requirements:
68
54
  - - ! '>='
@@ -70,15 +56,10 @@ dependencies:
70
56
  version: '2'
71
57
  type: :development
72
58
  prerelease: false
73
- version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
- requirements:
76
- - - ! '>='
77
- - !ruby/object:Gem::Version
78
- version: '2'
59
+ version_requirements: *21922720
79
60
  - !ruby/object:Gem::Dependency
80
61
  name: webmock
81
- requirement: !ruby/object:Gem::Requirement
62
+ requirement: &21922260 !ruby/object:Gem::Requirement
82
63
  none: false
83
64
  requirements:
84
65
  - - ! '>='
@@ -86,15 +67,10 @@ dependencies:
86
67
  version: 1.6.2
87
68
  type: :development
88
69
  prerelease: false
89
- version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
- requirements:
92
- - - ! '>='
93
- - !ruby/object:Gem::Version
94
- version: 1.6.2
70
+ version_requirements: *21922260
95
71
  - !ruby/object:Gem::Dependency
96
72
  name: timecop
97
- requirement: !ruby/object:Gem::Requirement
73
+ requirement: &21921800 !ruby/object:Gem::Requirement
98
74
  none: false
99
75
  requirements:
100
76
  - - ! '>='
@@ -102,12 +78,7 @@ dependencies:
102
78
  version: 0.3.5
103
79
  type: :development
104
80
  prerelease: false
105
- version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
- requirements:
108
- - - ! '>='
109
- - !ruby/object:Gem::Version
110
- version: 0.3.5
81
+ version_requirements: *21921800
111
82
  description: Find more information at https://github.com/appsbakery/memo_rage
112
83
  email:
113
84
  - aganov@gmail.com
@@ -124,9 +95,11 @@ files:
124
95
  - lib/memo_rage.rb
125
96
  - lib/memo_rage/client.rb
126
97
  - lib/memo_rage/episode.rb
98
+ - lib/memo_rage/info.rb
127
99
  - lib/memo_rage/node.rb
128
100
  - lib/memo_rage/parser.rb
129
101
  - lib/memo_rage/parser/base.rb
102
+ - lib/memo_rage/parser/entry.rb
130
103
  - lib/memo_rage/parser/episode_list.rb
131
104
  - lib/memo_rage/parser/show_info.rb
132
105
  - lib/memo_rage/parser/show_search.rb
@@ -142,6 +115,7 @@ files:
142
115
  - spec/mock_xml/show_info.xml
143
116
  - spec/mock_xml/show_search.xml
144
117
  - spec/spec_helper.rb
118
+ has_rdoc: true
145
119
  homepage: ''
146
120
  licenses: []
147
121
  post_install_message:
@@ -162,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
162
136
  version: '0'
163
137
  requirements: []
164
138
  rubyforge_project: memo_rage
165
- rubygems_version: 1.8.18
139
+ rubygems_version: 1.6.2
166
140
  signing_key:
167
141
  specification_version: 3
168
142
  summary: Memo rage is an api wrapper for the http://services.tvrage.com/ The gem is