postage 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +0 -2
- data/lib/postage/about.rb +30 -0
- data/lib/{extensions.rb → postage/extensions.rb} +0 -0
- data/lib/postage/finder.rb +6 -1
- data/lib/postage/post.rb +12 -5
- data/lib/postage/version.rb +27 -0
- data/lib/postage.rb +20 -20
- data/tasks/documentation.rake +17 -0
- data/tasks/package.rake +4 -49
- data/tasks/test.rake +7 -0
- data/test/{test_finder.rb → finder_test.rb} +0 -0
- data/test/fixtures/20090608-creating_new_entry_from_test_unit.ruby.postage.test.mkd +12 -0
- data/test/{test_post.rb → post_test.rb} +0 -0
- metadata +19 -19
- data/AUTHORS +0 -7
- data/CHANGES +0 -10
- data/INFO +0 -16
- data/MANIFEST +0 -20
- data/templates/post.erb +0 -5
data/LICENSE
CHANGED
@@ -0,0 +1,30 @@
|
|
1
|
+
# Copyright (C) 2009, Hallison Batista
|
2
|
+
module Postage
|
3
|
+
|
4
|
+
module About #:nodoc:
|
5
|
+
|
6
|
+
class << self
|
7
|
+
|
8
|
+
def info
|
9
|
+
@about ||= OpenStruct.new(YAML.load_file(ROOT.join("INFO")))
|
10
|
+
end
|
11
|
+
|
12
|
+
def to_s
|
13
|
+
<<-end_info.gsub(/ /,'')
|
14
|
+
#{Version}
|
15
|
+
Copyright (C) #{Version.info.timestamp.year} #{info.authors.join(', ')}
|
16
|
+
|
17
|
+
#{info.description}
|
18
|
+
|
19
|
+
For more information, please see the project homepage
|
20
|
+
#{info.homepage}. Bugs, enhancements and improvements,
|
21
|
+
please send message to #{info.email}.
|
22
|
+
end_info
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end # module About
|
28
|
+
|
29
|
+
end # module Postage
|
30
|
+
|
File without changes
|
data/lib/postage/finder.rb
CHANGED
@@ -1,9 +1,14 @@
|
|
1
|
+
# Copyright (c) 2009, Hallison Batista
|
1
2
|
module Postage
|
2
3
|
|
3
4
|
# This class is a utility for find all posts in specific directory.
|
4
5
|
class Finder
|
5
6
|
|
6
|
-
|
7
|
+
# Post list
|
8
|
+
attr_reader :posts
|
9
|
+
|
10
|
+
# Post tags list
|
11
|
+
attr_reader :tags
|
7
12
|
|
8
13
|
# Finder most be initialized with the directory that contains post files.
|
9
14
|
def initialize(directory)
|
data/lib/postage/post.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# Copyright (c) 2009, Hallison Batista
|
1
2
|
module Postage
|
2
3
|
# Main class for handle text files. The Post class load file and extract all
|
3
4
|
# attributes from name. Examples:
|
@@ -57,7 +58,7 @@ class Post
|
|
57
58
|
extract_tags(file_name)
|
58
59
|
extract_filter(file_name)
|
59
60
|
extract_title_and_content(file_name)
|
60
|
-
@file =
|
61
|
+
@file = Pathname.new(file_name).expand_path
|
61
62
|
@title = @file.gsub('_', ' ').capitalize if @title.to_s.empty?
|
62
63
|
@summary = @content.match(%r{<p>.*</p>}).to_s
|
63
64
|
self
|
@@ -65,7 +66,7 @@ class Post
|
|
65
66
|
|
66
67
|
# Return post name formatted ("year/month/day/name").
|
67
68
|
def to_s
|
68
|
-
@file.scan(%r{(\d{4})(\d{2})(\d{2})(.*?)-(.*?)\..*}) do |year,month,day,time,name|
|
69
|
+
@file.to_s.scan(%r{(\d{4})(\d{2})(\d{2})(.*?)-(.*?)\..*}) do |year,month,day,time,name|
|
69
70
|
return "#{year}/#{month}/#{day}/#{name}"
|
70
71
|
end
|
71
72
|
end
|
@@ -78,16 +79,22 @@ class Post
|
|
78
79
|
# Get post file name and creates content and save into directory.
|
79
80
|
def create_into(directory)
|
80
81
|
build_file
|
81
|
-
|
82
|
+
directory.join(@file).open 'w+' do |file|
|
82
83
|
post = self
|
83
84
|
file << ERB.new(load_template).result(binding)
|
84
85
|
end
|
85
86
|
end
|
86
87
|
|
88
|
+
# Test pattern in title or filename.
|
87
89
|
def matched?(regexp)
|
88
90
|
@title.match(regexp) || @file.match(regexp)
|
89
91
|
end
|
90
92
|
|
93
|
+
# Sort posts by format.
|
94
|
+
def <=>(post)
|
95
|
+
to_s <=> post.to_s
|
96
|
+
end
|
97
|
+
|
91
98
|
private
|
92
99
|
|
93
100
|
def extract_publish_date(file_name)
|
@@ -115,7 +122,7 @@ private
|
|
115
122
|
@filter = case filter.to_s
|
116
123
|
when /md|mkd|mark.*/
|
117
124
|
:markdown
|
118
|
-
when /tx|
|
125
|
+
when /tx|txl|text.*/
|
119
126
|
:textile
|
120
127
|
else
|
121
128
|
:text
|
@@ -168,7 +175,7 @@ private
|
|
168
175
|
end
|
169
176
|
|
170
177
|
def template
|
171
|
-
|
178
|
+
ROOT.join('templates','post.erb')
|
172
179
|
end
|
173
180
|
|
174
181
|
end # class Post
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# Copyright (C) 2009, Hallison Batista
|
2
|
+
module Postage
|
3
|
+
|
4
|
+
module Version #:nodoc:
|
5
|
+
|
6
|
+
class << self
|
7
|
+
|
8
|
+
def info
|
9
|
+
@version ||= OpenStruct.new(YAML.load_file(ROOT.join("VERSION")))
|
10
|
+
end
|
11
|
+
|
12
|
+
def tag
|
13
|
+
%w{major minor patch release}.map do |tag|
|
14
|
+
info.send(tag)
|
15
|
+
end.compact.join(".")
|
16
|
+
end
|
17
|
+
|
18
|
+
def to_s
|
19
|
+
"#{name.sub(/::.*/,'')} v#{tag} (#{info.date.strftime('%B, %d %Y')}, #{info.cycle})"
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end # module Version
|
25
|
+
|
26
|
+
end # module Postage
|
27
|
+
|
data/lib/postage.rb
CHANGED
@@ -1,33 +1,33 @@
|
|
1
|
-
# Copyright (
|
2
|
-
$LOAD_PATH
|
1
|
+
# Copyright (C) 2009, Hallison Batista
|
2
|
+
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__)))
|
3
3
|
|
4
4
|
# Main module for API.
|
5
5
|
module Postage
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
end
|
7
|
+
# RubyGems
|
8
|
+
require 'rubygems'
|
10
9
|
|
11
|
-
#
|
12
|
-
|
13
|
-
INFO = YAML.load_file(File.join(ROOT, "INFO"))
|
10
|
+
# 3rd part gems
|
11
|
+
require 'maruku'
|
14
12
|
|
15
|
-
#
|
16
|
-
require '
|
13
|
+
# Core
|
14
|
+
require 'pathname'
|
15
|
+
require 'ostruct'
|
16
|
+
require 'erb'
|
17
17
|
|
18
|
-
#
|
19
|
-
|
20
|
-
autoload :Finder, 'postage/finder'
|
18
|
+
# Internal requires
|
19
|
+
require 'postage/extensions'
|
21
20
|
|
22
|
-
|
21
|
+
# Root directory for references library.
|
22
|
+
ROOT = Pathname.new("#{File.dirname(__FILE__)}/..")
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
end
|
28
|
-
alias :info :to_s
|
24
|
+
# Auto-load information libraries
|
25
|
+
autoload :About, 'postage/about'
|
26
|
+
autoload :Version, 'postage/version'
|
29
27
|
|
30
|
-
|
28
|
+
# Auto-load main libraries
|
29
|
+
autoload :Post, 'postage/post'
|
30
|
+
autoload :Finder, 'postage/finder'
|
31
31
|
|
32
32
|
end # module Postage
|
33
33
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'rdoc'
|
2
|
+
require 'rake/rdoctask'
|
3
|
+
|
4
|
+
Rake::RDocTask.new("doc:api") do |rdoc|
|
5
|
+
rdoc.title = "Postage - A lightweight API to write post files"
|
6
|
+
rdoc.main = "README"
|
7
|
+
rdoc.options = [ '-SHN', '-f', 'darkfish' ]
|
8
|
+
rdoc.rdoc_dir = 'doc'
|
9
|
+
rdoc.rdoc_files.include(
|
10
|
+
"AUTHORS",
|
11
|
+
"CHANGES",
|
12
|
+
"LICENSE",
|
13
|
+
"README",
|
14
|
+
"lib/**/*.rb"
|
15
|
+
)
|
16
|
+
end
|
17
|
+
|
data/tasks/package.rake
CHANGED
@@ -1,63 +1,18 @@
|
|
1
1
|
require 'rake/packagetask'
|
2
2
|
require 'rake/gempackagetask'
|
3
|
-
|
4
|
-
def manifest_file
|
5
|
-
File.readlines(File.join(Postage::ROOT, "MANIFEST"))
|
6
|
-
end
|
7
|
-
|
8
|
-
def manifest
|
9
|
-
manifest_file.map do |file|
|
10
|
-
file.strip
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def spec
|
15
|
-
Gem::Specification.new do |spec|
|
16
|
-
spec.platform = Gem::Platform::RUBY
|
17
|
-
Postage::INFO.each do |info, value|
|
18
|
-
spec.send("#{info}=", value) if spec.respond_to? "#{info}="
|
19
|
-
end
|
20
|
-
|
21
|
-
Postage::INFO[:dependencies].each do |name, version|
|
22
|
-
spec.add_dependency name, version
|
23
|
-
end
|
24
|
-
|
25
|
-
spec.require_paths = %w[lib]
|
26
|
-
spec.files = manifest
|
27
|
-
spec.test_files = spec.files.select{ |path| path =~ /^test\/.*_test.rb/ }
|
28
|
-
|
29
|
-
spec.has_rdoc = true
|
30
|
-
spec.extra_rdoc_files = %w[README LICENSE]
|
31
|
-
spec.add_development_dependency 'ruby-debug', '>= 0.10.3'
|
32
|
-
|
33
|
-
spec.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Postage", "--main", "README"]
|
34
|
-
spec.rubyforge_project = spec.name
|
35
|
-
spec.rubygems_version = '1.1.1'
|
36
|
-
end # Gem::Specification
|
37
|
-
end
|
3
|
+
load 'postage.gemspec'
|
38
4
|
|
39
5
|
def package(ext)
|
40
6
|
"pkg/#{spec.name}-#{spec.version}.#{ext}"
|
41
7
|
end
|
42
8
|
|
43
|
-
Rake::GemPackageTask.new(
|
9
|
+
Rake::GemPackageTask.new(@gemspec) do |pkg|
|
44
10
|
pkg.need_tar_bz2 = true
|
45
11
|
end
|
46
12
|
|
47
|
-
desc "Generate MANIFEST file."
|
48
|
-
task :manifest do |file|
|
49
|
-
File.open(File.join(Postage::ROOT, file.name.upcase), "w+") do |manifest|
|
50
|
-
manifest.write(
|
51
|
-
`git ls-files`.split("\n").sort.reject do |ignored|
|
52
|
-
ignored =~ /^\./ || ignored =~ /rdoc/
|
53
|
-
end.join("\n")
|
54
|
-
)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
13
|
desc "Install gem package."
|
59
|
-
task :install => [ :
|
60
|
-
`gem install pkg/#{
|
14
|
+
task :install => [ :gem ] do
|
15
|
+
`gem install pkg/#{Postage.specification.name}-#{Postage.specification.version}.gem --local`
|
61
16
|
end
|
62
17
|
|
63
18
|
desc "Uninstall gem package."
|
data/tasks/test.rake
ADDED
File without changes
|
@@ -0,0 +1,12 @@
|
|
1
|
+
Creating new `entry` from test unit
|
2
|
+
===================================
|
3
|
+
|
4
|
+
Ok. This is a test for create new `entry` from test unit and this paragraph will summary.
|
5
|
+
|
6
|
+
In this file, I'll write any content ... only for test.
|
7
|
+
Postage is a lightweight API for load posts from flat file that contains
|
8
|
+
text filtered by [Markdown][] syntax.
|
9
|
+
|
10
|
+
[Markdown]: http://daringfireball.net/projects/markdown/
|
11
|
+
|
12
|
+
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: postage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hallison Batista
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-09-08 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -23,14 +23,14 @@ dependencies:
|
|
23
23
|
version: 0.6.0
|
24
24
|
version:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
|
-
name:
|
27
|
-
type: :
|
26
|
+
name: RedCloth
|
27
|
+
type: :runtime
|
28
28
|
version_requirement:
|
29
29
|
version_requirements: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 4.2.2
|
34
34
|
version:
|
35
35
|
description: Postage is an API developed for handle text files for posts for blogs or anything else.
|
36
36
|
email: email@hallisonbatista.com
|
@@ -42,26 +42,26 @@ extra_rdoc_files:
|
|
42
42
|
- README
|
43
43
|
- LICENSE
|
44
44
|
files:
|
45
|
-
- AUTHORS
|
46
|
-
- CHANGES
|
47
|
-
- INFO
|
48
|
-
- LICENSE
|
49
|
-
- MANIFEST
|
50
|
-
- README
|
51
|
-
- Rakefile
|
52
|
-
- lib/extensions.rb
|
53
45
|
- lib/postage.rb
|
54
|
-
- lib/postage/
|
46
|
+
- lib/postage/version.rb
|
55
47
|
- lib/postage/post.rb
|
56
|
-
-
|
48
|
+
- lib/postage/finder.rb
|
49
|
+
- lib/postage/about.rb
|
50
|
+
- lib/postage/extensions.rb
|
51
|
+
- tasks/test.rake
|
57
52
|
- tasks/postage.rake
|
58
|
-
-
|
53
|
+
- tasks/documentation.rake
|
54
|
+
- tasks/package.rake
|
55
|
+
- test/post_test.rb
|
59
56
|
- test/fixtures/20080501-postage_test_post.ruby.postage.mkd
|
57
|
+
- test/fixtures/20090604143805-postage_test_post.ruby.postage.mkd
|
60
58
|
- test/fixtures/20080601-postage_test_post.ruby.postage.mkd
|
61
59
|
- test/fixtures/20090604-postage_test_post.ruby.postage.mkd
|
62
|
-
- test/fixtures/
|
63
|
-
- test/
|
64
|
-
-
|
60
|
+
- test/fixtures/20090608-creating_new_entry_from_test_unit.ruby.postage.test.mkd
|
61
|
+
- test/finder_test.rb
|
62
|
+
- Rakefile
|
63
|
+
- README
|
64
|
+
- LICENSE
|
65
65
|
has_rdoc: true
|
66
66
|
homepage: http://postage.rubyforge.org/
|
67
67
|
licenses: []
|
data/AUTHORS
DELETED
data/CHANGES
DELETED
data/INFO
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
:name: postage
|
2
|
-
:version: 0.1.3
|
3
|
-
:date: 2009-07-21
|
4
|
-
:cycle: Beta release
|
5
|
-
:summary:
|
6
|
-
Postage API implemented for helper handle text files for posts.
|
7
|
-
:description:
|
8
|
-
Postage is an API developed for handle text files for posts for blogs
|
9
|
-
or anything else.
|
10
|
-
:authors:
|
11
|
-
- Hallison Batista
|
12
|
-
:email: email@hallisonbatista.com
|
13
|
-
:homepage: http://postage.rubyforge.org/
|
14
|
-
:dependencies:
|
15
|
-
maruku: >= 0.6.0
|
16
|
-
|
data/MANIFEST
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
AUTHORS
|
2
|
-
CHANGES
|
3
|
-
INFO
|
4
|
-
LICENSE
|
5
|
-
MANIFEST
|
6
|
-
README
|
7
|
-
Rakefile
|
8
|
-
lib/extensions.rb
|
9
|
-
lib/postage.rb
|
10
|
-
lib/postage/finder.rb
|
11
|
-
lib/postage/post.rb
|
12
|
-
tasks/package.rake
|
13
|
-
tasks/postage.rake
|
14
|
-
templates/post.erb
|
15
|
-
test/fixtures/20080501-postage_test_post.ruby.postage.mkd
|
16
|
-
test/fixtures/20080601-postage_test_post.ruby.postage.mkd
|
17
|
-
test/fixtures/20090604-postage_test_post.ruby.postage.mkd
|
18
|
-
test/fixtures/20090604143805-postage_test_post.ruby.postage.mkd
|
19
|
-
test/test_finder.rb
|
20
|
-
test/test_post.rb
|