postage 0.1.3 → 0.1.4
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 +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
|