rbvimeo 0.2.0 → 0.3.0
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/LICENSE +20 -0
- data/{README.txt → README.textile} +35 -11
- data/Rakefile +78 -16
- data/VERSION.yml +4 -0
- data/lib/rbvimeo/comment.rb +21 -0
- data/lib/{User.rb → rbvimeo/user.rb} +4 -0
- data/lib/rbvimeo/video.rb +138 -0
- data/lib/{rbVimeo.rb → rbvimeo/vimeo.rb} +12 -21
- data/lib/rbvimeo.rb +10 -0
- data/test/rbvimeo_test.rb +49 -0
- data/test/test_helper.rb +11 -0
- data/test/video_test.rb +100 -0
- metadata +31 -43
- data/History.txt +0 -7
- data/Manifest.txt +0 -28
- data/bin/rbVimeo +0 -5
- data/lib/Comment.rb +0 -14
- data/lib/Video.rb +0 -128
- data/spec/Video_spec.rb +0 -82
- data/spec/rbVimeo_spec.rb +0 -38
- data/spec/sample_test_settings.yml +0 -2
- data/spec/spec_helper.rb +0 -17
- data/tasks/ann.rake +0 -81
- data/tasks/annotations.rake +0 -22
- data/tasks/bones.rake +0 -21
- data/tasks/doc.rake +0 -48
- data/tasks/gem.rake +0 -126
- data/tasks/manifest.rake +0 -49
- data/tasks/post_load.rake +0 -39
- data/tasks/rubyforge.rake +0 -57
- data/tasks/setup.rb +0 -268
- data/tasks/spec.rake +0 -55
- data/tasks/svn.rake +0 -48
- /data/lib/{Thumbnail.rb → rbvimeo/thumbnail.rb} +0 -0
- /data/{spec → test}/XML/339189.comments.xml +0 -0
- /data/{spec → test}/XML/339189.xml +0 -0
- /data/{spec → test}/XML/not_found.xml +0 -0
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbvimeo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Pruitt
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2009-04-16 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -20,53 +20,39 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: "0"
|
23
|
+
version: "0.6"
|
24
24
|
version:
|
25
|
-
description:
|
25
|
+
description:
|
26
26
|
email: guitsaru@gmail.com
|
27
|
-
executables:
|
28
|
-
|
27
|
+
executables: []
|
28
|
+
|
29
29
|
extensions: []
|
30
30
|
|
31
31
|
extra_rdoc_files:
|
32
|
-
-
|
33
|
-
- README.
|
34
|
-
- bin/rbVimeo
|
32
|
+
- LICENSE
|
33
|
+
- README.textile
|
35
34
|
files:
|
36
|
-
-
|
37
|
-
-
|
38
|
-
- README.txt
|
35
|
+
- LICENSE
|
36
|
+
- README.textile
|
39
37
|
- Rakefile
|
40
|
-
-
|
41
|
-
- lib/
|
42
|
-
- lib/
|
43
|
-
- lib/
|
44
|
-
- lib/
|
45
|
-
- lib/
|
46
|
-
-
|
47
|
-
-
|
48
|
-
-
|
49
|
-
-
|
50
|
-
-
|
51
|
-
-
|
52
|
-
-
|
53
|
-
- tasks/ann.rake
|
54
|
-
- tasks/annotations.rake
|
55
|
-
- tasks/bones.rake
|
56
|
-
- tasks/doc.rake
|
57
|
-
- tasks/gem.rake
|
58
|
-
- tasks/manifest.rake
|
59
|
-
- tasks/post_load.rake
|
60
|
-
- tasks/rubyforge.rake
|
61
|
-
- tasks/setup.rb
|
62
|
-
- tasks/spec.rake
|
63
|
-
- tasks/svn.rake
|
38
|
+
- VERSION.yml
|
39
|
+
- lib/rbvimeo.rb
|
40
|
+
- lib/rbvimeo/comment.rb
|
41
|
+
- lib/rbvimeo/thumbnail.rb
|
42
|
+
- lib/rbvimeo/user.rb
|
43
|
+
- lib/rbvimeo/video.rb
|
44
|
+
- lib/rbvimeo/vimeo.rb
|
45
|
+
- test/XML/339189.comments.xml
|
46
|
+
- test/XML/339189.xml
|
47
|
+
- test/XML/not_found.xml
|
48
|
+
- test/rbvimeo_test.rb
|
49
|
+
- test/test_helper.rb
|
50
|
+
- test/video_test.rb
|
64
51
|
has_rdoc: true
|
65
|
-
homepage:
|
52
|
+
homepage: http://github.com/guitsaru/rbvimeo
|
66
53
|
post_install_message:
|
67
54
|
rdoc_options:
|
68
|
-
- --
|
69
|
-
- README.txt
|
55
|
+
- --charset=UTF-8
|
70
56
|
require_paths:
|
71
57
|
- lib
|
72
58
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -84,9 +70,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
84
70
|
requirements: []
|
85
71
|
|
86
72
|
rubyforge_project: rbvimeo
|
87
|
-
rubygems_version: 1.3.
|
73
|
+
rubygems_version: 1.3.1
|
88
74
|
signing_key:
|
89
75
|
specification_version: 2
|
90
|
-
summary: A ruby wrapper for the
|
91
|
-
test_files:
|
92
|
-
|
76
|
+
summary: A ruby wrapper for the vimeo api.
|
77
|
+
test_files:
|
78
|
+
- test/rbvimeo_test.rb
|
79
|
+
- test/test_helper.rb
|
80
|
+
- test/video_test.rb
|
data/History.txt
DELETED
data/Manifest.txt
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
History.txt
|
2
|
-
Manifest.txt
|
3
|
-
README.txt
|
4
|
-
Rakefile
|
5
|
-
bin/rbVimeo
|
6
|
-
lib/rbVimeo.rb
|
7
|
-
lib/Comment.rb
|
8
|
-
lib/Thumbnail.rb
|
9
|
-
lib/User.rb
|
10
|
-
lib/Video.rb
|
11
|
-
spec/rbVimeo_spec.rb
|
12
|
-
spec/sample_test_settings.yml
|
13
|
-
spec/Video_spec.rb
|
14
|
-
spec/XML/339189.comments.xml
|
15
|
-
spec/XML/339189.xml
|
16
|
-
spec/XML/not_found.xml
|
17
|
-
spec/spec_helper.rb
|
18
|
-
tasks/ann.rake
|
19
|
-
tasks/annotations.rake
|
20
|
-
tasks/bones.rake
|
21
|
-
tasks/doc.rake
|
22
|
-
tasks/gem.rake
|
23
|
-
tasks/manifest.rake
|
24
|
-
tasks/post_load.rake
|
25
|
-
tasks/rubyforge.rake
|
26
|
-
tasks/setup.rb
|
27
|
-
tasks/spec.rake
|
28
|
-
tasks/svn.rake
|
data/bin/rbVimeo
DELETED
data/lib/Comment.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
module RBVIMEO
|
2
|
-
class Comment
|
3
|
-
attr_accessor :id, :author, :authorname, :date, :url, :text, :portraits
|
4
|
-
def initialize(id, author, authorname, date, url, text, portraits)
|
5
|
-
@id = id
|
6
|
-
@author = author
|
7
|
-
@authorname = authorname
|
8
|
-
@date = date
|
9
|
-
@url = url
|
10
|
-
@text = text.chomp.strip
|
11
|
-
@portraits = portraits
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
data/lib/Video.rb
DELETED
@@ -1,128 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'hpricot'
|
3
|
-
require 'open-uri'
|
4
|
-
|
5
|
-
module RBVIMEO
|
6
|
-
class Video
|
7
|
-
attr_reader :id, :title, :caption, :upload_date, :likes, :plays
|
8
|
-
attr_reader :num_comments, :width, :height, :owner, :tags, :url
|
9
|
-
attr_reader :thumbs
|
10
|
-
|
11
|
-
# Fetches data about a video from the Vimeo site
|
12
|
-
# id is the id of the the Vimeo video
|
13
|
-
# vimeo is an instance of RBVIMEO::Vimeo
|
14
|
-
#
|
15
|
-
# To load a movie with vimeo id 339189:
|
16
|
-
# @vimeo = RBVIMEO::Vimeo.new api_key, api_secret
|
17
|
-
# video = RBVIMEO::Video.new 339189, @vimeo
|
18
|
-
def initialize id, vimeo, xml=nil
|
19
|
-
@thumbs = []
|
20
|
-
@comments = []
|
21
|
-
@id = id
|
22
|
-
@vimeo = vimeo
|
23
|
-
|
24
|
-
url = vimeo.generate_url({"method" => "vimeo.videos.getInfo",
|
25
|
-
"video_id" => id, "api_key" => vimeo.api_key}, "read")
|
26
|
-
unless xml
|
27
|
-
#does not get covered by specs because we get an internal xml file
|
28
|
-
xml_doc = Hpricot(open(url))
|
29
|
-
else
|
30
|
-
xml_doc = open(xml) {|file| Hpricot(file)}
|
31
|
-
end
|
32
|
-
|
33
|
-
return @id = -1 if parse_xml(xml_doc).nil?
|
34
|
-
end
|
35
|
-
|
36
|
-
# Parses data using the xml recieved from the Vimeo REST API
|
37
|
-
# Should not need to be called by anything other than the initialize method
|
38
|
-
def parse_xml xml_doc
|
39
|
-
if xml_doc.at("title").nil?
|
40
|
-
return nil
|
41
|
-
else
|
42
|
-
@id = id
|
43
|
-
@title = xml_doc.at("title").inner_html
|
44
|
-
@caption = xml_doc.at("caption").inner_html
|
45
|
-
@upload_date = xml_doc.at("upload_date").inner_html
|
46
|
-
@likes = xml_doc.at("number_of_likes").inner_html.to_i
|
47
|
-
@plays = xml_doc.at("number_of_plays").inner_html.to_i
|
48
|
-
@width = xml_doc.at("width").inner_html.to_i
|
49
|
-
@height = xml_doc.at("height").inner_html.to_i
|
50
|
-
@num_comments = xml_doc.at("number_of_comments").inner_html.to_i
|
51
|
-
|
52
|
-
@owner = User.new
|
53
|
-
@owner.id = xml_doc.at("owner").attributes["id"].to_i
|
54
|
-
@owner.username = xml_doc.at("owner").attributes["username"]
|
55
|
-
@owner.fullname = xml_doc.at("owner").attributes["fullname"]
|
56
|
-
|
57
|
-
@url = xml_doc.at("url").inner_html
|
58
|
-
|
59
|
-
(xml_doc/:thumbnail).each do |thumbnail|
|
60
|
-
url = thumbnail.inner_html
|
61
|
-
w = thumbnail.attributes['width'].to_i
|
62
|
-
h = thumbnail.attributes['height'].to_i
|
63
|
-
thumbnail = Thumbnail.new(url, w, h)
|
64
|
-
@thumbs << thumbnail
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
# Fetches the comments for the specified Video
|
70
|
-
# id is the id of the Vimeo video
|
71
|
-
# vimeo is an instance of RBVIMEO::Vimeo
|
72
|
-
# returns an Array of comments
|
73
|
-
#
|
74
|
-
# To load a movie with vimeo id 339189:
|
75
|
-
#
|
76
|
-
# comments = video.comments 339189, @vimeo
|
77
|
-
def get_comments xml=nil
|
78
|
-
comments = []
|
79
|
-
url = @vimeo.generate_url({"method" => "vimeo.videos.comments.getList",
|
80
|
-
"video_id" => @id, "api_key" => @vimeo.api_key}, "read")
|
81
|
-
|
82
|
-
unless xml
|
83
|
-
# Does not get covered by specs because we get an internal xml file
|
84
|
-
xml_doc = Hpricot.XML(open(url))
|
85
|
-
else
|
86
|
-
xml_doc = open(xml) {|file| Hpricot.XML(file)}
|
87
|
-
end
|
88
|
-
|
89
|
-
(xml_doc/:comment).each do |comment|
|
90
|
-
text = comment.children.select{|e| e.text?}.join
|
91
|
-
id = comment.attributes['id'].to_i
|
92
|
-
author = comment.attributes['author']
|
93
|
-
authorname = comment.attributes['authorname']
|
94
|
-
date = comment.attributes['datecreate']
|
95
|
-
url = comment.attributes['permalink']
|
96
|
-
|
97
|
-
@portraits = []
|
98
|
-
(comment/'portraits'/'portrait').each do |thumb|
|
99
|
-
portrait_url = thumb.inner_html
|
100
|
-
w = thumb.attributes['width'].to_i
|
101
|
-
h = thumb.attributes['height'].to_i
|
102
|
-
thumbnail = Thumbnail.new(portrait_url, w, h)
|
103
|
-
@portraits << thumbnail
|
104
|
-
end
|
105
|
-
com = Comment.new(id, author, authorname, date, url, text, @portraits)
|
106
|
-
@comments << com
|
107
|
-
end
|
108
|
-
return self
|
109
|
-
end
|
110
|
-
|
111
|
-
# Returns the code to embed the video
|
112
|
-
def embed width, height
|
113
|
-
string = <<EOF
|
114
|
-
<object type="application/x-shockwave-flash" width=#{width} height=#{height} data="http://www.vimeo.com/moogaloop.swf?clip_id=#{@id}&server=www.vimeo.com&fullscreen=0&show_title=0'&show_byline=0&showportrait=0&color=00ADEF">
|
115
|
-
<param name="quality" value="best" />
|
116
|
-
<param name="allowfullscreen" value="false" />
|
117
|
-
<param name="scale" value="showAll" />
|
118
|
-
<param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id=#{@id}&server=www.vimeo.com&fullscreen=0&show_title=0&show_byline=0&showportrait=0&color=00ADEF" /></object>
|
119
|
-
EOF
|
120
|
-
string.gsub("\n", "")
|
121
|
-
end
|
122
|
-
|
123
|
-
def comments xml=nil
|
124
|
-
get_comments(xml) if @comments.empty?
|
125
|
-
return @comments
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
data/spec/Video_spec.rb
DELETED
@@ -1,82 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), %w[spec_helper])
|
2
|
-
require File.join(File.dirname(__FILE__), "../lib/rbVimeo.rb")
|
3
|
-
require File.join(File.dirname(__FILE__), "../lib/Video.rb")
|
4
|
-
require "yaml"
|
5
|
-
|
6
|
-
include RBVIMEO
|
7
|
-
|
8
|
-
describe Video, "initialization" do
|
9
|
-
before(:all) do
|
10
|
-
test_settings_file = File.join(File.dirname(__FILE__), %w[test_settings.yml])
|
11
|
-
test_video_xml_file = File.join(File.dirname(__FILE__), %w[XML/339189.xml])
|
12
|
-
test_settings = YAML.load_file(test_settings_file)
|
13
|
-
@api_key = test_settings['api_key']
|
14
|
-
@api_secret = test_settings['api_secret']
|
15
|
-
@vimeo = RBVIMEO::Vimeo.new(@api_key, @api_secret)
|
16
|
-
@vid = @vimeo.video(339189, test_video_xml_file)
|
17
|
-
end
|
18
|
-
|
19
|
-
it "should have title" do
|
20
|
-
@vid.title.should eql("Upload Tutorial")
|
21
|
-
end
|
22
|
-
|
23
|
-
it "should have caption" do
|
24
|
-
@vid.caption.should eql("This is a tutorial about our new Uploader. Enjoy!")
|
25
|
-
end
|
26
|
-
|
27
|
-
it "should have upload date" do
|
28
|
-
@vid.upload_date.should eql("2007-10-12 16:30:32")
|
29
|
-
end
|
30
|
-
|
31
|
-
it "should have likes" do
|
32
|
-
@vid.likes.should eql(174)
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should have plays" do
|
36
|
-
@vid.plays.should eql(515407)
|
37
|
-
end
|
38
|
-
|
39
|
-
it "should have dimensions" do
|
40
|
-
@vid.width.should eql(506)
|
41
|
-
@vid.height.should eql(380)
|
42
|
-
end
|
43
|
-
|
44
|
-
it "should have comments" do
|
45
|
-
@vid.num_comments.should eql(34)
|
46
|
-
@vid.comments[0].id.should eql(265313)
|
47
|
-
@vid.comments[0].author.should eql("ctd3")
|
48
|
-
@vid.comments[0].authorname.should eql("CTD3")
|
49
|
-
@vid.comments[0].date.should eql("2007-10-12 17:47:13")
|
50
|
-
@vid.comments[0].url.should eql("http://vimeo.com/339189#comment_265313")
|
51
|
-
@vid.comments[0].text.should eql("Sure is! Great changes!")
|
52
|
-
@vid.comments[0].portraits[0].url.should eql("http://80.media.vimeo.com/d1/5/35/44/42/portrait-35444268.jpg")
|
53
|
-
@vid.comments[0].portraits[0].width.should eql(24)
|
54
|
-
@vid.comments[0].portraits[0].height.should eql(24)
|
55
|
-
end
|
56
|
-
|
57
|
-
it "should have owner" do
|
58
|
-
@vid.owner.id.should eql(152184)
|
59
|
-
@vid.owner.username.should eql("staff")
|
60
|
-
@vid.owner.fullname.should eql("Vimeo Staff")
|
61
|
-
end
|
62
|
-
|
63
|
-
it "should have url" do
|
64
|
-
@vid.url.should eql("http://www.vimeo.com/339189/l:app-230")
|
65
|
-
end
|
66
|
-
|
67
|
-
it "should have thumbnails" do
|
68
|
-
@vid.thumbs[0].url.should eql("http://40.media.vimeo.com/d1/5/36/63/98/thumbnail-36639824.jpg")
|
69
|
-
@vid.thumbs[0].width.should eql(96)
|
70
|
-
@vid.thumbs[0].height.should eql(72)
|
71
|
-
end
|
72
|
-
|
73
|
-
it "should return nil on nonexistent video" do
|
74
|
-
not_found_xml_file = File.join(File.dirname(__FILE__), %w[XML/not_found.xml])
|
75
|
-
video = @vimeo.video(99999999999, not_found_xml_file)
|
76
|
-
video.should be_nil
|
77
|
-
end
|
78
|
-
|
79
|
-
it "should give an embed link" do
|
80
|
-
@vid.embed(240, 480).should_not be_nil
|
81
|
-
end
|
82
|
-
end
|
data/spec/rbVimeo_spec.rb
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), %w[spec_helper])
|
2
|
-
require File.join(File.dirname(__FILE__), "../lib/rbVimeo.rb")
|
3
|
-
require "yaml"
|
4
|
-
|
5
|
-
include RBVIMEO
|
6
|
-
|
7
|
-
describe Vimeo do
|
8
|
-
before(:all) do
|
9
|
-
test_settings_file = File.join(File.dirname(__FILE__), %w[test_settings.yml])
|
10
|
-
test_settings = YAML.load_file(test_settings_file)
|
11
|
-
@api_key = test_settings['api_key']
|
12
|
-
@api_secret = test_settings['api_secret']
|
13
|
-
@vimeo = RBVIMEO::Vimeo.new(@api_key, @api_secret)
|
14
|
-
@params = {"method" => "vimeo.videos.getInfo", "video_id" => "339189", "api_key" => @api_key}
|
15
|
-
end
|
16
|
-
|
17
|
-
it "should initialize" do
|
18
|
-
@api_key.should_not be_nil
|
19
|
-
@api_secret.should_not be_nil
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should generate a signature" do
|
23
|
-
@vimeo.generate_signature(@params).should eql("09cc6d8b963c73caf647e436b2147810")
|
24
|
-
end
|
25
|
-
|
26
|
-
it "should generate a url" do
|
27
|
-
@vimeo.generate_url(@params, "read").should eql("http://www.vimeo.com/api/rest?api_key=" + @api_key + "&method=vimeo.videos.getInfo&video_id=339189&api_sig=09cc6d8b963c73caf647e436b2147810")
|
28
|
-
end
|
29
|
-
|
30
|
-
it "should generate a video" do
|
31
|
-
test_video_xml_file = File.join(File.dirname(__FILE__), %w[XML/339189.xml])
|
32
|
-
@vid = @vimeo.video(339189, test_video_xml_file)
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should generate a user" do
|
36
|
-
@vimeo.user.should_not be_nil
|
37
|
-
end
|
38
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
# $Id$
|
2
|
-
|
3
|
-
require File.expand_path(
|
4
|
-
File.join(File.dirname(__FILE__), %w[.. lib rbVimeo]))
|
5
|
-
|
6
|
-
Spec::Runner.configure do |config|
|
7
|
-
# == Mock Framework
|
8
|
-
#
|
9
|
-
# RSpec uses it's own mocking framework by default. If you prefer to
|
10
|
-
# use mocha, flexmock or RR, uncomment the appropriate line:
|
11
|
-
#
|
12
|
-
# config.mock_with :mocha
|
13
|
-
# config.mock_with :flexmock
|
14
|
-
# config.mock_with :rr
|
15
|
-
end
|
16
|
-
|
17
|
-
# EOF
|
data/tasks/ann.rake
DELETED
@@ -1,81 +0,0 @@
|
|
1
|
-
# $Id$
|
2
|
-
|
3
|
-
begin
|
4
|
-
require 'bones/smtp_tls'
|
5
|
-
rescue LoadError
|
6
|
-
require 'net/smtp'
|
7
|
-
end
|
8
|
-
require 'time'
|
9
|
-
|
10
|
-
namespace :ann do
|
11
|
-
|
12
|
-
# A prerequisites task that all other tasks depend upon
|
13
|
-
task :prereqs
|
14
|
-
|
15
|
-
file PROJ.ann.file do
|
16
|
-
ann = PROJ.ann
|
17
|
-
puts "Generating #{ann.file}"
|
18
|
-
File.open(ann.file,'w') do |fd|
|
19
|
-
fd.puts("#{PROJ.name} version #{PROJ.version}")
|
20
|
-
fd.puts(" by #{Array(PROJ.authors).first}") if PROJ.authors
|
21
|
-
fd.puts(" #{PROJ.url}") if PROJ.url.valid?
|
22
|
-
fd.puts(" (the \"#{PROJ.release_name}\" release)") if PROJ.release_name
|
23
|
-
fd.puts
|
24
|
-
fd.puts("== DESCRIPTION")
|
25
|
-
fd.puts
|
26
|
-
fd.puts(PROJ.description)
|
27
|
-
fd.puts
|
28
|
-
fd.puts(PROJ.changes.sub(%r/^.*$/, '== CHANGES'))
|
29
|
-
fd.puts
|
30
|
-
ann.paragraphs.each do |p|
|
31
|
-
fd.puts "== #{p.upcase}"
|
32
|
-
fd.puts
|
33
|
-
fd.puts paragraphs_of(PROJ.readme_file, p).join("\n\n")
|
34
|
-
fd.puts
|
35
|
-
end
|
36
|
-
fd.puts ann.text if ann.text
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
desc "Create an announcement file"
|
41
|
-
task :announcement => ['ann:prereqs', PROJ.ann.file]
|
42
|
-
|
43
|
-
desc "Send an email announcement"
|
44
|
-
task :email => ['ann:prereqs', PROJ.ann.file] do
|
45
|
-
ann = PROJ.ann
|
46
|
-
from = ann.email[:from] || PROJ.email
|
47
|
-
to = Array(ann.email[:to])
|
48
|
-
|
49
|
-
### build a mail header for RFC 822
|
50
|
-
rfc822msg = "From: #{from}\n"
|
51
|
-
rfc822msg << "To: #{to.join(',')}\n"
|
52
|
-
rfc822msg << "Subject: [ANN] #{PROJ.name} #{PROJ.version}"
|
53
|
-
rfc822msg << " (#{PROJ.release_name})" if PROJ.release_name
|
54
|
-
rfc822msg << "\n"
|
55
|
-
rfc822msg << "Date: #{Time.new.rfc822}\n"
|
56
|
-
rfc822msg << "Message-Id: "
|
57
|
-
rfc822msg << "<#{"%.8f" % Time.now.to_f}@#{ann.email[:domain]}>\n\n"
|
58
|
-
rfc822msg << File.read(ann.file)
|
59
|
-
|
60
|
-
params = [:server, :port, :domain, :acct, :passwd, :authtype].map do |key|
|
61
|
-
ann.email[key]
|
62
|
-
end
|
63
|
-
|
64
|
-
params[3] = PROJ.email if params[3].nil?
|
65
|
-
|
66
|
-
if params[4].nil?
|
67
|
-
STDOUT.write "Please enter your e-mail password (#{params[3]}): "
|
68
|
-
params[4] = STDIN.gets.chomp
|
69
|
-
end
|
70
|
-
|
71
|
-
### send email
|
72
|
-
Net::SMTP.start(*params) {|smtp| smtp.sendmail(rfc822msg, from, to)}
|
73
|
-
end
|
74
|
-
end # namespace :ann
|
75
|
-
|
76
|
-
desc 'Alias to ann:announcement'
|
77
|
-
task :ann => 'ann:announcement'
|
78
|
-
|
79
|
-
CLOBBER << PROJ.ann.file
|
80
|
-
|
81
|
-
# EOF
|
data/tasks/annotations.rake
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
# $Id$
|
2
|
-
|
3
|
-
if HAVE_BONES
|
4
|
-
|
5
|
-
desc "Enumerate all annotations"
|
6
|
-
task :notes do
|
7
|
-
Bones::AnnotationExtractor.enumerate(
|
8
|
-
PROJ, PROJ.annotation_tags.join('|'), :tag => true)
|
9
|
-
end
|
10
|
-
|
11
|
-
namespace :notes do
|
12
|
-
PROJ.notes.tags.each do |tag|
|
13
|
-
desc "Enumerate all #{tag} annotations"
|
14
|
-
task tag.downcase.to_sym do
|
15
|
-
Bones::AnnotationExtractor.enumerate(PROJ, tag)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
end # if HAVE_BONES
|
21
|
-
|
22
|
-
# EOF
|
data/tasks/bones.rake
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
# $Id$
|
2
|
-
|
3
|
-
if HAVE_BONES
|
4
|
-
|
5
|
-
namespace :bones do
|
6
|
-
|
7
|
-
desc 'Show the PROJ open struct'
|
8
|
-
task :debug do |t|
|
9
|
-
atr = if t.application.top_level_tasks.length == 2
|
10
|
-
t.application.top_level_tasks.pop
|
11
|
-
end
|
12
|
-
|
13
|
-
if atr then Bones::Debug.show_attr(PROJ, atr)
|
14
|
-
else Bones::Debug.show PROJ end
|
15
|
-
end
|
16
|
-
|
17
|
-
end # namespace :bones
|
18
|
-
|
19
|
-
end # HAVE_BONES
|
20
|
-
|
21
|
-
# EOF
|
data/tasks/doc.rake
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
# $Id$
|
2
|
-
|
3
|
-
require 'rake/rdoctask'
|
4
|
-
|
5
|
-
namespace :doc do
|
6
|
-
|
7
|
-
desc 'Generate RDoc documentation'
|
8
|
-
Rake::RDocTask.new do |rd|
|
9
|
-
rd.main = PROJ.rdoc.main
|
10
|
-
rd.rdoc_dir = PROJ.rdoc.dir
|
11
|
-
|
12
|
-
incl = Regexp.new(PROJ.rdoc.include.join('|'))
|
13
|
-
excl = Regexp.new(PROJ.rdoc.exclude.join('|'))
|
14
|
-
files = PROJ.gem.files.find_all do |fn|
|
15
|
-
case fn
|
16
|
-
when excl; false
|
17
|
-
when incl; true
|
18
|
-
else false end
|
19
|
-
end
|
20
|
-
rd.rdoc_files.push(*files)
|
21
|
-
|
22
|
-
title = "#{PROJ.name}-#{PROJ.version} Documentation"
|
23
|
-
title = "#{PROJ.rubyforge.name}'s " + title if PROJ.rubyforge.name != title
|
24
|
-
|
25
|
-
rd.options << "-t #{title}"
|
26
|
-
rd.options.concat(PROJ.rdoc.opts)
|
27
|
-
end
|
28
|
-
|
29
|
-
desc 'Generate ri locally for testing'
|
30
|
-
task :ri => :clobber_ri do
|
31
|
-
sh "#{RDOC} --ri -o ri ."
|
32
|
-
end
|
33
|
-
|
34
|
-
task :clobber_ri do
|
35
|
-
rm_r 'ri' rescue nil
|
36
|
-
end
|
37
|
-
|
38
|
-
end # namespace :doc
|
39
|
-
|
40
|
-
desc 'Alias to doc:rdoc'
|
41
|
-
task :doc => 'doc:rdoc'
|
42
|
-
|
43
|
-
desc 'Remove all build products'
|
44
|
-
task :clobber => %w(doc:clobber_rdoc doc:clobber_ri)
|
45
|
-
|
46
|
-
remove_desc_for_task %w(doc:clobber_rdoc)
|
47
|
-
|
48
|
-
# EOF
|