howcast 0.4.1 → 0.4.3
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +8 -0
- data/Manifest.txt +1 -1
- data/README.markdown +46 -0
- data/config/hoe.rb +1 -1
- data/lib/howcast/client/video.rb +1 -1
- data/lib/howcast/version.rb +1 -1
- data/spec/howcast/client/video_spec.rb +4 -0
- data/spec/spec_helper.rb +3 -0
- data/website/index.html +30 -46
- data/website/index.txt +14 -2
- metadata +5 -6
- data/README.txt +0 -30
data/History.txt
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
== 0.4.3 2009-03-02
|
2
|
+
|
3
|
+
* Compatibility with ruby 1.9 - replacing dependency on hpricot with why-hpricot as github as the ruby 1.9 hpricot gem
|
4
|
+
|
5
|
+
== 0.4.2 2009-02-04
|
6
|
+
|
7
|
+
* Adding embed code to video object
|
8
|
+
|
1
9
|
== 0.4.1 2008-11-05
|
2
10
|
|
3
11
|
* Support for finding a category ancestor trail from a category object
|
data/Manifest.txt
CHANGED
data/README.markdown
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
# Howcast API Ruby Wrapper
|
2
|
+
|
3
|
+
Copyright (c) 2008 Howcast Media Inc.
|
4
|
+
|
5
|
+
Author: Michael Murray <michael@howcast.com>
|
6
|
+
|
7
|
+
## Installing
|
8
|
+
|
9
|
+
sudo gem install howcast
|
10
|
+
|
11
|
+
## Example
|
12
|
+
|
13
|
+
require 'rubygems'
|
14
|
+
require 'howcast'
|
15
|
+
|
16
|
+
hc = Howcast::Client.new(:key => "INSERT API KEY HERE")
|
17
|
+
# Will print out the video titles of the first page of recent howcast studios videos
|
18
|
+
puts "Recent Howcast Studios Videos"
|
19
|
+
hc.videos.each do |v|
|
20
|
+
puts v.title
|
21
|
+
end
|
22
|
+
|
23
|
+
puts "2nd Page of Recent Featured Videos"
|
24
|
+
# Will print out the video titles of the 2nd page of recent featured videos
|
25
|
+
hc.videos(:page => 2, :sort => "most_recent", :filter => "featured").each do |v|
|
26
|
+
puts v.title
|
27
|
+
end
|
28
|
+
|
29
|
+
puts "Videos matching 'origami'"
|
30
|
+
hc.video_search("origami").each do |v|
|
31
|
+
puts v.title
|
32
|
+
end
|
33
|
+
|
34
|
+
puts "Video with id 946"
|
35
|
+
puts hc.video(946).title
|
36
|
+
|
37
|
+
# Category API
|
38
|
+
piano = hc.category(1105)
|
39
|
+
puts "The parent category of Piano is #{hc.category(piano.parent_id).name}"
|
40
|
+
|
41
|
+
ancestors = piano.parents.map{|c| c[:name]}
|
42
|
+
# Ancestors will be an array of hash metadata:
|
43
|
+
# => [{:name=>"Performing Arts", :id=>"1048"},
|
44
|
+
# {:name=>"Musical Instruments", :id=>"1095"},
|
45
|
+
# {:name=>"Keyboards", :id=>"1103"}]
|
46
|
+
puts "The ancestors of piano are: #{ancestors.join(" -> ")}"
|
data/config/hoe.rb
CHANGED
@@ -58,7 +58,7 @@ hoe = Hoe.new(GEM_NAME, VERS) do |p|
|
|
58
58
|
|
59
59
|
# == Optional
|
60
60
|
p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
|
61
|
-
p.extra_deps = [['hpricot', '>= 0.6']] # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ]
|
61
|
+
p.extra_deps = [['why-hpricot', '>= 0.6']] # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ]
|
62
62
|
|
63
63
|
# p.spec_extras = {} # A hash of extra values to set in the gemspec.
|
64
64
|
|
data/lib/howcast/client/video.rb
CHANGED
@@ -38,7 +38,7 @@ class Howcast::Client
|
|
38
38
|
extend WatchAttrAccessors
|
39
39
|
attr_accessor :id, :title, :permalink, :thumbnail_url, :category_id,
|
40
40
|
:views, :username, :duration, :created_at, :rating, :description, :width, :height,
|
41
|
-
:badges, :easy_steps
|
41
|
+
:badges, :easy_steps, :embed
|
42
42
|
# Creates a new Video object which is used to encapsulate all the attributes available
|
43
43
|
# from the Howcast Video API
|
44
44
|
#
|
data/lib/howcast/version.rb
CHANGED
@@ -36,6 +36,10 @@ describe Howcast::Client, "video" do
|
|
36
36
|
@hc.video(2).should be_nil
|
37
37
|
end
|
38
38
|
|
39
|
+
it "should set the embed attribute in the video model response" do
|
40
|
+
@hc.video(2).embed.should == %(<object width="425" height="352" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="howcastplayer"><param name="movie" value="http://www.howcast.com/flash/howcast_player.swf?file=233"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.howcast.com/flash/howcast_player.swf?file=233" type="application/x-shockwave-flash" width="425" height="352" allowFullScreen="true" allowScriptAccess="always" ></embed></object>)
|
41
|
+
end
|
42
|
+
|
39
43
|
it "should set the title attribute in the video model response" do
|
40
44
|
@hc.video(2).title.should == "How To Do a Noble Pose"
|
41
45
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -94,6 +94,9 @@ Spec::Runner.configure do |config|
|
|
94
94
|
<easy-steps>true</easy-steps>
|
95
95
|
<badges>Howcast Studios</badges>
|
96
96
|
<title>How To Do a Noble Pose</title>
|
97
|
+
<embed>
|
98
|
+
<![CDATA[<object width="425" height="352" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="howcastplayer"><param name="movie" value="http://www.howcast.com/flash/howcast_player.swf?file=233"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.howcast.com/flash/howcast_player.swf?file=233" type="application/x-shockwave-flash" width="425" height="352" allowFullScreen="true" allowScriptAccess="always" ></embed></object>]]>
|
99
|
+
</embed>
|
97
100
|
<description>
|
98
101
|
<![CDATA[You recognize the Noble Pose as the dreaded "sit-and-reach" from your childhood gym class. A sample <a href="howcast.com">link</a>]]>
|
99
102
|
</description>
|
data/website/index.html
CHANGED
@@ -33,30 +33,16 @@
|
|
33
33
|
<h1></h1>
|
34
34
|
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/howcast"; return false'>
|
35
35
|
<p>Get Version</p>
|
36
|
-
<a href="http://rubyforge.org/projects/howcast" class="numbers">0.4.
|
36
|
+
<a href="http://rubyforge.org/projects/howcast" class="numbers">0.4.3</a>
|
37
37
|
</div>
|
38
38
|
<h2>Howcast <span class="caps">API</span> Rubygem</h2>
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
<h2>Installing</h2>
|
48
|
-
|
49
|
-
|
50
|
-
<p><pre class='syntax'><span class="ident">sudo</span> <span class="ident">gem</span> <span class="ident">install</span> <span class="ident">howcast</span></pre></p>
|
51
|
-
|
52
|
-
|
53
|
-
<p>After installing you will need to get an <span class="caps">API</span> Key from: <a href="http://www.howcast.com/api_keys/new">http://www.howcast.com/api_keys/new</a></p>
|
54
|
-
|
55
|
-
|
56
|
-
<h2>Demonstration of usage</h2>
|
57
|
-
|
58
|
-
|
59
|
-
<p><pre class='syntax'>
|
39
|
+
<h2>What</h2>
|
40
|
+
<p>Howcast Rubygem is a Ruby library for interacting with the <a href="http://groups.google.com/group/howcast-developers">Howcast <span class="caps">API</span></a></p>
|
41
|
+
<h2>Installing</h2>
|
42
|
+
<p><pre class='syntax'><span class="ident">sudo</span> <span class="ident">gem</span> <span class="ident">install</span> <span class="ident">howcast</span></pre></p>
|
43
|
+
<p>After installing you will need to get an <span class="caps">API</span> Key from: <a href="http://www.howcast.com/api_keys/new">http://www.howcast.com/api_keys/new</a></p>
|
44
|
+
<h2>Demonstration of usage</h2>
|
45
|
+
<p><pre class='syntax'>
|
60
46
|
<span class="ident">require</span> <span class="punct">'</span><span class="string">rubygems</span><span class="punct">'</span>
|
61
47
|
<span class="ident">require</span> <span class="punct">'</span><span class="string">howcast</span><span class="punct">'</span>
|
62
48
|
|
@@ -80,33 +66,31 @@
|
|
80
66
|
|
81
67
|
<span class="ident">puts</span> <span class="punct">"</span><span class="string">Video with id 946</span><span class="punct">"</span>
|
82
68
|
<span class="ident">puts</span> <span class="ident">hc</span><span class="punct">.</span><span class="ident">video</span><span class="punct">(</span><span class="number">946</span><span class="punct">).</span><span class="ident">title</span>
|
83
|
-
</pre></p>
|
84
69
|
|
70
|
+
<span class="comment"># Category API</span>
|
71
|
+
<span class="ident">piano</span> <span class="punct">=</span> <span class="ident">hc</span><span class="punct">.</span><span class="ident">category</span><span class="punct">(</span><span class="number">1105</span><span class="punct">)</span>
|
72
|
+
<span class="ident">puts</span> <span class="punct">"</span><span class="string">The parent category of Piano is <span class="expr">#{hc.category(piano.parent_id).name}</span></span><span class="punct">"</span>
|
85
73
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
<
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
<h2>Contact</h2>
|
105
|
-
|
106
|
-
|
107
|
-
<p>Comments are welcome. Send an email to <a href="mailto:michael@howcast.com">Michael Murray</a>.</p>
|
74
|
+
<span class="ident">ancestors</span> <span class="punct">=</span> <span class="ident">piano</span><span class="punct">.</span><span class="ident">parents</span><span class="punct">.</span><span class="ident">map</span><span class="punct">{|</span><span class="ident">c</span><span class="punct">|</span> <span class="ident">c</span><span class="punct">[</span><span class="symbol">:name</span><span class="punct">]}</span>
|
75
|
+
<span class="comment"># Ancestors will be an array of hash metadata: </span>
|
76
|
+
<span class="comment"># => [{:name=>"Performing Arts", :id=>"1048"}, </span>
|
77
|
+
<span class="comment"># {:name=>"Musical Instruments", :id=>"1095"}, </span>
|
78
|
+
<span class="comment"># {:name=>"Keyboards", :id=>"1103"}]</span>
|
79
|
+
<span class="ident">puts</span> <span class="punct">"</span><span class="string">The ancestors of piano are: <span class="expr">#{ancestors.join(" -> ")}</span></span><span class="punct">"</span>
|
80
|
+
</pre></p>
|
81
|
+
<h2>Forum, Support and Questions</h2>
|
82
|
+
<ul>
|
83
|
+
<li><a href="http://howcast.rubyforge.org/rdoc">RDoc</a></li>
|
84
|
+
<li><a href="http://groups.google.com/group/howcast-developers">http://groups.google.com/group/howcast-developers</a></li>
|
85
|
+
</ul>
|
86
|
+
<h2>How to check out the code</h2>
|
87
|
+
<p>The git repository is <code>git://github.com/howcast/howcast-gem.git</code> for anonymous access.</p>
|
88
|
+
<h2>License</h2>
|
89
|
+
<p>This code is free to use under the terms of the <span class="caps">MIT</span> license.</p>
|
90
|
+
<h2>Contact</h2>
|
91
|
+
<p>Comments are welcome. Send an email to <a href="mailto:michael@howcast.com">Michael Murray</a>.</p>
|
108
92
|
<p class="coda">
|
109
|
-
<a href="mailto:michael@howcast.com">Michael Murray</a>,
|
93
|
+
<a href="mailto:michael@howcast.com">Michael Murray</a>, 6th November 2008<br>
|
110
94
|
Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
|
111
95
|
</p>
|
112
96
|
</div>
|
data/website/index.txt
CHANGED
@@ -38,15 +38,27 @@ end
|
|
38
38
|
|
39
39
|
puts "Video with id 946"
|
40
40
|
puts hc.video(946).title
|
41
|
+
|
42
|
+
# Category API
|
43
|
+
piano = hc.category(1105)
|
44
|
+
puts "The parent category of Piano is #{hc.category(piano.parent_id).name}"
|
45
|
+
|
46
|
+
ancestors = piano.parents.map{|c| c[:name]}
|
47
|
+
# Ancestors will be an array of hash metadata:
|
48
|
+
# => [{:name=>"Performing Arts", :id=>"1048"},
|
49
|
+
# {:name=>"Musical Instruments", :id=>"1095"},
|
50
|
+
# {:name=>"Keyboards", :id=>"1103"}]
|
51
|
+
puts "The ancestors of piano are: #{ancestors.join(" -> ")}"
|
41
52
|
</pre>
|
42
53
|
|
43
54
|
h2. Forum, Support and Questions
|
44
55
|
|
45
|
-
"
|
56
|
+
* "RDoc":http://howcast.rubyforge.org/rdoc
|
57
|
+
* "http://groups.google.com/group/howcast-developers":http://groups.google.com/group/howcast-developers
|
46
58
|
|
47
59
|
h2. How to check out the code
|
48
60
|
|
49
|
-
The
|
61
|
+
The git repository is <code>git://github.com/howcast/howcast-gem.git</code> for anonymous access.
|
50
62
|
|
51
63
|
h2. License
|
52
64
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: howcast
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Murray
|
@@ -9,11 +9,11 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2009-03-02 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
name: hpricot
|
16
|
+
name: why-hpricot
|
17
17
|
type: :runtime
|
18
18
|
version_requirement:
|
19
19
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -43,13 +43,12 @@ extra_rdoc_files:
|
|
43
43
|
- History.txt
|
44
44
|
- License.txt
|
45
45
|
- Manifest.txt
|
46
|
-
- README.txt
|
47
46
|
- website/index.txt
|
48
47
|
files:
|
49
48
|
- History.txt
|
50
49
|
- License.txt
|
51
50
|
- Manifest.txt
|
52
|
-
- README.
|
51
|
+
- README.markdown
|
53
52
|
- Rakefile
|
54
53
|
- config/hoe.rb
|
55
54
|
- config/requirements.rb
|
@@ -105,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
104
|
requirements: []
|
106
105
|
|
107
106
|
rubyforge_project: howcast
|
108
|
-
rubygems_version: 1.
|
107
|
+
rubygems_version: 1.3.1
|
109
108
|
signing_key:
|
110
109
|
specification_version: 2
|
111
110
|
summary: Howcast API Ruby Wrapper
|
data/README.txt
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
Howcast API Ruby Wrapper
|
2
|
-
Copyright (c) 2008 Howcast Media Inc.
|
3
|
-
|
4
|
-
== Example
|
5
|
-
|
6
|
-
An example ruby script to get some howcast videos
|
7
|
-
|
8
|
-
require 'rubygems'
|
9
|
-
require 'howcast'
|
10
|
-
|
11
|
-
hc = Howcast::Client.new(:key => "INSERT API KEY HERE")
|
12
|
-
# Will print out the video titles of the first page of recent howcast studios videos
|
13
|
-
puts "Recent Howcast Studios Videos"
|
14
|
-
hc.videos.each do |v|
|
15
|
-
puts v.title
|
16
|
-
end
|
17
|
-
|
18
|
-
puts "2nd Page of Recent Featured Videos"
|
19
|
-
# Will print out the video titles of the 2nd page of recent featured videos
|
20
|
-
hc.videos(:page => 2, :sort => "most_recent", :filter => "featured").each do |v|
|
21
|
-
puts v.title
|
22
|
-
end
|
23
|
-
|
24
|
-
puts "Videos matching 'origami'"
|
25
|
-
hc.video_search("origami").each do |v|
|
26
|
-
puts v.title
|
27
|
-
end
|
28
|
-
|
29
|
-
puts "Video with id 946"
|
30
|
-
puts hc.video(946).title
|