easy-doc 1.0.0

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.
@@ -0,0 +1,93 @@
1
+ # easy-doc - Write a document easily
2
+
3
+ ## Requirements
4
+
5
+ * Ruby (I'm debugging in 1.9.1)
6
+ * rpeg-markdown
7
+
8
+ ## Install
9
+
10
+ __Not available yet. I'll push soon :)__
11
+
12
+ ### Using rubygem
13
+
14
+ gem install easy-doc
15
+
16
+ __NOTE:__ Gemcutter is needed.
17
+
18
+ ### Using git
19
+
20
+ git clone git://github.com/sorah/easy-doc.git
21
+
22
+ and write following line your shell's rc-file:
23
+
24
+ export RUBYLIB=/path/to/easy-doc/lib:$RUBYLIB
25
+
26
+ ## Usage
27
+
28
+ ### Simple
29
+
30
+ Simple directory structure:
31
+
32
+ doc/ -- documentation directory
33
+ mkd/ -- markdown directory
34
+ index.mkd -- index
35
+ index.ja.mkd -- index(ja)
36
+
37
+ and run following command in doc directory:
38
+
39
+ easy-doc mkd html
40
+
41
+ the easy-doc command render a markdown (in mkd directory) files to html directory.
42
+
43
+ And new directory structure:
44
+
45
+ doc/ -- documentation directory
46
+ mkd/ -- markdown directory
47
+ index.mkd -- index
48
+ index.ja.mkd -- index(ja)
49
+ checksums -- checksum data for re-rendering
50
+ html/ -- html directory. html is generate by easy-doc command.
51
+ index.html -- index(rendered)
52
+ index.ja.html -- index(rendered)
53
+
54
+ ## Licence
55
+
56
+ MIT Licence.
57
+
58
+ (c) Sora Harakami
59
+
60
+ >The MIT Licence {{{
61
+ >
62
+ >Permission is hereby granted, free of charge, to any person obtaining a copy
63
+ >of this software and associated documentation files (the "Software"), to deal
64
+ >in the Software without restriction, including without limitation the rights
65
+ >to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
66
+ >copies of the Software, and to permit persons to whom the Software is
67
+ >furnished to do so, subject to the following conditions:
68
+ >
69
+ >The above copyright notice and this permission notice shall be included in
70
+ >all copies or substantial portions of the Software.
71
+ >
72
+ >THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
73
+ >IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
74
+ >FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
75
+ >AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
76
+ >LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
77
+ >OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
78
+ >THE SOFTWARE.
79
+ >
80
+ >}}}
81
+
82
+ ## Develop
83
+
84
+ ### Requirements
85
+
86
+ * Ruby 1.8.7+
87
+ * RSpec
88
+
89
+ ### Usage
90
+
91
+ You can run spec by this command:
92
+
93
+ spec ./spec/easy_doc_spec.rb
@@ -0,0 +1,14 @@
1
+ begin
2
+ require 'jeweler'
3
+ Jeweler::Tasks.new do |gemspec|
4
+ gemspec.name = "easy-doc"
5
+ gemspec.summary = "Write a document easily"
6
+ gemspec.email = "sora134@gmail.com"
7
+ gemspec.homepage = "http://github.com/sorah/easy-doc"
8
+ gemspec.description = "Write a document easily. Write a document, run command to rendering."
9
+ gemspec.authors = ["Sora Harakami"]
10
+ gemspec.add_dependency 'rpeg-markdown'
11
+ end
12
+ rescue LoadError
13
+ puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
14
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.0.0
@@ -0,0 +1,57 @@
1
+ #!/usr/bin/env ruby
2
+ #-*- coding: utf-8 -*-
3
+ # vim: filetype=ruby
4
+ require File.dirname(__FILE__) + '/../lib/easy_doc.rb'
5
+
6
+ def show_help_and_exit
7
+ puts <<-EOH
8
+ Usage: #{$0} [--force] [--quiet] [--help] [-f] [-q] [-h] (MARKDOWN_DIR HTML_DIR|MARKDOWN_AND_HTML_DIR)
9
+
10
+ --force, -f | Force update
11
+ --quiet, -q | Don't put anything
12
+ --help ,-h | Show this message
13
+ MARKDOWN_AND_HTML_DIR | Read markdown file and export html file here.
14
+ MARKDOWN_DIR | Read markdown files from here.
15
+ HTML_DIR | Export html files here.
16
+ EOH
17
+ exit
18
+ end
19
+
20
+ def option_loop(arg,options={})
21
+ case arg
22
+ when '--force','-f'
23
+ options[:force] = true
24
+ when '--quiet','-q'
25
+ options[:quiet] = true
26
+ when '--help' ,'-h', nil
27
+ show_help_and_exit
28
+ else
29
+ if options[:mkd_dir].nil?
30
+ options[:mkd_dir] = arg
31
+ abort "ERROR: markdown dir not exist!" unless File.exist?(options[:mkd_dir])
32
+ elsif options[:html_dir].nil?
33
+ options[:html_dir] = arg
34
+ end
35
+ end
36
+
37
+ na = ARGV.shift
38
+ unless na.nil? # loop
39
+ option_loop(na,options)
40
+ else # exit loop
41
+ unless options[:mkd_dir]
42
+ abort "ERROR: markdown dir not specified."
43
+ end
44
+ options[:html_dir] = options[:mkd_dir] unless options[:html_dir]
45
+ options
46
+ end
47
+ end
48
+
49
+ # kick loop
50
+ o = option_loop(ARGV.shift,
51
+ {
52
+ :force => false,
53
+ :quiet => false
54
+ })
55
+ # Run
56
+ e = EasyDoc.new(o[:mkd_dir],o[:html_dir])
57
+ e.render(o[:quiet],o[:force])
@@ -0,0 +1,51 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{easy-doc}
8
+ s.version = "1.0.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Sora Harakami"]
12
+ s.date = %q{2010-03-17}
13
+ s.default_executable = %q{easy-doc}
14
+ s.description = %q{Write a document easily. Write a document, run command to rendering.}
15
+ s.email = %q{sora134@gmail.com}
16
+ s.executables = ["easy-doc"]
17
+ s.extra_rdoc_files = [
18
+ "README.mkd"
19
+ ]
20
+ s.files = [
21
+ "README.mkd",
22
+ "Rakefile",
23
+ "VERSION",
24
+ "bin/easy-doc",
25
+ "easy-doc.gemspec",
26
+ "lib/easy_doc.rb",
27
+ "spec/easy_doc_spec.rb"
28
+ ]
29
+ s.homepage = %q{http://github.com/sorah/easy-doc}
30
+ s.rdoc_options = ["--charset=UTF-8"]
31
+ s.require_paths = ["lib"]
32
+ s.rubygems_version = %q{1.3.5}
33
+ s.summary = %q{Write a document easily}
34
+ s.test_files = [
35
+ "spec/easy_doc_spec.rb"
36
+ ]
37
+
38
+ if s.respond_to? :specification_version then
39
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
40
+ s.specification_version = 3
41
+
42
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
43
+ s.add_runtime_dependency(%q<rpeg-markdown>, [">= 0"])
44
+ else
45
+ s.add_dependency(%q<rpeg-markdown>, [">= 0"])
46
+ end
47
+ else
48
+ s.add_dependency(%q<rpeg-markdown>, [">= 0"])
49
+ end
50
+ end
51
+
@@ -0,0 +1,288 @@
1
+ #
2
+ # easy-doc
3
+ # Author: Sora Harakami
4
+ # Licence: MIT Licence
5
+ # The MIT Licence {{{
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in
14
+ # all copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ # THE SOFTWARE.
23
+ # }}}
24
+ #
25
+ require 'rubygems'
26
+ require 'markdown' # rpeg-markdown
27
+ require 'yaml'
28
+ require 'digest/md5'
29
+ require 'erb'
30
+ require 'pathname'
31
+ require 'fileutils'
32
+
33
+ class EasyDoc
34
+ class MakeDirectoryError < Exception; end
35
+
36
+ def initialize(mkd_path,html_path)
37
+ raise ArgumentError, 'mkd_path is invalid' unless File.directory?(mkd_path) && html_path.kind_of?(String)
38
+ raise ArgumentError, 'html_path is invalid' unless html_path.kind_of?(String)
39
+ @mkd_path = File.expand_path(mkd_path ).gsub(/\/$/,"")
40
+ @html_path = File.expand_path(html_path).gsub(/\/$/,"")
41
+ init_config
42
+ end
43
+
44
+ def init_config
45
+ @config = { #Default config
46
+ :default_lang => "default"
47
+ }
48
+ @changed_config = changed_config
49
+ @config.merge!(load_config)
50
+ end
51
+
52
+ def render(quiet=true,force=false)
53
+ puts "Checking changed markdown files..." unless quiet
54
+ f = (force || @changed_config.include?(:default_lang)) ? markdown_files : changed_markdown_files
55
+ f.each do |n|
56
+ puts "Rendering: #{n}" unless quiet
57
+ render_file(n)
58
+ end
59
+ self
60
+ end
61
+
62
+ def layout
63
+ if File.exist?("#{@mkd_path}/layout.erb")
64
+ File.read("#{@mkd_path}/layout.erb")
65
+ else
66
+ ### Default layout ###
67
+ return <<-EOB
68
+ <html>
69
+ <head>
70
+ <title><%= title %></title>
71
+ <style type="text/css">
72
+ body {
73
+ font-family: sans-serif;
74
+ font-size: 18px;
75
+ }
76
+
77
+ h1 { font-size: 28px; }
78
+ h2 { font-size: 26px; }
79
+ h3 { font-size: 24px; }
80
+ h4 { font-size: 22px; }
81
+ h5 { font-size: 20px; }
82
+ h6 { font-size: 17px; }
83
+
84
+ .header {
85
+ padding-bottom: 10px;
86
+ border-bottom: 1px solid gray;
87
+ margin-bottom: 10px;
88
+ }
89
+
90
+ .lang_bar {
91
+ text-align: right;
92
+ font-size: 13px;
93
+ }
94
+
95
+ .title {
96
+ font-size: 24px;
97
+ margin-top: 5px;
98
+ }
99
+ </style>
100
+ </head>
101
+ <body>
102
+ <!-- Document rendered by easy_doc http://github.com/sorah/easy-doc -->
103
+ <div class="header">
104
+ <div class="lang_bar">
105
+ <%= lang_bar %>
106
+ </div>
107
+ <!--<div class="title"><%= title %></div>-->
108
+ </div>
109
+ <div class="doc_body">
110
+ <%= body %>
111
+ </div>
112
+ </body>
113
+ </html>
114
+ EOB
115
+ ######### End #########
116
+ end
117
+ end
118
+
119
+ def markdown_files(lp=true)
120
+ Dir.glob("#{@mkd_path}/**/*.mkd").map{|x| lp ? mkd_local_path(x) : x }
121
+ end
122
+
123
+ def delete_htmls(quiet=true)
124
+ fs = deleted_markdown_files
125
+ fs.each do |f|
126
+ h = f.gsub(/\.mkd$/,'.html')
127
+ puts "Removing: #{h}" unless quiet
128
+ FileUtils.remove(html_expand_path(h))
129
+ end
130
+ end
131
+
132
+ attr_reader :config
133
+
134
+ private
135
+
136
+ def html_create_dir(p)
137
+ FileUtils.mkdir_p(html_expand_path(p).gsub(/\/[^\/]+$/,""))
138
+ end
139
+
140
+ def render_file(f,force_other_lang=false)
141
+ mkd = File.read(mkd_expand_path(f))
142
+ title = mkd.scan(/^# (.+)/).flatten[0]
143
+ body = Markdown.new(mkd).to_html
144
+ body.gsub!(/<a href="(.+)">/) do |s|
145
+ u = $1
146
+ nu =
147
+ if /^\// =~ u
148
+ Pathname(mkd_expand_path(u)) \
149
+ .relative_path_from( \
150
+ Pathname(mkd_expand_path(File.dirname(f)
151
+ .gsub(/\/\.$/,'')))).to_s \
152
+ .gsub(/\.mkd$/,'.html')
153
+ else
154
+ u
155
+ end
156
+ "<a href='#{nu}'>"
157
+ end
158
+ t = File.basename(f)
159
+ lang_bar_ary = []
160
+ unless force_other_lang
161
+ Dir.glob("#{mkd_expand_path(File.dirname(f))}/*.mkd") \
162
+ .delete_if{|m| mkd_local_path(m) == f ||
163
+ /^#{Regexp.escape(t.gsub(/\..*mkd/,""))}/ !~ mkd_local_path(m)} \
164
+ .each do |m|
165
+ render_file(mkd_local_path(m),true)
166
+ end
167
+ end
168
+ Dir.glob("#{mkd_expand_path(File.dirname(f))}/*.mkd") \
169
+ .map{|m| File.basename(m) } \
170
+ .delete_if{|m| /^#{Regexp.escape(t.gsub(/\..*mkd/,""))}/ !~ m}.each do |m|
171
+ la = m.scan(/(\..+)?\.mkd$/).flatten
172
+ l = la.include?(nil) ? @config[:default_lang] : la[0].gsub(/^\./,"")
173
+ ls = ""
174
+ unless t == m
175
+ ls += '<a href="'
176
+ ls += m.gsub(/\.mkd/,".html")
177
+ ls += '">'
178
+ end
179
+ ls += l
180
+ unless t == m
181
+ ls += '</a>'
182
+ end
183
+ lang_bar_ary << ls
184
+ end
185
+ lang_bar = lang_bar_ary.join(' | ')
186
+ hl = f.gsub(/\.mkd$/,'.html')
187
+
188
+ html_create_dir(hl)
189
+ open(html_expand_path(hl),'w') do |f|
190
+ f.puts ERB.new(layout()).result(binding)
191
+ end
192
+ end
193
+
194
+ def calcuate_checksums
195
+ a = markdown_files(false)
196
+ h = {}
197
+ a.each do |f|
198
+ h[mkd_local_path(f)] = Digest::MD5.new.update(File.read(f)).to_s
199
+ end
200
+ h
201
+ end
202
+
203
+ def save_checksums(h=nil)
204
+ if h.nil?
205
+ h = calcuate_checksums
206
+ end
207
+ open("#{@mkd_path}/.easy-doc_checksums",'w') do |f|
208
+ f.puts h.to_yaml
209
+ end
210
+ self
211
+ end
212
+
213
+ def load_checksums
214
+ if File.exist?("#{@mkd_path}/.easy-doc_checksums")
215
+ YAML.load_file("#{@mkd_path}/.easy-doc_checksums")
216
+ else
217
+ {}
218
+ end
219
+ end
220
+
221
+
222
+ def mkd_local_path(path)
223
+ path.gsub(/^#{Regexp.escape(@mkd_path)}\//,'').gsub(/^\.\//,"")
224
+ end
225
+
226
+ def mkd_expand_path(path)
227
+ @mkd_path + '/' + path.gsub(/^\//,'')
228
+ end
229
+
230
+ def html_local_path(path)
231
+ path.gsub(/^#{Regexp.escape(@html_path)}\//,'')
232
+ end
233
+
234
+ def html_expand_path(path)
235
+ @html_path + '/' + path.gsub(/^\//,'')
236
+ end
237
+
238
+ def changed_markdown_files(sv=true)
239
+ n = calcuate_checksums
240
+ o = load_checksums
241
+ r = []
242
+ n.each do |f,c| # exists file
243
+ if o[f] != c
244
+ r << f
245
+ end
246
+ end
247
+ save_checksums(n) if sv
248
+ @changed_config.include?(:default_lang) ? markdown_files : r + (n.keys - o.keys)
249
+ end
250
+
251
+ def old_load_config
252
+ h = {}
253
+ if File.exist?(mkd_expand_path('.bup_config.yml'))
254
+ YAML.load_file(mkd_expand_path('.bup_config.yml')).each do |k,v|
255
+ h[k.to_sym] = v
256
+ end
257
+ end
258
+ h
259
+ end
260
+
261
+ def changed_config
262
+ o = old_load_config
263
+ n = load_config(false)
264
+ a = []
265
+ n.each do |k,v|
266
+ a << k unless v == o[k]
267
+ end
268
+ a
269
+ end
270
+
271
+ def load_config(s=true)
272
+ h = {}
273
+ if File.exist?(mkd_expand_path('config.yml'))
274
+ YAML.load_file(mkd_expand_path('config.yml')).each do |k,v|
275
+ h[k.to_sym] = v
276
+ end
277
+ FileUtils.copy(mkd_expand_path('config.yml'),mkd_expand_path('.bup_config.yml')) if s
278
+ end
279
+ h
280
+ end
281
+
282
+ def deleted_markdown_files(sv=false)
283
+ n = calcuate_checksums
284
+ o = load_checksums
285
+ save_checksums(n) if sv
286
+ o.keys - n.keys
287
+ end
288
+ end
@@ -0,0 +1,139 @@
1
+ require File.dirname(__FILE__) + '/../lib/easy_doc.rb'
2
+ require 'tmpdir'
3
+ require 'fileutils'
4
+ require 'thread'
5
+
6
+ describe EasyDoc do
7
+ before(:all) do
8
+ @mpath = Dir.mktmpdir("easy_doc_spec_mkd" )
9
+ @hpath = Dir.mktmpdir("easy_doc_spec_html")
10
+ open(@mpath+'/index.mkd','w') {|f| f.puts "# hi" }
11
+ end
12
+
13
+ before do
14
+ @e = EasyDoc.new(@mpath,@hpath)
15
+ end
16
+
17
+ describe '#markdown_files' do
18
+ it 'take markdown files' do
19
+ @e.markdown_files.should include('index.mkd')
20
+ end
21
+ end
22
+
23
+ describe '#init_config' do
24
+ it 'reload config' do
25
+ open(@mpath+"/config.yml",'w') do |f|
26
+ f.puts 'piyo: foobar'
27
+ end
28
+ @e.init_config
29
+ @e.config[:piyo].should == 'foobar'
30
+ end
31
+ end
32
+
33
+ describe '#render' do
34
+ it 'render markdown file' do
35
+ @e.render
36
+ File.exist?(@hpath+'/index.html').should be_true
37
+ File.read(@hpath+'/index.html').should match('<h1>hi</h1>')
38
+ end
39
+
40
+ it 'must save checksums' do
41
+ File.exist?(@mpath+'/.easy-doc_checksums').should be_true
42
+ end
43
+
44
+ it 'must not render not edited markdown file' do
45
+ t = File.mtime("#{@hpath}/index.html")
46
+ sleep 1 # TODO: Refactoring this.
47
+ @e.render
48
+ t.should == File.mtime("#{@hpath}/index.html")
49
+ end
50
+
51
+ it 're-render edited markdown files' do
52
+ open(@mpath+'/index.mkd','w') {|f| f.puts "# hi\n\n('.v.')" }
53
+ @e.render
54
+ File.read(@hpath+'/index.html').should match("<p>\\('\\.v\\.'\\)</p>")
55
+ end
56
+
57
+ it 'force render' do
58
+ t = File.mtime("#{@hpath}/index.html")
59
+ sleep 1 # TODO: Refactoring this.
60
+ @e.render(true,true)
61
+ t.should < File.mtime("#{@hpath}/index.html")
62
+ end
63
+
64
+ it 'render with layout file' do
65
+ open(@mpath+'/layout.erb','w') do |f|
66
+ f.puts <<-EOF
67
+ <html>
68
+ <body>
69
+ ^q^<br>
70
+ <%=body%>
71
+ </body>
72
+ </html>
73
+ EOF
74
+ end
75
+ @e.render(true,true)
76
+ File.read(@hpath+'/index.html').should match("\\^q\\^")
77
+ FileUtils.rm(@mpath+'/layout.erb')
78
+ end
79
+
80
+ it 'put messages' do
81
+ g, $stdout = IO.pipe
82
+ t = Thread.new do
83
+ ["Checking changed markdown files","Rendering: index.mkd"].each do |m|
84
+ s = g.gets
85
+ s.should match(m)
86
+ end
87
+ end
88
+ @e.render(false,true)
89
+ t.join
90
+ $stdout = STDOUT
91
+ end
92
+
93
+ it 'render multiple languages' do
94
+ open(@mpath+'/index.ja.mkd','w') do |f|
95
+ f.puts "# Konnnitiha."
96
+ end
97
+ @e.render
98
+ File.read(@hpath+'/index.ja.html').should match('<a href="index.html">default</a>')
99
+ File.read(@hpath+'/index.html').should match('<a href="index.ja.html">ja</a>')
100
+ end
101
+
102
+ it 'set default languages' do
103
+ open(@mpath+'/config.yml','w') do |f|
104
+ f.puts "default_lang: en"
105
+ end
106
+ @e.init_config
107
+ @e.render
108
+ File.read(@hpath+'/index.ja.html').should match('<a href="index.html">en</a>')
109
+ File.read(@hpath+'/index.html').should match('en')
110
+ end
111
+
112
+ it 'generate relative path in <a>' do
113
+ Dir.mkdir(@mpath+'/foo').should == 0
114
+ File.exist?(@mpath+'/foo').should be_true
115
+ open(@mpath+'/foo/bar.mkd','w') do |f|
116
+ f.puts "# Foo\n\n# bar\n\n cool"
117
+ end
118
+ open(@mpath+'/index.mkd','w') {|f| f.puts "# hi\n\n[foobar!](/foo/bar.mkd)" }
119
+ @e.render(true,true)
120
+ File.read(@hpath+'/index.html').should match("<a href='foo/bar.html'>")
121
+ end
122
+ end
123
+
124
+ describe '#delete_htmls' do
125
+ it 'deletes deleted markdown file\'s html' do
126
+ open(@mpath+'/hoge.mkd','w') {|f| f.puts "# hi"}
127
+ @e.render
128
+ File.exist?(@hpath+'/hoge.html').should be_true
129
+ FileUtils.remove(@mpath+'/hoge.mkd')
130
+ @e.delete_htmls
131
+ File.exist?(@hpath+'/hoge.html').should be_false
132
+ end
133
+ end
134
+
135
+ after(:all) do
136
+ FileUtils.remove_entry_secure @mpath
137
+ FileUtils.remove_entry_secure @hpath
138
+ end
139
+ end
metadata ADDED
@@ -0,0 +1,70 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: easy-doc
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Sora Harakami
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-03-17 00:00:00 +09:00
13
+ default_executable: easy-doc
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rpeg-markdown
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ description: Write a document easily. Write a document, run command to rendering.
26
+ email: sora134@gmail.com
27
+ executables:
28
+ - easy-doc
29
+ extensions: []
30
+
31
+ extra_rdoc_files:
32
+ - README.mkd
33
+ files:
34
+ - README.mkd
35
+ - Rakefile
36
+ - VERSION
37
+ - bin/easy-doc
38
+ - easy-doc.gemspec
39
+ - lib/easy_doc.rb
40
+ - spec/easy_doc_spec.rb
41
+ has_rdoc: true
42
+ homepage: http://github.com/sorah/easy-doc
43
+ licenses: []
44
+
45
+ post_install_message:
46
+ rdoc_options:
47
+ - --charset=UTF-8
48
+ require_paths:
49
+ - lib
50
+ required_ruby_version: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: "0"
55
+ version:
56
+ required_rubygems_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: "0"
61
+ version:
62
+ requirements: []
63
+
64
+ rubyforge_project:
65
+ rubygems_version: 1.3.5
66
+ signing_key:
67
+ specification_version: 3
68
+ summary: Write a document easily
69
+ test_files:
70
+ - spec/easy_doc_spec.rb