memorack 0.2.0 → 0.2.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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +5 -0
- data/VERSION +1 -1
- data/lib/memorack/cli.rb +7 -4
- data/lib/memorack/core.rb +14 -1
- data/memorack.gemspec +2 -2
- data/spec/memorack_spec.rb +72 -58
- data/spec/spec_helper.rb +1 -1
- metadata +7 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 827dc521c8e16aa7f5f7689e32d91a0fc1918d57
|
4
|
+
data.tar.gz: b1cdbfa7c2a0674fe02b0279d62dcf6d9fa8d2f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 032bb4527d6c6f494b47a6eb0476660721e1d7d1e8f1421414d43afb37d07e5b0b3101cbc0f56e7f38057173ae1ec50eb03002b469e6fe9919d3186c77eb87bb
|
7
|
+
data.tar.gz: bd75dbffa43ac28389a3243c6c1403bb746519a8e4f6112edd81b005bf3ce2f2995847a34eef9f8850549d5b17bac871431594a2fb97e4bf49679a63ba33a475
|
data/.gitignore
CHANGED
data/.travis.yml
ADDED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.1
|
data/lib/memorack/cli.rb
CHANGED
@@ -51,6 +51,7 @@ module MemoRack
|
|
51
51
|
def i18n_init
|
52
52
|
I18n.load_path = Dir[File.expand_path('../locales/*.yml', __FILE__)]
|
53
53
|
I18n.backend.load_translations
|
54
|
+
I18n.enforce_available_locales = false
|
54
55
|
|
55
56
|
locale = ENV['LANG'][0, 2].to_sym if ENV['LANG']
|
56
57
|
I18n.locale = locale if I18n.available_locales.include?(locale)
|
@@ -65,7 +66,7 @@ module MemoRack
|
|
65
66
|
# ディレクトリを繰返す
|
66
67
|
def dir_earch(dir, match = '**/*', flag = File::FNM_DOTMATCH)
|
67
68
|
Dir.chdir(dir) { |d|
|
68
|
-
Dir.glob(match, flag).each { |file|
|
69
|
+
Dir.glob(match, flag).sort.each { |file|
|
69
70
|
next if File.basename(file) =~ /^[.]{1,2}$/
|
70
71
|
file = File.join(file, '') if File.directory?(file)
|
71
72
|
yield(file)
|
@@ -79,9 +80,11 @@ module MemoRack
|
|
79
80
|
|
80
81
|
puts "#{domain}:"
|
81
82
|
|
82
|
-
Dir.
|
83
|
-
|
84
|
-
|
83
|
+
Dir.open(themes) { |dir|
|
84
|
+
dir.sort.each { |file|
|
85
|
+
next if /^\./ =~ file
|
86
|
+
puts " #{file}"
|
87
|
+
}
|
85
88
|
}
|
86
89
|
end
|
87
90
|
|
data/lib/memorack/core.rb
CHANGED
@@ -5,6 +5,7 @@ require 'pathname'
|
|
5
5
|
require 'rubygems'
|
6
6
|
require 'i18n'
|
7
7
|
|
8
|
+
require 'mustache'
|
8
9
|
require 'memorack/tilt-mustache'
|
9
10
|
require 'memorack/mdmenu'
|
10
11
|
require 'memorack/locals'
|
@@ -74,6 +75,7 @@ module MemoRack
|
|
74
75
|
# ロケールの読込み
|
75
76
|
I18n.load_path = @locale_paths
|
76
77
|
I18n.backend.load_translations
|
78
|
+
I18n.enforce_available_locales = false
|
77
79
|
|
78
80
|
@requires.each { |lib| require lib }
|
79
81
|
@locals = default_locals(@options)
|
@@ -599,7 +601,18 @@ module MemoRack
|
|
599
601
|
# Tilt に登録されている拡張子を集める
|
600
602
|
def extnames(extname)
|
601
603
|
klass = Tilt[extname]
|
602
|
-
|
604
|
+
r = []
|
605
|
+
|
606
|
+
if Tilt.respond_to?(:mappings)
|
607
|
+
r |= Tilt.mappings.select { |key, value| value.member?(klass) }.collect { |key, value| key }
|
608
|
+
end
|
609
|
+
|
610
|
+
if Tilt.respond_to?(:default_mapping)
|
611
|
+
r |= Tilt.default_mapping.template_map.select { |key, value| value == klass }.collect { |key, value| key }
|
612
|
+
r |= Tilt.default_mapping.lazy_map.select { |key, value| value.assoc(klass.to_s) }.collect { |key, value| key }
|
613
|
+
end
|
614
|
+
|
615
|
+
r
|
603
616
|
end
|
604
617
|
|
605
618
|
# 対応フォーマットを取得する
|
data/memorack.gemspec
CHANGED
@@ -25,16 +25,16 @@ Gem::Specification.new do |gem|
|
|
25
25
|
gem.add_dependency('tilt')
|
26
26
|
gem.add_dependency('mustache')
|
27
27
|
gem.add_dependency('redcarpet', '>= 2.0.0')
|
28
|
-
gem.add_dependency('json')
|
29
28
|
gem.add_dependency('sass')
|
30
29
|
gem.add_dependency('i18n')
|
31
30
|
|
32
31
|
# for development
|
33
32
|
gem.add_development_dependency('bundler', '~> 1.3')
|
34
33
|
gem.add_development_dependency('rake')
|
35
|
-
gem.add_development_dependency('minitest')
|
34
|
+
gem.add_development_dependency('minitest', '~> 4.7') if Gem.ruby_version < Gem::Version.create('2.0')
|
36
35
|
gem.add_development_dependency('turn')
|
37
36
|
gem.add_development_dependency('rack-test')
|
37
|
+
gem.add_development_dependency('org-ruby')
|
38
38
|
|
39
39
|
gem.post_install_message = %Q{
|
40
40
|
==================
|
data/spec/memorack_spec.rb
CHANGED
@@ -3,7 +3,9 @@
|
|
3
3
|
require File.expand_path('../spec_helper', __FILE__)
|
4
4
|
require 'memorack'
|
5
5
|
require 'memorack/cli'
|
6
|
+
require 'time'
|
6
7
|
require 'cgi'
|
8
|
+
require 'set'
|
7
9
|
|
8
10
|
|
9
11
|
describe MemoRack do
|
@@ -60,16 +62,20 @@ describe MemoRack do
|
|
60
62
|
end
|
61
63
|
|
62
64
|
# git でパッチをあてる
|
63
|
-
def git_am(name)
|
65
|
+
def git_am(name, init = false)
|
66
|
+
FileUtils.remove_entry_secure('.git') if init && File.exists?('.git')
|
67
|
+
|
64
68
|
unless File.exists?('.git')
|
65
69
|
`git init`
|
70
|
+
`git config --local user.email "you@example.com"`
|
71
|
+
`git config --local user.name "Your Name"`
|
66
72
|
`git add .`
|
67
73
|
`git commit -m "first commit"`
|
68
74
|
end
|
69
75
|
|
70
76
|
path = File.expand_path("../patches/#{name}", __FILE__)
|
71
77
|
if File.directory?(path)
|
72
|
-
Dir[File.join(path, '*.patch')].each { |path|
|
78
|
+
Dir[File.join(path, '*.patch')].sort.each { |path|
|
73
79
|
`git am -3 "#{path}"`
|
74
80
|
}
|
75
81
|
else
|
@@ -78,6 +84,18 @@ describe MemoRack do
|
|
78
84
|
end
|
79
85
|
end
|
80
86
|
|
87
|
+
# ファイル構成が同じかチェックする
|
88
|
+
def must_files(path, files)
|
89
|
+
files = files.split("\n") if files.kind_of?(String)
|
90
|
+
|
91
|
+
Dir.chdir(path || '.') { |dir|
|
92
|
+
list = Dir.glob('**/*', File::FNM_DOTMATCH)
|
93
|
+
list.reject! { |item| item =~ %r[(^|/)\.{1,2}$] }
|
94
|
+
Set.new(list).must_equal Set.new(files)
|
95
|
+
}
|
96
|
+
end
|
97
|
+
|
98
|
+
|
81
99
|
before do
|
82
100
|
require 'tmpdir'
|
83
101
|
@tmpdir = Dir.mktmpdir
|
@@ -208,25 +226,24 @@ describe MemoRack do
|
|
208
226
|
|
209
227
|
Dir.chdir(@tmpdir) {
|
210
228
|
proc { memorack 'create', name }.must_output "Created '#{name}'\n"
|
211
|
-
|
212
|
-
.
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
./themes/custom/pages/.gitkeep
|
229
|
+
must_files name, <<-EOD.cut_indent
|
230
|
+
.gitignore
|
231
|
+
.powenv
|
232
|
+
config.ru
|
233
|
+
content
|
234
|
+
content/README.md
|
235
|
+
Gemfile
|
236
|
+
plugins
|
237
|
+
plugins/.gitkeep
|
238
|
+
themes
|
239
|
+
themes/custom
|
240
|
+
themes/custom/config.json
|
241
|
+
themes/custom/index.md
|
242
|
+
themes/custom/locales
|
243
|
+
themes/custom/locales/.gitkeep
|
244
|
+
themes/custom/macro.yml
|
245
|
+
themes/custom/pages
|
246
|
+
themes/custom/pages/.gitkeep
|
230
247
|
EOD
|
231
248
|
}
|
232
249
|
end
|
@@ -283,16 +300,15 @@ describe MemoRack do
|
|
283
300
|
chmemo { |name|
|
284
301
|
proc { memorack 'theme', '-c', theme }.must_output "Created 'themes/#{theme}'\n"
|
285
302
|
|
286
|
-
|
287
|
-
.
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
./index.html
|
303
|
+
must_files File.join('themes', theme), <<-EOD.cut_indent
|
304
|
+
404.md
|
305
|
+
config.json
|
306
|
+
css
|
307
|
+
css/2-column.scss
|
308
|
+
css/basic-styles.scss
|
309
|
+
css/styles.scss
|
310
|
+
error.html
|
311
|
+
index.html
|
296
312
|
EOD
|
297
313
|
}
|
298
314
|
end
|
@@ -316,13 +332,12 @@ describe MemoRack do
|
|
316
332
|
@theme = 'oreilly'
|
317
333
|
|
318
334
|
@file_lists = <<-EOD.cut_indent
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
./README.html
|
335
|
+
css
|
336
|
+
css/2-column.css
|
337
|
+
css/basic-styles.css
|
338
|
+
css/styles.css
|
339
|
+
index.html
|
340
|
+
README.html
|
326
341
|
EOD
|
327
342
|
end
|
328
343
|
|
@@ -334,7 +349,7 @@ describe MemoRack do
|
|
334
349
|
proc { memorack 'build' }.must_output "Build 'content/' -> '#{output}'\n"
|
335
350
|
|
336
351
|
Dir.chdir(output) { |output|
|
337
|
-
|
352
|
+
must_files nil, @file_lists
|
338
353
|
`git hash-object css/styles.css`.must_equal @hash[theme]+"\n"
|
339
354
|
}
|
340
355
|
}
|
@@ -354,7 +369,7 @@ describe MemoRack do
|
|
354
369
|
proc { memorack 'build', path }.must_output "Build '#{path}' -> '#{output}'\n"
|
355
370
|
|
356
371
|
Dir.chdir(output) { |output|
|
357
|
-
|
372
|
+
must_files nil, @file_lists
|
358
373
|
`git hash-object css/styles.css`.must_equal @hash[theme]+"\n"
|
359
374
|
}
|
360
375
|
}
|
@@ -368,7 +383,7 @@ describe MemoRack do
|
|
368
383
|
proc { memorack 'build', '--output', output }.must_output "Build 'content/' -> '#{output}'\n"
|
369
384
|
|
370
385
|
Dir.chdir(output) { |output|
|
371
|
-
|
386
|
+
must_files nil, @file_lists
|
372
387
|
`git hash-object css/styles.css`.must_equal @hash[theme]+"\n"
|
373
388
|
}
|
374
389
|
}
|
@@ -382,7 +397,7 @@ describe MemoRack do
|
|
382
397
|
proc { memorack 'build', '--theme', theme }.must_output "Build 'content/' -> '#{output}'\n"
|
383
398
|
|
384
399
|
Dir.chdir(output) { |output|
|
385
|
-
|
400
|
+
must_files nil, @file_lists
|
386
401
|
`git hash-object css/styles.css`.must_equal @hash[theme]+"\n"
|
387
402
|
}
|
388
403
|
}
|
@@ -397,7 +412,7 @@ describe MemoRack do
|
|
397
412
|
proc { memorack 'build', '--url', url }.must_output "Build 'content/' -> '#{output}'\n"
|
398
413
|
|
399
414
|
Dir.chdir(output) { |output|
|
400
|
-
|
415
|
+
must_files nil, @file_lists
|
401
416
|
`git hash-object css/styles.css`.must_equal @hash[theme]+"\n"
|
402
417
|
File.read('index.html').must_match %r[<a href="#{url}/README.html">MemoRack について</a>]
|
403
418
|
}
|
@@ -414,7 +429,7 @@ describe MemoRack do
|
|
414
429
|
proc { memorack 'build', '--local' }.must_output "Build 'content/' -> '#{output}'\n"
|
415
430
|
|
416
431
|
Dir.chdir(output) { |output|
|
417
|
-
|
432
|
+
must_files nil, @file_lists
|
418
433
|
`git hash-object css/styles.css`.must_equal @hash[theme]+"\n"
|
419
434
|
File.read('index.html').must_match %r[<a href="#{url}/README.html">MemoRack について</a>]
|
420
435
|
}
|
@@ -430,15 +445,14 @@ describe MemoRack do
|
|
430
445
|
proc { memorack 'build', '--prettify' }.must_output "Build 'content/' -> '#{output}'\n"
|
431
446
|
|
432
447
|
Dir.chdir(output) { |output|
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
./README/index.html
|
448
|
+
must_files nil, <<-EOD.cut_indent
|
449
|
+
css
|
450
|
+
css/2-column.css
|
451
|
+
css/basic-styles.css
|
452
|
+
css/styles.css
|
453
|
+
index.html
|
454
|
+
README
|
455
|
+
README/index.html
|
442
456
|
EOD
|
443
457
|
|
444
458
|
`git hash-object css/styles.css`.must_equal @hash[theme]+"\n"
|
@@ -482,16 +496,16 @@ describe MemoRack do
|
|
482
496
|
output = '_site'
|
483
497
|
|
484
498
|
chmemo { |name|
|
485
|
-
git_am 'git'
|
499
|
+
git_am 'git', true
|
486
500
|
proc { memorack 'build' }.must_output "Build 'content/' -> '#{output}'\n"
|
487
501
|
|
488
502
|
Dir.chdir(output) { |output|
|
489
|
-
ctime = '
|
490
|
-
mtime = '
|
503
|
+
ctime = Time.parse '2013-05-11 18:47:31 +0900'
|
504
|
+
mtime = Time.parse '2013-05-11 18:49:46 +0900'
|
491
505
|
|
492
506
|
history = File.read('HISTORY.html')
|
493
|
-
history.must_match /#{Regexp.escape ctime}/
|
494
|
-
history.must_match /#{Regexp.escape mtime}/
|
507
|
+
history.must_match /#{Regexp.escape "<div>作成時間:#{ctime}</div>"}/
|
508
|
+
history.must_match /#{Regexp.escape "<div>更新時間:#{mtime}</div>"}/
|
495
509
|
}
|
496
510
|
}
|
497
511
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: memorack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- gnue
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-12-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -66,20 +66,6 @@ dependencies:
|
|
66
66
|
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 2.0.0
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: json
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - '>='
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :runtime
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - '>='
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: sass
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,7 +123,7 @@ dependencies:
|
|
137
123
|
- !ruby/object:Gem::Version
|
138
124
|
version: '0'
|
139
125
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
126
|
+
name: turn
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
142
128
|
requirements:
|
143
129
|
- - '>='
|
@@ -151,7 +137,7 @@ dependencies:
|
|
151
137
|
- !ruby/object:Gem::Version
|
152
138
|
version: '0'
|
153
139
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
140
|
+
name: rack-test
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|
156
142
|
requirements:
|
157
143
|
- - '>='
|
@@ -165,7 +151,7 @@ dependencies:
|
|
165
151
|
- !ruby/object:Gem::Version
|
166
152
|
version: '0'
|
167
153
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
154
|
+
name: org-ruby
|
169
155
|
requirement: !ruby/object:Gem::Requirement
|
170
156
|
requirements:
|
171
157
|
- - '>='
|
@@ -187,6 +173,7 @@ extensions: []
|
|
187
173
|
extra_rdoc_files: []
|
188
174
|
files:
|
189
175
|
- .gitignore
|
176
|
+
- .travis.yml
|
190
177
|
- Gemfile
|
191
178
|
- HISTORY.md
|
192
179
|
- LICENSE.txt
|
@@ -267,7 +254,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
267
254
|
version: '0'
|
268
255
|
requirements: []
|
269
256
|
rubyforge_project:
|
270
|
-
rubygems_version: 2.0.
|
257
|
+
rubygems_version: 2.0.14
|
271
258
|
signing_key:
|
272
259
|
specification_version: 4
|
273
260
|
summary: Rack Application for markdown memo
|