youtube_search 0.1.4 → 0.1.5

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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- youtube_search (0.1.4)
4
+ youtube_search (0.1.5)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
data/Readme.md CHANGED
@@ -21,6 +21,7 @@ Usage
21
21
  "video_id"=>"0b2U5r7Jwkc",
22
22
  "content"=>"Top YouTube Videos on ...",
23
23
  "updated"=>"2011-10-13T20:20:54.000Z",
24
+ "raw" => <REXML::Element ... >,
24
25
  ...
25
26
  }
26
27
 
@@ -44,7 +45,7 @@ and [standard youtube options](http://code.google.com/apis/youtube/2.0/developer
44
45
 
45
46
  TODO
46
47
  ====
47
- - more detailed xml parsing (atm only name and value is read)
48
+ - more detailed xml parsing (you can fetch everything via 'raw', but more defaults would be nice)
48
49
  - parse dates into ruby objects
49
50
 
50
51
 
@@ -53,6 +54,7 @@ Author
53
54
 
54
55
  ### [Contributors](http://github.com/grosser/youtube_search/contributors)
55
56
  - [David Gil](https://qoolife.com)
57
+ - [Jim Jones](https://github.com/aantix)
56
58
 
57
59
  [Michael Grosser](http://grosser.it)<br/>
58
60
  michael@grosser.it<br/>
@@ -25,7 +25,10 @@ module YoutubeSearch
25
25
  entry['id'].split('/').last
26
26
  end
27
27
 
28
- entry['duration'] = element.elements['*/yt:duration'].attributes['seconds'] unless element.elements['*/yt:duration'].nil?
28
+ duration = element.elements['*/yt:duration']
29
+ entry['duration'] = duration.attributes['seconds'] if duration
30
+
31
+ entry['raw'] = element
29
32
 
30
33
  entry
31
34
  end
@@ -1,3 +1,3 @@
1
1
  module YoutubeSearch
2
- VERSION = '0.1.4'
2
+ VERSION = '0.1.5'
3
3
  end
@@ -8,43 +8,27 @@ describe YoutubeSearch do
8
8
  describe 'parse' do
9
9
  it "can parse xml from a search" do
10
10
  # convert to array so we get a nice diff in case of errors
11
- YoutubeSearch.parse(File.read('spec/fixtures/search_boat.xml')).first.sort.should == [
12
- ["author",nil],
13
- ["category", nil],
14
- ["comments",nil],
15
- ["content","Top YouTube Videos on tubecrunch.blogspot.com A killer whale swims right up to a boat and shows off his best sounding motor impression."],
16
- ["duration", "75"],
17
- ["group", nil],
18
- ["id","http://gdata.youtube.com/feeds/api/videos/0b2U5r7Jwkc"],
19
- ["link",nil],
20
- ["published","2011-09-29T15:30:43.000Z"],
21
- ["rating", nil],
22
- ["statistics",nil],
23
- ["title","Killer Whale Imitates Boat Motor"],
24
- ["updated","2011-10-14T07:40:00.000Z"],
25
- ["video_id", "0b2U5r7Jwkc"],
26
- ]
11
+ video = YoutubeSearch.parse(File.read('spec/fixtures/search_boat.xml')).first
12
+ video["content"].should == "Top YouTube Videos on tubecrunch.blogspot.com A killer whale swims right up to a boat and shows off his best sounding motor impression."
13
+ video["duration"].should == "75"
14
+ video["id"].should == "http://gdata.youtube.com/feeds/api/videos/0b2U5r7Jwkc"
15
+ video["published"].should == "2011-09-29T15:30:43.000Z"
16
+ video["title"].should == "Killer Whale Imitates Boat Motor"
17
+ video["updated"].should == "2011-10-14T07:40:00.000Z"
18
+ video["video_id"].should == "0b2U5r7Jwkc"
19
+ video["raw"].elements.should_not == nil
27
20
  end
28
21
 
29
22
  it "can parse xml from a playlist" do
30
- YoutubeSearch.parse(File.read('spec/fixtures/playlist_5F23DAF4BFE3D14C.xml'), :type => :playlist).first.sort.should == [
31
- ["accessControl",nil],
32
- ["author",nil],
33
- ["category", nil],
34
- ["comments",nil],
35
- ["duration", "192"],
36
- ["group", nil],
37
- ["id","tag:youtube.com,2008:playlist:5F23DAF4BFE3D14C:kRk0fUfl9UJvHjGFHgPSakUFmztBgGKG"],
38
- ["link",nil],
39
- ["position","1"],
40
- ["rating", nil],
41
- ["recorded", "2010-01-08"],
42
- ["statistics",nil],
43
- ["title","Osteopatia y terapias manuales"],
44
- ["updated","2011-12-07T01:46:21.650Z"],
45
- ["video_id", "5wU-yHnq7Hs"],
46
- ["where", nil]
47
- ]
23
+ video = YoutubeSearch.parse(File.read('spec/fixtures/playlist_5F23DAF4BFE3D14C.xml'), :type => :playlist).first
24
+ video["duration"].should == "192"
25
+ video["id"].should == "tag:youtube.com,2008:playlist:5F23DAF4BFE3D14C:kRk0fUfl9UJvHjGFHgPSakUFmztBgGKG"
26
+ video["position"].should == "1"
27
+ video["recorded"].should == "2010-01-08"
28
+ video["title"].should == "Osteopatia y terapias manuales"
29
+ video["updated"].should == "2011-12-07T01:46:21.650Z"
30
+ video["video_id"].should == "5wU-yHnq7Hs"
31
+ video["raw"].elements.should_not == nil
48
32
  end
49
33
  end
50
34
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: youtube_search
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-19 00:00:00.000000000 Z
12
+ date: 2011-12-20 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description:
15
15
  email: michael@grosser.it
@@ -43,7 +43,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
43
43
  version: '0'
44
44
  segments:
45
45
  - 0
46
- hash: 241123375
46
+ hash: 870410863
47
47
  required_rubygems_version: !ruby/object:Gem::Requirement
48
48
  none: false
49
49
  requirements:
@@ -52,7 +52,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
52
52
  version: '0'
53
53
  segments:
54
54
  - 0
55
- hash: 241123375
55
+ hash: 870410863
56
56
  requirements: []
57
57
  rubyforge_project:
58
58
  rubygems_version: 1.8.10