memo_rage 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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