hakii 0.0.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 +2 -0
- data/LICENSE +15 -0
- data/README.markdown +11 -0
- data/Rakefile +170 -0
- data/hakii.gemspec +41 -0
- data/lib/hakii.rb +7 -0
- metadata +72 -0
data/Gemfile
ADDED
data/LICENSE
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<Hakii is a simple and stupid static site generator.>
|
|
2
|
+
Copyright (C) <2011> <Andor>
|
|
3
|
+
|
|
4
|
+
This program is free software: you can redistribute it and/or modify
|
|
5
|
+
it under the terms of the GNU General Public License as published by
|
|
6
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
7
|
+
(at your option) any later version.
|
|
8
|
+
|
|
9
|
+
This program is distributed in the hope that it will be useful,
|
|
10
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
GNU General Public License for more details.
|
|
13
|
+
|
|
14
|
+
You should have received a copy of the GNU General Public License
|
|
15
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
data/README.markdown
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# About Hakii
|
|
2
|
+
|
|
3
|
+
This gem is for generating static sites, then you can host the outputs on [github pages](http://pages.github.com) or other hosts.
|
|
4
|
+
|
|
5
|
+
For github pages, you can use the `rake git` command pushing the outputs to your github repo; for other hosts you should use the `rake ftp` command transporting the outputs to you host's ftp.
|
|
6
|
+
|
|
7
|
+
# Usage
|
|
8
|
+
|
|
9
|
+
# License
|
|
10
|
+
|
|
11
|
+
This gem is licensed under the [GPLv3](http://www.gnu.org/licenses/gpl-3.0.html).
|
data/Rakefile
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'rubygems'
|
|
4
|
+
require 'rake'
|
|
5
|
+
require 'date'
|
|
6
|
+
|
|
7
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), *%w[lib]))
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
############################
|
|
11
|
+
#
|
|
12
|
+
# Helper functions
|
|
13
|
+
#
|
|
14
|
+
############################
|
|
15
|
+
|
|
16
|
+
def name
|
|
17
|
+
@name ||= Dir['*.gemspec'].first.split('.').first
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def version
|
|
21
|
+
line = File.read("lib/#{name}.rb")[/^\s*VERSION\s*=\s*.*/]
|
|
22
|
+
line.match(/.*VERSION\s*=\s*['"](.*)['"]/)[1]
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def date
|
|
26
|
+
Date.today.to_s
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def rubyforge_project
|
|
30
|
+
name
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def gemspec_file
|
|
34
|
+
"#{name}.gemspec"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def gem_file
|
|
38
|
+
"#{name}-#{version}.gem"
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def replace_header(head, header_name)
|
|
42
|
+
head.sub!(/(\.#{header_name}\s*= ').*'/) { "#{$1}#{send(header_name)}'"}
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
############################
|
|
47
|
+
#
|
|
48
|
+
# Standard tasks
|
|
49
|
+
#
|
|
50
|
+
############################
|
|
51
|
+
|
|
52
|
+
task :default => [:test, :features]
|
|
53
|
+
|
|
54
|
+
require 'rake/testtask'
|
|
55
|
+
Rake::TestTask.new(:test) do |test|
|
|
56
|
+
test.libs << 'lib' << 'test'
|
|
57
|
+
test.pattern = 'test/**/test_*.rb'
|
|
58
|
+
test.verbose = true
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
desc "Generate RCov test coverage and open in your browser"
|
|
62
|
+
task :coverage do
|
|
63
|
+
require 'rcov'
|
|
64
|
+
sh "rm -fr coverage"
|
|
65
|
+
sh "rcov test/test_*.rb"
|
|
66
|
+
sh "open coverage/index.html"
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
require 'rdoc/task'
|
|
70
|
+
RDoc::Task.new do |rdoc|
|
|
71
|
+
rdoc.rdoc_dir = 'rdoc'
|
|
72
|
+
rdoc.title = "#{name} #{version}"
|
|
73
|
+
rdoc.rdoc_files.include('README*')
|
|
74
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
desc "Open an irb session preloaded with this library"
|
|
78
|
+
task :console do
|
|
79
|
+
sh "irb -rubygems -r ./lib/#{name}.rb"
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
############################
|
|
84
|
+
#
|
|
85
|
+
# Custom tasks
|
|
86
|
+
#
|
|
87
|
+
############################
|
|
88
|
+
|
|
89
|
+
namespace :migrate do
|
|
90
|
+
desc "Migrate from mephisto in the current directory"
|
|
91
|
+
task :mephisto do
|
|
92
|
+
sh %q(ruby -r './lib/jekyll/migrators/mephisto' -e 'Jekyll::Mephisto.postgres(:database => "#{ENV["DB"]}")')
|
|
93
|
+
end
|
|
94
|
+
desc "Migrate from Movable Type in the current directory"
|
|
95
|
+
task :mt do
|
|
96
|
+
sh %q(ruby -r './lib/jekyll/migrators/mt' -e 'Jekyll::MT.process("#{ENV["DB"]}", "#{ENV["USER"]}", "#{ENV["PASS"]}")')
|
|
97
|
+
end
|
|
98
|
+
desc "Migrate from Typo in the current directory"
|
|
99
|
+
task :typo do
|
|
100
|
+
sh %q(ruby -r './lib/jekyll/migrators/typo' -e 'Jekyll::Typo.process("#{ENV["DB"]}", "#{ENV["USER"]}", "#{ENV["PASS"]}")')
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
begin
|
|
105
|
+
require 'cucumber/rake/task'
|
|
106
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
|
107
|
+
t.cucumber_opts = "--format progress"
|
|
108
|
+
end
|
|
109
|
+
rescue LoadError
|
|
110
|
+
desc 'Cucumber rake task not available'
|
|
111
|
+
task :features do
|
|
112
|
+
abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
############################
|
|
118
|
+
#
|
|
119
|
+
# Packaging tasks
|
|
120
|
+
#
|
|
121
|
+
############################
|
|
122
|
+
|
|
123
|
+
desc "Push the gem to github repo"
|
|
124
|
+
task :release => :build do
|
|
125
|
+
unless `git branch` =~ /^\* master$/
|
|
126
|
+
puts "You must be on the master branch to release!"
|
|
127
|
+
exit!
|
|
128
|
+
end
|
|
129
|
+
sh "git commit --allow-empty -a -m 'Release #{version}'"
|
|
130
|
+
sh "git tag v#{version}"
|
|
131
|
+
sh "git push origin master"
|
|
132
|
+
sh "git push origin v#{version}"
|
|
133
|
+
sh "gem push pkg/#{name}-#{version}.gem"
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
desc "Build the .gem file"
|
|
137
|
+
task :build => :gemspec do
|
|
138
|
+
sh "mkdir -p pkg"
|
|
139
|
+
sh "gem build #{gemspec_file}"
|
|
140
|
+
sh "mv #{gem_file} pkg"
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
desc "Automatic update the gemspec file"
|
|
144
|
+
task :gemspec do
|
|
145
|
+
# read spec file and split out manifest section
|
|
146
|
+
spec = File.read(gemspec_file)
|
|
147
|
+
head, manifest, tail = spec.split(" # = MANIFEST =\n")
|
|
148
|
+
|
|
149
|
+
# replace name version and date
|
|
150
|
+
replace_header(head, :name)
|
|
151
|
+
replace_header(head, :version)
|
|
152
|
+
replace_header(head, :date)
|
|
153
|
+
#comment this out if your rubyforge_project has a different name
|
|
154
|
+
#replace_header(head, :rubyforge_project)
|
|
155
|
+
|
|
156
|
+
# determine file list from git ls-files
|
|
157
|
+
files = `git ls-files`.
|
|
158
|
+
split("\n").
|
|
159
|
+
sort.
|
|
160
|
+
reject { |file| file =~ /^\./ }.
|
|
161
|
+
reject { |file| file =~ /^(rdoc|pkg|coverage)/ }.
|
|
162
|
+
map { |file| " #{file}" }.
|
|
163
|
+
join("\n")
|
|
164
|
+
|
|
165
|
+
# piece file back together and write
|
|
166
|
+
manifest = " s.files = %w[\n#{files}\n ]\n"
|
|
167
|
+
spec = [head, manifest, tail].join(" # = MANIFEST =\n")
|
|
168
|
+
File.open(gemspec_file, 'w') { |io| io.write(spec) }
|
|
169
|
+
puts "Updated #{gemspec_file}"
|
|
170
|
+
end
|
data/hakii.gemspec
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
Gem::Specification.new do |s|
|
|
4
|
+
s.name = 'hakii'
|
|
5
|
+
s.version = '0.0.1'
|
|
6
|
+
s.platform = Gem::Platform::RUBY
|
|
7
|
+
s.authors = ["Andor"]
|
|
8
|
+
s.email = ["andor.chen.27@gmail.com"]
|
|
9
|
+
s.homepage = "http://about.ac"
|
|
10
|
+
s.summary = "Yet another simple and stupid static site generator."
|
|
11
|
+
s.description = "Hakii is a simple and stupid static site generator."
|
|
12
|
+
#s.rubyforge_project = s.name
|
|
13
|
+
|
|
14
|
+
s.required_rubygems_version = ">= 1.3.6"
|
|
15
|
+
|
|
16
|
+
# If you have runtime dependencies, add them here
|
|
17
|
+
# s.add_runtime_dependency "other", "~> 1.2"
|
|
18
|
+
|
|
19
|
+
# If you have development dependencies, add them here
|
|
20
|
+
s.add_development_dependency "rdoc", ">= 2.4.2"
|
|
21
|
+
|
|
22
|
+
# = MANIFEST =
|
|
23
|
+
s.files = %w[
|
|
24
|
+
Gemfile
|
|
25
|
+
LICENSE
|
|
26
|
+
README.markdown
|
|
27
|
+
Rakefile
|
|
28
|
+
hakii.gemspec
|
|
29
|
+
lib/hakii.rb
|
|
30
|
+
]
|
|
31
|
+
# = MANIFEST =
|
|
32
|
+
|
|
33
|
+
# s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
|
|
34
|
+
|
|
35
|
+
# s.extensions = `git ls-files ext/extconf.rb`.split("\n")
|
|
36
|
+
|
|
37
|
+
s.require_path = %w[lib]
|
|
38
|
+
|
|
39
|
+
# For C extensions
|
|
40
|
+
# s.extensions = "ext/extconf.rb"
|
|
41
|
+
end
|
data/lib/hakii.rb
ADDED
metadata
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: hakii
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
prerelease:
|
|
5
|
+
version: 0.0.1
|
|
6
|
+
platform: ruby
|
|
7
|
+
authors:
|
|
8
|
+
- Andor
|
|
9
|
+
autorequire:
|
|
10
|
+
bindir: bin
|
|
11
|
+
cert_chain: []
|
|
12
|
+
|
|
13
|
+
date: 2011-08-29 00:00:00 +08:00
|
|
14
|
+
default_executable:
|
|
15
|
+
dependencies:
|
|
16
|
+
- !ruby/object:Gem::Dependency
|
|
17
|
+
name: rdoc
|
|
18
|
+
prerelease: false
|
|
19
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
20
|
+
none: false
|
|
21
|
+
requirements:
|
|
22
|
+
- - ">="
|
|
23
|
+
- !ruby/object:Gem::Version
|
|
24
|
+
version: 2.4.2
|
|
25
|
+
type: :development
|
|
26
|
+
version_requirements: *id001
|
|
27
|
+
description: Hakii is a simple and stupid static site generator.
|
|
28
|
+
email:
|
|
29
|
+
- andor.chen.27@gmail.com
|
|
30
|
+
executables: []
|
|
31
|
+
|
|
32
|
+
extensions: []
|
|
33
|
+
|
|
34
|
+
extra_rdoc_files: []
|
|
35
|
+
|
|
36
|
+
files:
|
|
37
|
+
- Gemfile
|
|
38
|
+
- LICENSE
|
|
39
|
+
- README.markdown
|
|
40
|
+
- Rakefile
|
|
41
|
+
- hakii.gemspec
|
|
42
|
+
- lib/hakii.rb
|
|
43
|
+
has_rdoc: true
|
|
44
|
+
homepage: http://about.ac
|
|
45
|
+
licenses: []
|
|
46
|
+
|
|
47
|
+
post_install_message:
|
|
48
|
+
rdoc_options: []
|
|
49
|
+
|
|
50
|
+
require_paths:
|
|
51
|
+
- - lib
|
|
52
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
53
|
+
none: false
|
|
54
|
+
requirements:
|
|
55
|
+
- - ">="
|
|
56
|
+
- !ruby/object:Gem::Version
|
|
57
|
+
version: "0"
|
|
58
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
59
|
+
none: false
|
|
60
|
+
requirements:
|
|
61
|
+
- - ">="
|
|
62
|
+
- !ruby/object:Gem::Version
|
|
63
|
+
version: 1.3.6
|
|
64
|
+
requirements: []
|
|
65
|
+
|
|
66
|
+
rubyforge_project:
|
|
67
|
+
rubygems_version: 1.6.2
|
|
68
|
+
signing_key:
|
|
69
|
+
specification_version: 3
|
|
70
|
+
summary: Yet another simple and stupid static site generator.
|
|
71
|
+
test_files: []
|
|
72
|
+
|