memorack 0.0.4 → 0.1.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.
@@ -3,6 +3,7 @@
3
3
  "css": ["scss"], // css の自動変換を使用する
4
4
  // "markdown": "kramdown", // 使用する markdownライブラリ
5
5
  // "formats": ["markdown"], // "markdown", "rdoc", "textile" or "wiki" (要 Tilt に対応した gem ライブラリ)
6
+ "public": ["css/"], // build で出力されるファイル
6
7
 
7
8
  // redcarpet の拡張構文
8
9
  "strikethrough": true, // 例: ~~good~~
@@ -12,15 +12,15 @@
12
12
  <meta name="description" content="" />
13
13
  <title>{{page.title}}</title>
14
14
 
15
- <link type="text/css" href="/styles.css" rel="stylesheet" media="all" />
15
+ <link type="text/css" href="{{site.url}}/css/styles.css" rel="stylesheet" media="all" />
16
16
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
17
17
  <script type="text/javascript">
18
18
  $(function(){
19
19
  // 表示しているメニューを選択
20
- $('#menu a[href="' + document.location.pathname + '"]').parent().addClass('selected');
20
+ $('#menu a[href$="' + document.location.pathname + '"]').parent().addClass('selected');
21
21
 
22
22
  // 外部サイトのリンクに target='_blank' を追加
23
- $('a[href^=http]').not('[href*=":' + location.hostname + '"]').attr('target', '_blank');
23
+ $('a[href^=http]').not('[href*="://' + location.hostname + '"]').attr('target', '_blank');
24
24
  });
25
25
  </script>
26
26
 
@@ -28,7 +28,7 @@
28
28
  <body>
29
29
  <div id="page">
30
30
  <header>
31
- <h1><a href="/">{{title}}</a></h1>
31
+ <h1><a href="{{site.url}}/">{{title}}</a></h1>
32
32
  </header>
33
33
 
34
34
  <div id="content-container">
@@ -1,7 +1,7 @@
1
1
  @charset "utf-8";
2
2
 
3
- @import "../basic/styles";
4
- @import "oreilly/styles";
3
+ @import "../../basic/css/styles";
4
+ @import "../oreilly/styles";
5
5
 
6
6
  //@include theme-color(#cc0099);
7
7
 
@@ -1,6 +1,26 @@
1
1
  module MemoRack
