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 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
-