RuGPost 0.1.0.1.beta → 0.1.1
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 +6 -6
- data/Gemfile.lock +34 -5
- data/README.rdoc +43 -3
- data/Rakefile +13 -39
- data/RuGPost.gemspec +54 -12
- data/VERSION +1 -1
- data/bin/rugpost +9 -0
- data/lib/RuGPost.rb +26 -0
- data/lib/rugpost/commands.rb +15 -0
- data/lib/rugpost/commands/post_commands.rb +20 -0
- data/lib/rugpost/commands/project_commands.rb +23 -0
- data/lib/rugpost/on_error.rb +6 -0
- data/lib/rugpost/post.rb +96 -0
- data/lib/rugpost/prepost.rb +10 -0
- data/lib/rugpost/project.rb +34 -0
- data/lib/rugpost/site.rb +6 -0
- data/lib/rugpost/utilis.rb +27 -0
- data/rdoc/classes/RuGPost.html +200 -0
- data/rdoc/classes/RuGPost/Post.html +462 -0
- data/rdoc/classes/RuGPost/Project.html +210 -0
- data/rdoc/classes/RuGPost/Site.html +111 -0
- data/rdoc/classes/RuGPost/Utilis.html +196 -0
- data/rdoc/created.rid +1 -0
- data/rdoc/files/README_rdoc.html +204 -0
- data/rdoc/files/lib/RuGPost_rb.html +113 -0
- data/rdoc/files/lib/rugpost/commands/post_commands_rb.html +101 -0
- data/rdoc/files/lib/rugpost/commands/project_commands_rb.html +101 -0
- data/rdoc/files/lib/rugpost/commands_rb.html +108 -0
- data/rdoc/files/lib/rugpost/on_error_rb.html +101 -0
- data/rdoc/files/lib/rugpost/post_rb.html +101 -0
- data/rdoc/files/lib/rugpost/prepost_rb.html +101 -0
- data/rdoc/files/lib/rugpost/project_rb.html +101 -0
- data/rdoc/files/lib/rugpost/site_rb.html +101 -0
- data/rdoc/files/lib/rugpost/utilis_rb.html +101 -0
- data/rdoc/fr_class_index.html +31 -0
- data/rdoc/fr_file_index.html +37 -0
- data/rdoc/fr_method_index.html +43 -0
- data/rdoc/index.html +26 -0
- data/rdoc/rdoc-style.css +208 -0
- data/spec/post_spec.rb +76 -0
- data/spec/project_spec.rb +40 -0
- data/spec/spec_helper.rb +24 -0
- metadata +100 -33
data/Gemfile
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
# Add dependencies required to use your gem here.
|
3
3
|
# Example:
|
4
|
-
# gem "activesupport", ">= 2.3.5"
|
5
4
|
|
6
|
-
|
7
|
-
|
5
|
+
gem "gli", ">= 1.3.0"
|
6
|
+
gem "RedCloth", ">= 4.2.7"
|
7
|
+
gem "gmail", ">= 0.4.0"
|
8
|
+
gem "extlib", ">= 0.9.15"
|
9
|
+
|
8
10
|
group :development do
|
9
|
-
gem "shoulda", ">= 0"
|
10
|
-
gem "bundler", "~> 1.0.0"
|
11
11
|
gem "jeweler", "~> 1.6.0"
|
12
|
-
gem "
|
12
|
+
gem "rspec", "~> 2.5.0"
|
13
13
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,20 +1,49 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
+
RedCloth (4.2.7)
|
5
|
+
diff-lcs (1.1.2)
|
6
|
+
extlib (0.9.15)
|
4
7
|
git (1.2.5)
|
8
|
+
gli (1.3.0)
|
9
|
+
gmail (0.4.0)
|
10
|
+
gmail_xoauth (>= 0.3.0)
|
11
|
+
mail (>= 2.2.1)
|
12
|
+
mime (>= 0.1)
|
13
|
+
gmail_xoauth (0.3.0)
|
14
|
+
oauth (>= 0.3.6)
|
15
|
+
i18n (0.5.0)
|
5
16
|
jeweler (1.6.0)
|
6
17
|
bundler (~> 1.0.0)
|
7
18
|
git (>= 1.2.5)
|
8
19
|
rake
|
20
|
+
mail (2.3.0)
|
21
|
+
i18n (>= 0.4.0)
|
22
|
+
mime-types (~> 1.16)
|
23
|
+
treetop (~> 1.4.8)
|
24
|
+
mime (0.1)
|
25
|
+
mime-types (1.16)
|
26
|
+
oauth (0.4.4)
|
27
|
+
polyglot (0.3.1)
|
9
28
|
rake (0.8.7)
|
10
|
-
|
11
|
-
|
29
|
+
rspec (2.5.0)
|
30
|
+
rspec-core (~> 2.5.0)
|
31
|
+
rspec-expectations (~> 2.5.0)
|
32
|
+
rspec-mocks (~> 2.5.0)
|
33
|
+
rspec-core (2.5.2)
|
34
|
+
rspec-expectations (2.5.0)
|
35
|
+
diff-lcs (~> 1.1.2)
|
36
|
+
rspec-mocks (2.5.0)
|
37
|
+
treetop (1.4.9)
|
38
|
+
polyglot (>= 0.3.1)
|
12
39
|
|
13
40
|
PLATFORMS
|
14
41
|
ruby
|
15
42
|
|
16
43
|
DEPENDENCIES
|
17
|
-
|
44
|
+
RedCloth (>= 4.2.7)
|
45
|
+
extlib (>= 0.9.15)
|
46
|
+
gli (>= 1.3.0)
|
47
|
+
gmail (>= 0.4.0)
|
18
48
|
jeweler (~> 1.6.0)
|
19
|
-
|
20
|
-
shoulda
|
49
|
+
rspec (~> 2.5.0)
|
data/README.rdoc
CHANGED
@@ -1,6 +1,47 @@
|
|
1
1
|
= RuGPost
|
2
2
|
|
3
|
-
|
3
|
+
**RuGPost** (Ruby, Gmail and Posterous) is a command line facility which allows you to create posts on your own [posterous](posterous.com) sites using your GMail account.
|
4
|
+
|
5
|
+
You simply start creating your site local repo where adding your drafts. Drafts are written using **textile** lightweight markup.
|
6
|
+
|
7
|
+
When a draft is ready for publishng, you just need to _publish_ it. **RuGPost** will convert the draft to **html** and will create a post on the related site for you, using your GMail account.
|
8
|
+
|
9
|
+
= Installation
|
10
|
+
|
11
|
+
gem install RuGPost
|
12
|
+
|
13
|
+
= Usage
|
14
|
+
|
15
|
+
Create and initialize a RuGPost project:
|
16
|
+
|
17
|
+
mkdir MyProject
|
18
|
+
cd MyProject
|
19
|
+
rugpost init
|
20
|
+
rugpost config --gmail=gmailusername
|
21
|
+
|
22
|
+
Add a repository (must have same name of the posterous site):
|
23
|
+
|
24
|
+
rugpost repo RuGPost
|
25
|
+
|
26
|
+
Create your first draft in the just created site repo:
|
27
|
+
|
28
|
+
rugpost draft helloworld
|
29
|
+
|
30
|
+
Publish your draft:
|
31
|
+
|
32
|
+
rugpost publish helloworld gmailpassword
|
33
|
+
|
34
|
+
That's all. Note that if you follow the above steps as is, you should be able to post in a minute a nice 'helloworld' on rugpost.posterous.com. You are invited to do so.
|
35
|
+
|
36
|
+
= Help
|
37
|
+
|
38
|
+
For help about the available commands use:
|
39
|
+
|
40
|
+
rugpost --help
|
41
|
+
|
42
|
+
For help about a specific command use:
|
43
|
+
|
44
|
+
rugpost --help <command>
|
4
45
|
|
5
46
|
== Contributing to RuGPost
|
6
47
|
|
@@ -14,6 +55,5 @@ Description goes here.
|
|
14
55
|
|
15
56
|
== Copyright
|
16
57
|
|
17
|
-
Copyright (c) 2011
|
58
|
+
Copyright (c) 2011 empo. See LICENSE.txt for
|
18
59
|
further details.
|
19
|
-
|
data/Rakefile
CHANGED
@@ -1,53 +1,27 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
|
-
require 'bundler'
|
5
|
-
begin
|
6
|
-
Bundler.setup(:default, :development)
|
7
|
-
rescue Bundler::BundlerError => e
|
8
|
-
$stderr.puts e.message
|
9
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
-
exit e.status_code
|
11
|
-
end
|
12
4
|
require 'rake'
|
13
5
|
|
14
6
|
require 'jeweler'
|
15
7
|
Jeweler::Tasks.new do |gem|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
# dependencies defined in Gemfile
|
8
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
9
|
+
gem.name = "RuGPost"
|
10
|
+
gem.homepage = "http://github.com/3mime/RuGPost"
|
11
|
+
gem.license = "MIT"
|
12
|
+
gem.summary = %Q{Ru(by) G(mail) Post(erous) command line facility for creating posts on Posterous}
|
13
|
+
gem.description = %Q{Ru(by) G(mail) Post(erous) command line facility}
|
14
|
+
gem.email = "e.141592@gmail.com"
|
15
|
+
gem.authors = ["emime"]
|
25
16
|
end
|
26
17
|
Jeweler::RubygemsDotOrgTasks.new
|
27
18
|
|
28
|
-
require 'rake/testtask'
|
29
|
-
Rake::TestTask.new(:test) do |test|
|
30
|
-
test.libs << 'lib' << 'test'
|
31
|
-
test.pattern = 'test/**/test_*.rb'
|
32
|
-
test.verbose = true
|
33
|
-
end
|
34
|
-
|
35
|
-
require 'rcov/rcovtask'
|
36
|
-
Rcov::RcovTask.new do |test|
|
37
|
-
test.libs << 'test'
|
38
|
-
test.pattern = 'test/**/test_*.rb'
|
39
|
-
test.verbose = true
|
40
|
-
test.rcov_opts << '--exclude "gems/*"'
|
41
|
-
end
|
42
|
-
|
43
|
-
task :default => :test
|
44
19
|
|
45
20
|
require 'rake/rdoctask'
|
46
21
|
Rake::RDocTask.new do |rdoc|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
22
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
23
|
+
rdoc.rdoc_dir = 'rdoc'
|
24
|
+
rdoc.title = "RuGPost #{version}"
|
25
|
+
rdoc.rdoc_files.include('README*')
|
26
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
53
27
|
end
|
data/RuGPost.gemspec
CHANGED
@@ -5,13 +5,14 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{RuGPost}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.1"
|
9
9
|
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new("
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = [%q{emime}]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-06-01}
|
13
13
|
s.description = %q{Ru(by) G(mail) Post(erous) command line facility}
|
14
14
|
s.email = %q{e.141592@gmail.com}
|
15
|
+
s.executables = [%q{rugpost}]
|
15
16
|
s.extra_rdoc_files = [
|
16
17
|
"LICENSE.txt",
|
17
18
|
"README.rdoc"
|
@@ -25,7 +26,42 @@ Gem::Specification.new do |s|
|
|
25
26
|
"Rakefile",
|
26
27
|
"RuGPost.gemspec",
|
27
28
|
"VERSION",
|
29
|
+
"bin/rugpost",
|
28
30
|
"lib/RuGPost.rb",
|
31
|
+
"lib/rugpost/commands.rb",
|
32
|
+
"lib/rugpost/commands/post_commands.rb",
|
33
|
+
"lib/rugpost/commands/project_commands.rb",
|
34
|
+
"lib/rugpost/on_error.rb",
|
35
|
+
"lib/rugpost/post.rb",
|
36
|
+
"lib/rugpost/prepost.rb",
|
37
|
+
"lib/rugpost/project.rb",
|
38
|
+
"lib/rugpost/site.rb",
|
39
|
+
"lib/rugpost/utilis.rb",
|
40
|
+
"rdoc/classes/RuGPost.html",
|
41
|
+
"rdoc/classes/RuGPost/Post.html",
|
42
|
+
"rdoc/classes/RuGPost/Project.html",
|
43
|
+
"rdoc/classes/RuGPost/Site.html",
|
44
|
+
"rdoc/classes/RuGPost/Utilis.html",
|
45
|
+
"rdoc/created.rid",
|
46
|
+
"rdoc/files/README_rdoc.html",
|
47
|
+
"rdoc/files/lib/RuGPost_rb.html",
|
48
|
+
"rdoc/files/lib/rugpost/commands/post_commands_rb.html",
|
49
|
+
"rdoc/files/lib/rugpost/commands/project_commands_rb.html",
|
50
|
+
"rdoc/files/lib/rugpost/commands_rb.html",
|
51
|
+
"rdoc/files/lib/rugpost/on_error_rb.html",
|
52
|
+
"rdoc/files/lib/rugpost/post_rb.html",
|
53
|
+
"rdoc/files/lib/rugpost/prepost_rb.html",
|
54
|
+
"rdoc/files/lib/rugpost/project_rb.html",
|
55
|
+
"rdoc/files/lib/rugpost/site_rb.html",
|
56
|
+
"rdoc/files/lib/rugpost/utilis_rb.html",
|
57
|
+
"rdoc/fr_class_index.html",
|
58
|
+
"rdoc/fr_file_index.html",
|
59
|
+
"rdoc/fr_method_index.html",
|
60
|
+
"rdoc/index.html",
|
61
|
+
"rdoc/rdoc-style.css",
|
62
|
+
"spec/post_spec.rb",
|
63
|
+
"spec/project_spec.rb",
|
64
|
+
"spec/spec_helper.rb",
|
29
65
|
"test/helper.rb",
|
30
66
|
"test/test_RuGPost.rb"
|
31
67
|
]
|
@@ -39,21 +75,27 @@ Gem::Specification.new do |s|
|
|
39
75
|
s.specification_version = 3
|
40
76
|
|
41
77
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
42
|
-
s.
|
43
|
-
s.
|
78
|
+
s.add_runtime_dependency(%q<gli>, [">= 1.3.0"])
|
79
|
+
s.add_runtime_dependency(%q<RedCloth>, [">= 4.2.7"])
|
80
|
+
s.add_runtime_dependency(%q<gmail>, [">= 0.4.0"])
|
81
|
+
s.add_runtime_dependency(%q<extlib>, [">= 0.9.15"])
|
44
82
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.0"])
|
45
|
-
s.add_development_dependency(%q<
|
83
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.5.0"])
|
46
84
|
else
|
47
|
-
s.add_dependency(%q<
|
48
|
-
s.add_dependency(%q<
|
85
|
+
s.add_dependency(%q<gli>, [">= 1.3.0"])
|
86
|
+
s.add_dependency(%q<RedCloth>, [">= 4.2.7"])
|
87
|
+
s.add_dependency(%q<gmail>, [">= 0.4.0"])
|
88
|
+
s.add_dependency(%q<extlib>, [">= 0.9.15"])
|
49
89
|
s.add_dependency(%q<jeweler>, ["~> 1.6.0"])
|
50
|
-
s.add_dependency(%q<
|
90
|
+
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
51
91
|
end
|
52
92
|
else
|
53
|
-
s.add_dependency(%q<
|
54
|
-
s.add_dependency(%q<
|
93
|
+
s.add_dependency(%q<gli>, [">= 1.3.0"])
|
94
|
+
s.add_dependency(%q<RedCloth>, [">= 4.2.7"])
|
95
|
+
s.add_dependency(%q<gmail>, [">= 0.4.0"])
|
96
|
+
s.add_dependency(%q<extlib>, [">= 0.9.15"])
|
55
97
|
s.add_dependency(%q<jeweler>, ["~> 1.6.0"])
|
56
|
-
s.add_dependency(%q<
|
98
|
+
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
57
99
|
end
|
58
100
|
end
|
59
101
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/bin/rugpost
ADDED
data/lib/RuGPost.rb
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'gli'
|
3
|
+
require 'redcloth'
|
4
|
+
require 'gmail'
|
5
|
+
require 'pathname'
|
6
|
+
require 'extlib'
|
7
|
+
|
8
|
+
module RuGPost
|
9
|
+
|
10
|
+
# directory containing RuGPost library files
|
11
|
+
LIB = Pathname(__FILE__).dirname.expand_path/'rugpost'
|
12
|
+
|
13
|
+
# requires
|
14
|
+
require LIB/'utilis'
|
15
|
+
require LIB/'site'
|
16
|
+
require LIB/'project'
|
17
|
+
require LIB/'post'
|
18
|
+
|
19
|
+
include RuGPost::Utilis
|
20
|
+
|
21
|
+
# project configuration file
|
22
|
+
CONFIG = 'config.yaml'
|
23
|
+
TEMPLATE = 'template'
|
24
|
+
VERSION = '0.1.1'
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
include GLI
|
2
|
+
|
3
|
+
require RuGPost::LIB/'commands/project_commands'
|
4
|
+
require RuGPost::LIB/'commands/post_commands'
|
5
|
+
|
6
|
+
on_error do |exception|
|
7
|
+
# Error logic here
|
8
|
+
# return false to skip default error handling
|
9
|
+
|
10
|
+
puts exception.message
|
11
|
+
exception.backtrace.each do |b|
|
12
|
+
puts b
|
13
|
+
end
|
14
|
+
false
|
15
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
desc 'Create a new draft on the indicated site repository.'
|
2
|
+
arg_name '<post-name>'
|
3
|
+
command :draft do |c|
|
4
|
+
c.desc 'Target site repository where the post draft will be created.'
|
5
|
+
c.flag [:site]
|
6
|
+
c.action do |glob, ops, args|
|
7
|
+
Post.draft(args,ops)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
desc 'Publish a repository draft on the corresponding posterous site.'
|
12
|
+
arg_name '<draft-name>'
|
13
|
+
arg_name '<password>'
|
14
|
+
command :publish do |c|
|
15
|
+
c.desc 'Repository where the draft is stored.'
|
16
|
+
c.flag [:site]
|
17
|
+
c.action do |glob, ops, args|
|
18
|
+
Post.publish(Post.new(args, ops))
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
desc 'Initialize a RuGPost project.'
|
2
|
+
command :init do |c|
|
3
|
+
c.action do |glob, ops, args|
|
4
|
+
Project.init(args,ops)
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
desc 'Create a repo for a posterous site.'
|
9
|
+
arg_name '<site-name>'
|
10
|
+
command :repo do |c|
|
11
|
+
c.action do |glob, ops, args|
|
12
|
+
Project.add_repo(args,ops)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
desc 'Configure project global options'
|
17
|
+
command :config do |c|
|
18
|
+
c.desc 'Configure gmail account used to post on posterous sites. Needs the gmail (without @gmail).'
|
19
|
+
c.flag [:gmail]
|
20
|
+
c.action do |glob,ops,args|
|
21
|
+
Project.config(args,ops)
|
22
|
+
end
|
23
|
+
end
|
data/lib/rugpost/post.rb
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
module RuGPost
|
2
|
+
|
3
|
+
META = /--- \n.*\n---\n/m
|
4
|
+
|
5
|
+
DRAFTS = 'drafts'
|
6
|
+
PUBLISHED = 'published'
|
7
|
+
SOURCE = PUBLISHED/'source'
|
8
|
+
OUTPUT = PUBLISHED/'output'
|
9
|
+
|
10
|
+
class Post
|
11
|
+
|
12
|
+
attr_accessor :src_body, :draft, :subject, :html_o, :metaops, :pwd
|
13
|
+
|
14
|
+
def initialize(args,ops)
|
15
|
+
ops[:site]=Post.get_site(ops)
|
16
|
+
@draftid = args[0]
|
17
|
+
@pwd = args[1]
|
18
|
+
@draft = Dir.glob(ops[:site]/DRAFTS/@draftid+".*")
|
19
|
+
raise "Draft not found! Searched for '#{args[0]}' in '#{ops[:site]}/drafts'" unless @draft
|
20
|
+
@draft = @draft[0]
|
21
|
+
set_body
|
22
|
+
set_html
|
23
|
+
set_meta ops
|
24
|
+
set_subj
|
25
|
+
end
|
26
|
+
|
27
|
+
def set_meta ops
|
28
|
+
projectops = YAML.load_file(CONFIG)
|
29
|
+
@metaops = YAML.load_file(@draft)
|
30
|
+
@metaops.merge! projectops
|
31
|
+
@metaops.merge! ops
|
32
|
+
end
|
33
|
+
|
34
|
+
def set_subj
|
35
|
+
@subject = "#{@metaops[:title]} ((tags:#{@metaops[:tags].join(',')}))"
|
36
|
+
@subject += "((delay:#{@metaops[:delay]}))" if @metaops[:delay]
|
37
|
+
end
|
38
|
+
|
39
|
+
def set_body
|
40
|
+
cnt = ""
|
41
|
+
File.open( @draft, 'r' ) { |str| cnt << str.read() }
|
42
|
+
@src_body = cnt.sub META, ""
|
43
|
+
end
|
44
|
+
|
45
|
+
def set_html
|
46
|
+
@html_o = RedCloth.new(@src_body).to_html
|
47
|
+
end
|
48
|
+
|
49
|
+
def move_source
|
50
|
+
FileUtils.mv(@draft,@metaops[:site]/SOURCE)
|
51
|
+
end
|
52
|
+
|
53
|
+
def move_html
|
54
|
+
target = @metaops[:site]/OUTPUT/@draftid+'.html'
|
55
|
+
File.open( target, 'w' ) {|f| f.write(@html_o)}
|
56
|
+
end
|
57
|
+
|
58
|
+
def remove
|
59
|
+
FileUtils.remove_file(@draft)
|
60
|
+
end
|
61
|
+
|
62
|
+
def Post.draft(args,ops)
|
63
|
+
ops[:site]=Post.get_site(ops)
|
64
|
+
raise "Please provide draft name!" if !args[0]
|
65
|
+
target_file = ops[:site]/'drafts'/args[0]+'.textile'
|
66
|
+
puts "Adding draft '#{args[0]}' to site repo '#{ops[:site]}'..."
|
67
|
+
raise "File already exists!\n\t#{target_file}\n\tPlease indicate a different draft name." if File.exists?(target_file)
|
68
|
+
FileUtils.copy_file(TEMPLATE, target_file)
|
69
|
+
end
|
70
|
+
|
71
|
+
def Post.publish(post)
|
72
|
+
account = "#{post.metaops[:gmail]}@gmail.com"
|
73
|
+
gmail = Gmail.new(account,post.pwd)
|
74
|
+
gmail.deliver do
|
75
|
+
to "#{post.metaops[:site]}@posterous.com"
|
76
|
+
subject post.subject
|
77
|
+
text_part do
|
78
|
+
body post.html_o
|
79
|
+
end
|
80
|
+
end
|
81
|
+
gmail.logout
|
82
|
+
post.move_source
|
83
|
+
post.move_html
|
84
|
+
end
|
85
|
+
|
86
|
+
def Post.get_site(ops)
|
87
|
+
if ops[:site]==nil then
|
88
|
+
ops[:site]=Dir.glob('*').select {|d| File.directory? d}[0]
|
89
|
+
puts "No site name option provided, switching to default...'#{ops[:site]}'"
|
90
|
+
end
|
91
|
+
return ops[:site]
|
92
|
+
end
|
93
|
+
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|