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 CHANGED
@@ -1,5 +1,3 @@
1
- = The MIT License
2
-
3
1
  Copyright (c) 2009 Hallison Batista
4
2
 
5
3
  Permission is hereby granted, free of charge, to any person obtaining a
@@ -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
@@ -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
- attr_reader :posts, :tags
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 = File.basename(file_name)
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
- File.open(File.join(directory, @file), 'w+') do |file|
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|txt|text.*/
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
- File.join(ROOT,'templates','post.erb')
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 (c) 2009, Hallison Vasconcelos Batista
2
- $LOAD_PATH << File.expand_path(File.dirname(__FILE__))
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
- %w(rubygems maruku erb).map do |dependency|
8
- require dependency
9
- end
7
+ # RubyGems
8
+ require 'rubygems'
10
9
 
11
- # Root directory for references library.
12
- ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
13
- INFO = YAML.load_file(File.join(ROOT, "INFO"))
10
+ # 3rd part gems
11
+ require 'maruku'
14
12
 
15
- # Postage core extensions.
16
- require 'extensions'
13
+ # Core
14
+ require 'pathname'
15
+ require 'ostruct'
16
+ require 'erb'
17
17
 
18
- # Auto-load all libraries
19
- autoload :Post, 'postage/post'
20
- autoload :Finder, 'postage/finder'
18
+ # Internal requires
19
+ require 'postage/extensions'
21
20
 
22
- class << self
21
+ # Root directory for references library.
22
+ ROOT = Pathname.new("#{File.dirname(__FILE__)}/..")
23
23
 
24
- # Returns the module formatted name.
25
- def to_s
26
- "#{INFO[:name]} v#{INFO[:version]} (#{INFO[:cycle]})"
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
- end
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(spec) do |pkg|
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 => [ :manifest, :gem ] do
60
- `gem install pkg/#{spec.name}-#{spec.version}.gem --local`
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
@@ -0,0 +1,7 @@
1
+ require 'rake/testtask'
2
+
3
+ Rake::TestTask.new do |spec|
4
+ spec.libs << "test"
5
+ spec.test_files = FileList["test/*test.rb"]
6
+ end
7
+
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.3
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-07-21 00:00:00 -04:00
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: ruby-debug
27
- type: :development
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: 0.10.3
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/finder.rb
46
+ - lib/postage/version.rb
55
47
  - lib/postage/post.rb
56
- - tasks/package.rake
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
- - templates/post.erb
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/20090604143805-postage_test_post.ruby.postage.mkd
63
- - test/test_finder.rb
64
- - test/test_post.rb
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
@@ -1,7 +0,0 @@
1
- = Authors
2
-
3
- Postage was maintained and developed by {Hallison
4
- Batista}[http://hallisonbatista.com].
5
-
6
- Please, contributors are most welcome.
7
-
data/CHANGES DELETED
@@ -1,10 +0,0 @@
1
- = Changes
2
-
3
- [0.1.0 - July 2009]
4
- * This version has been extracted from
5
- {Postview}[http://postview.rubyforge.org] project.
6
-
7
- * Posts and all attributes are loaded from text files.
8
-
9
- * All files are found by Finder class.
10
-
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
data/templates/post.erb DELETED
@@ -1,5 +0,0 @@
1
- <%= post.title %>
2
- <%= "=" * post.title.size %>
3
-
4
- <%= post.content || "Input the content." %>
5
-