2
- LONG_VERSION = File.read(File.expand_path('../../../VERSION', __FILE__)).chomp
3
- VERSION = LONG_VERSION.gsub(/(-.*|\(.*)$/, '')
4
-
5
2
  HOMEPAGE = 'https://github.com/gnue/memorack'
3
+
4
+ begin
5
+ dir = File.expand_path('../../..', __FILE__)
6
+ version = File.read(File.join(dir, 'VERSION')).chomp
7
+ revision = File.read(File.join(dir, 'REVISION')).chomp.split('/')
8
+
9
+ case revision.first
10
+ when /^#{version}(-|$)/
11
+ ver, rev = revision
12
+ else
13
+ version += 'dev'
14
+ ver = version
15
+
16
+ revision.delete('')
17
+ rev = revision.join('/')
18
+ end
19
+
20
+ rescue
21
+ ver = version
22
+ end
23
+
24
+ VERSION = version
25
+ LONG_VERSION = ver + (rev ? "(#{rev})" : '')
6
26
  end
@@ -11,8 +11,9 @@ Gem::Specification.new do |gem|
11
11
  gem.description = %q{Rack Application for markdown memo}
12
12
  gem.summary = %q{Rack Application for markdown memo}
13
13
  gem.homepage = MemoRack::HOMEPAGE
14
+ gem.license = "MIT"
14
15
 
15
- gem.files = `git ls-files`.split($/) + %w(VERSION)
16
+ gem.files = `git ls-files`.split($/) + %w(REVISION)
16
17
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
19
  gem.require_paths = ["lib"]
@@ -29,8 +30,11 @@ Gem::Specification.new do |gem|
29
30
  gem.add_dependency('i18n')
30
31
 
31
32
  # for development
33
+ gem.add_development_dependency('bundler', '~> 1.3')
34
+ gem.add_development_dependency('rake')
32
35
  gem.add_development_dependency('minitest')
33
36
  gem.add_development_dependency('turn')
37
+ gem.add_development_dependency('rack-test')
34
38
 
35
39
  gem.post_install_message = %Q{
36
40
  ==================
@@ -61,6 +61,7 @@ describe MemoRack do
61
61
  Usage: memorack create [options] PATH
62
62
  memorack theme [options] [THEME]
63
63
  memorack server [options] PATH
64
+ memorack build [options] [PATH]
64
65
 
65
66
  -h, --help Show this message
66
67
  EOD
@@ -92,6 +93,19 @@ describe MemoRack do
92
93
  -h, --help Show this message
93
94
  EOD
94
95
  end
96
+
97
+ it "build" do
98
+ proc { memorack 'build', '-h' }.must_output nil, <<-EOD.cut_indent
99
+ Usage: memorack build [options] [PATH]
100
+
101
+ -o, --output DIRECTORY Output directory (default: _site)
102
+ -t, --theme THEME use THEME (default: custom)
103
+ --url URL Site URL (default: )
104
+ --local Site URL is output directory
105
+ --prettify prettify URL
106
+ -h, --help Show this message
107
+ EOD
108
+ end
95
109
  end
96
110
 
97
111
  describe "ja" do
@@ -104,6 +118,7 @@ describe MemoRack do
104
118
  Usage: memorack create [options] PATH
105
119
  memorack theme [options] [THEME]
106
120
  memorack server [options] PATH
121
+ memorack build [options] [PATH]
107
122
 
108
123
  -h, --help このメッセージを表示
109
124
  EOD
@@ -136,6 +151,19 @@ describe MemoRack do
136
151
  -h, --help このメッセージを表示
137
152
  EOD
138
153
  end
154
+
155
+ it "build" do
156
+ proc { memorack 'build', '-h' }.must_output nil, <<-EOD.cut_indent
157
+ Usage: memorack build [options] [PATH]
158
+
159
+ -o, --output DIRECTORY 出力するディレクトリ (省略値: _site)
160
+ -t, --theme THEME テーマを使う (省略値: custom)
161
+ --url URL サイトURL (省略値: )
162
+ --local サイトURLをアウトプットディレクトリにする
163
+ --prettify 綺麗なURLになるように生成する
164
+ -h, --help このメッセージを表示
165
+ EOD
166
+ end
139
167
  end
140
168
  end
141
169
 
@@ -210,13 +238,14 @@ describe MemoRack do
210
238
 
211
239
  `cd themes/#{theme}; find . -print`.must_equal <<-EOD.cut_indent
212
240
  .
213
- ./2-column.scss
214
241
  ./404.md
215
- ./basic-styles.scss
216
242
  ./config.json
243
+ ./css
244
+ ./css/2-column.scss
245
+ ./css/basic-styles.scss
246
+ ./css/styles.scss
217
247
  ./error.html
218
248
  ./index.html
219
- ./styles.scss
220
249
  EOD
221
250
  }
222
251
  end
@@ -229,10 +258,179 @@ describe MemoRack do
229
258
  proc { memorack 'theme', '-c', File.join(theme, fname) }.must_output "Created '#{fname}'\n"
230
259
  }
231
260
  end
261
+
262
+ end
263
+
264
+ describe "build" do
265
+ before do
266
+ @hash = {}
267
+ @hash['basic'] = 'd414b3942f61e6b0a07f6458bfb133da40e7c7b8'
268
+ @hash['oreilly'] = '56b0c0f6a7394904442d7af6986797b1300301c3'
269
+
270
+ @file_lists = <<-EOD.cut_indent
271
+ .
272
+ ./css
273
+ ./css/2-column.css
274
+ ./css/basic-styles.css
275
+ ./css/styles.css
276
+ ./index.html
277
+ ./README.html
278
+ EOD
279
+ end
280
+
281
+ it "build" do
282
+ theme = 'oreilly'
283
+ output = '_site'
284
+
285
+ chmemo { |name|
286
+ proc { memorack 'build' }.must_output "Build 'content/' -> '#{output}'\n"
287
+
288
+ Dir.chdir(output) { |output|
289
+ `find . -print`.must_equal @file_lists
290
+ `git hash-object css/styles.css`.must_equal @hash[theme]+"\n"
291
+ }
292
+ }
293
+ end
294
+
295
+ it "build PATH" do
296
+ theme = 'basic'
297
+ output = '_site'
298
+
299
+ chmemo { |name|
300
+ dirname = 'data'
301
+ File.rename('content', dirname)
302
+
303
+ Dir.chdir('..')
304
+
305
+ path = File.join(name, dirname)
306
+ proc { memorack 'build', path }.must_output "Build '#{path}' -> '#{output}'\n"
307
+
308
+ Dir.chdir(output) { |output|
309
+ `find . -print`.must_equal @file_lists
310
+ `git hash-object css/styles.css`.must_equal @hash[theme]+"\n"
311
+ }
312
+ }
313
+ end
314
+
315
+ it "build --output DIRECTORY" do
316
+ theme = 'oreilly'
317
+ output = 'output'
318
+
319
+ chmemo { |name|
320
+ proc { memorack 'build', '--output', output }.must_output "Build 'content/' -> '#{output}'\n"
321
+
322
+ Dir.chdir(output) { |output|
323
+ `find . -print`.must_equal @file_lists
324
+ `git hash-object css/styles.css`.must_equal @hash[theme]+"\n"
325
+ }
326
+ }
327
+ end
328
+
329
+ it "build --theme THEME" do
330
+ theme = 'basic'
331
+ output = '_site'
332
+
333
+ chmemo { |name|
334
+ proc { memorack 'build', '--theme', theme }.must_output "Build 'content/' -> '#{output}'\n"
335
+
336
+ Dir.chdir(output) { |output|
337
+ `find . -print`.must_equal @file_lists
338
+ `git hash-object css/styles.css`.must_equal @hash[theme]+"\n"
339
+ }
340
+ }
341
+ end
342
+
343
+ it "build --url URL" do
344
+ theme = 'oreilly'
345
+ output = '_site'
346
+ url = 'http://memo.pow'
347
+
348
+ chmemo { |name|
349
+ proc { memorack 'build', '--url', url }.must_output "Build 'content/' -> '#{output}'\n"
350
+
351
+ Dir.chdir(output) { |output|
352
+ `find . -print`.must_equal @file_lists
353
+ `git hash-object css/styles.css`.must_equal @hash[theme]+"\n"
354
+ File.read('index.html').must_match %r[<a href="#{url}/README.html">README</a>]
355
+ }
356
+ }
357
+ end
358
+
359
+ it "build --local" do
360
+ theme = 'oreilly'
361
+ output = '_site'
362
+
363
+ chmemo { |name|
364
+ url = 'file://' + File.expand_path(output)
365
+
366
+ proc { memorack 'build', '--local' }.must_output "Build 'content/' -> '#{output}'\n"
367
+
368
+ Dir.chdir(output) { |output|
369
+ `find . -print`.must_equal @file_lists
370
+ `git hash-object css/styles.css`.must_equal @hash[theme]+"\n"
371
+ File.read('index.html').must_match %r[<a href="#{url}/README.html">README</a>]
372
+ }
373
+ }
374
+ end
375
+
376
+ it "build --prettify" do
377
+ theme = 'oreilly'
378
+ output = '_site'
379
+ url = ''
380
+
381
+ chmemo { |name|
382
+ proc { memorack 'build', '--prettify' }.must_output "Build 'content/' -> '#{output}'\n"
383
+
384
+ Dir.chdir(output) { |output|
385
+ `find . -print`.must_equal <<-EOD.cut_indent
386
+ .
387
+ ./css
388
+ ./css/2-column.css
389
+ ./css/basic-styles.css
390
+ ./css/styles.css
391
+ ./index.html
392
+ ./README
393
+ ./README/index.html
394
+ EOD
395
+
396
+ `git hash-object css/styles.css`.must_equal @hash[theme]+"\n"
397
+ File.read('index.html').must_match %r[<a href="#{url}/README">README</a>]
398
+ }
399
+ }
400
+ end
232
401
  end
233
402
 
234
403
  describe "server" do
235
- it "server"
404
+ include Rack::Test::Methods
405
+
406
+ before do
407
+ @cwd = Dir.pwd
408
+
409
+ name = 'memo'
410
+ Dir.chdir(@tmpdir)
411
+ proc { memorack 'create', name }.must_output "Created '#{name}'\n"
412
+ Dir.chdir(name)
413
+ end
414
+
415
+ def app
416
+ Rack::Builder.parse_file('config.ru').first
417
+ end
418
+
419
+ it "server /" do
420
+ get '/'
421
+ last_response.must_be :ok?
422
+ last_response.body.must_match /Powered by <a href="#{MemoRack::HOMEPAGE}"[^>]*>/
423
+ end
424
+
425
+ it "server /README" do
426
+ get '/README'
427
+ last_response.must_be :ok?
428
+ last_response.body.must_match /このディレクトリに markdown 等のメモファイルを作成してください/
429
+ end
430
+
431
+ after do
432
+ Dir.chdir(@cwd)
433
+ end
236
434
  end
237
435
 
238
436
  after do
@@ -1,5 +1,6 @@
1
1
  require 'minitest/spec'
2
2
  require 'minitest/autorun'
3
+ require 'rack/test'
3
4
 
4
5
  begin
5
6
  require 'turn'
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.0.4
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - gnue
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-12 00:00:00.000000000 Z
11
+ date: 2013-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -108,6 +108,34 @@ dependencies:
108
108
  - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: bundler
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '1.3'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: '1.3'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rake
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
111
139
  - !ruby/object:Gem::Dependency
112
140
  name: minitest
113
141
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +164,20 @@ dependencies:
136
164
  - - '>='
137
165
  - !ruby/object:Gem::Version
138
166
  version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rack-test
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
139
181
  description: Rack Application for markdown memo
140
182
  email:
141
183
  - gnue@so-kukan.com
@@ -150,10 +192,13 @@ files:
150
192
  - LICENSE.txt
151
193
  - README.md
152
194
  - Rakefile
195
+ - VERSION
153
196
  - bin/memorack
154
- - etc/tools/update_version.rb
197
+ - etc/tools/update_revision.rb
155
198
  - lib/memorack.rb
199
+ - lib/memorack/builder.rb
156
200
  - lib/memorack/cli.rb
201
+ - lib/memorack/core.rb
157
202
  - lib/memorack/locales/en.yml
158
203
  - lib/memorack/locales/ja.yml
159
204
  - lib/memorack/locals.rb
@@ -167,25 +212,26 @@ files:
167
212
  - lib/memorack/template/content/README.md
168
213
  - lib/memorack/template/themes/custom/config.json
169
214
  - lib/memorack/template/themes/custom/index.md
170
- - lib/memorack/themes/basic/2-column.scss
171
215
  - lib/memorack/themes/basic/404.md
172
- - lib/memorack/themes/basic/basic-styles.scss
173
216
  - lib/memorack/themes/basic/config.json
217
+ - lib/memorack/themes/basic/css/2-column.scss
218
+ - lib/memorack/themes/basic/css/basic-styles.scss
219
+ - lib/memorack/themes/basic/css/styles.scss
174
220
  - lib/memorack/themes/basic/error.html
175
221
  - lib/memorack/themes/basic/index.html
176
- - lib/memorack/themes/basic/styles.scss
177
222
  - lib/memorack/themes/oreilly/config.json
223
+ - lib/memorack/themes/oreilly/css/styles.scss
178
224
  - lib/memorack/themes/oreilly/oreilly/base.scss
179
225
  - lib/memorack/themes/oreilly/oreilly/styles.scss
180
- - lib/memorack/themes/oreilly/styles.scss
181
226
  - lib/memorack/tilt-mustache.rb
182
227
  - lib/memorack/version.rb
183
228
  - memorack.gemspec
184
229
  - spec/memorack_spec.rb
185
230
  - spec/spec_helper.rb
186
- - VERSION
231
+ - REVISION
187
232
  homepage: https://github.com/gnue/memorack
188
- licenses: []
233
+ licenses:
234
+ - MIT
189
235
  metadata: {}
190
236
  post_install_message: "\n ==================\n Quick Start\n\n $ memorack
191
237
  create memo\n $ cd memo\n $ rackup\n\n ==================\n "