serif 0.5 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -6,7 +6,7 @@ Serif is a static site generator and blogging system powered by markdown files a
6
6
 
7
7
  Serif releases you from managing a file system so you can focus on writing content.
8
8
 
9
- Having problems with Serif? [Open an issue on GitHub](https://github.com/aprescott/serif/issues), use the [Serif Google Group](https://groups.google.com/forum/#!forum/serif-rb), or [join the Freenode#serif IRC channel](irc://irc.freenode.net/serif).
9
+ Having problems with Serif? [Open an issue on GitHub](https://github.com/aprescott/serif/issues), use the [Serif Google Group](https://groups.google.com/forum/#!forum/serif-rb), or join the Freenode#serif IRC channel at irc://irc.freenode.net/serif.
10
10
 
11
11
  ## First time use
12
12
 
@@ -83,6 +83,7 @@ class Commands
83
83
  files.each do |f|
84
84
  FileUtils.cp_r(f, dir, verbose: true)
85
85
  end
86
+ FileUtils.mkdir(File.join(dir, "_posts"))
86
87
 
87
88
  generate_site(dir)
88
89
 
@@ -51,12 +51,14 @@ class ContentFile
51
51
  @cached_headers = nil
52
52
  end
53
53
 
54
+ # Returns true if the file is in the directory for draft content.
54
55
  def draft?
55
- !published?
56
+ File.dirname(path) == File.join(site.directory, Draft.dirname)
56
57
  end
57
58
 
59
+ # Returns true if the file is in the directory for published posts.
58
60
  def published?
59
- headers.key?(:created)
61
+ File.dirname(path) == File.join(site.directory, Post.dirname)
60
62
  end
61
63
 
62
64
  def content(include_headers = false)
data/lib/serif/draft.rb CHANGED
@@ -41,6 +41,8 @@ class Draft < ContentFile
41
41
  publish_time = Time.now
42
42
  date = Time.now.strftime("%Y-%m-%d")
43
43
  filename = "#{date}-#{slug}"
44
+
45
+ FileUtils.mkdir_p("#{site.directory}/#{Post.dirname}")
44
46
  full_published_path = File.expand_path("#{site.directory}/#{Post.dirname}/#{filename}")
45
47
 
46
48
  raise "conflict, post exists already" if File.exist?(full_published_path)
data/serif.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "serif"
3
- s.version = "0.5"
3
+ s.version = "0.5.1"
4
4
  s.authors = ["Adam Prescott"]
5
5
  s.email = ["adam@aprescott.com"]
6
6
  s.homepage = "https://github.com/aprescott/serif"
@@ -36,6 +36,34 @@ describe Serif::ContentFile do
36
36
  end
37
37
  end
38
38
 
39
+ describe "draft?" do
40
+ it "is true if the file is in the _drafts directory" do
41
+ subject.drafts.each do |d|
42
+ d.draft?.should be_true
43
+ d.published?.should be_false
44
+ end
45
+
46
+ d = subject.drafts.sample
47
+ orig_path = d.path
48
+ d.stub(:path) { orig_path.gsub(/^#{Regexp.quote(testing_dir("_drafts"))}/, testing_dir("_anything")) }
49
+ d.draft?.should be_false
50
+ end
51
+ end
52
+
53
+ describe "published?" do
54
+ it "is true if the file is in the _posts directory" do
55
+ subject.posts.each do |p|
56
+ p.published?.should be_true
57
+ p.draft?.should be_false
58
+ end
59
+
60
+ p = subject.posts.sample
61
+ orig_path = p.path
62
+ p.stub(:path) { orig_path.gsub(/^#{Regexp.quote(testing_dir("_posts"))}/, testing_dir("_anything")) }
63
+ p.published?.should be_false
64
+ end
65
+ end
66
+
39
67
  describe "#title=" do
40
68
  it "sets the underlying header value to the assigned title" do
41
69
  (subject.drafts + subject.posts).each do |content_file|
data/test/draft_spec.rb CHANGED
@@ -115,6 +115,21 @@ describe Serif::Draft do
115
115
  FileUtils.rm_f(published_path)
116
116
  end
117
117
 
118
+ it "creates the posts directory if it doens't already exist" do
119
+ draft = D.new(@site)
120
+ draft.slug = "test-draft"
121
+ draft.title = "Some draft title"
122
+ draft.save("some content")
123
+
124
+ FileUtils.should_receive(:mkdir_p).with(testing_dir("_posts")).and_call_original
125
+
126
+ begin
127
+ draft.publish!
128
+ ensure
129
+ FileUtils.rm(draft.path)
130
+ end
131
+ end
132
+
118
133
  it "makes the post available in Site#posts and Site#to_liquid even straight after a generate" do
119
134
  draft = D.new(@site)
120
135
  draft.slug = "test-draft-to-go-into-liquid"
@@ -1,4 +1,4 @@
1
1
  title: Some draft title
2
- Updated: 2013-03-31T17:33:33+01:00
2
+ Updated: 2013-04-08T16:12:49+01:00
3
3
 
4
4
  some content
@@ -0,0 +1,5 @@
1
+ title: Some draft title
2
+ Updated: 2013-04-08T16:12:50+01:00
3
+ Created: 2013-04-08T16:12:50+01:00
4
+
5
+ some content
@@ -0,0 +1,4 @@
1
+ title: Some draft title
2
+ Updated: 2013-04-08T16:12:50+01:00
3
+
4
+ some content
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: serif
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.5'
4
+ version: 0.5.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-31 00:00:00.000000000 Z
12
+ date: 2013-04-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
@@ -260,90 +260,91 @@ executables:
260
260
  extensions: []
261
261
  extra_rdoc_files: []
262
262
  files:
263
+ - lib/serif/admin_server.rb
264
+ - lib/serif/commands.rb
265
+ - lib/serif/config.rb
263
266
  - lib/serif/content_file.rb
264
- - lib/serif/server.rb
267
+ - lib/serif/draft.rb
268
+ - lib/serif/errors.rb
265
269
  - lib/serif/markup_renderer.rb
266
270
  - lib/serif/post.rb
267
- - lib/serif/errors.rb
268
- - lib/serif/config.rb
269
- - lib/serif/admin_server.rb
270
- - lib/serif/draft.rb
271
- - lib/serif/commands.rb
271
+ - lib/serif/server.rb
272
272
  - lib/serif/site.rb
273
273
  - lib/serif.rb
274
- - statics/templates/admin/new_draft.liquid
275
- - statics/templates/admin/edit_draft.liquid
276
- - statics/templates/admin/layout.liquid
277
- - statics/templates/admin/index.liquid
278
- - statics/templates/admin/bookmarks.liquid
279
- - statics/templates/admin/edit_post.liquid
280
- - statics/skeleton/index.html
281
- - statics/skeleton/_templates/archive_page.html
282
- - statics/skeleton/_templates/post.html
283
- - statics/skeleton/_drafts/sample-draft
284
- - statics/skeleton/_config.yml
285
- - statics/skeleton/_layouts/default.html
286
- - statics/skeleton/archive.html
287
- - statics/assets/js/mousetrap.min.js
288
- - statics/assets/js/jquery.insert.js
289
274
  - statics/assets/js/attachment.js
290
275
  - statics/assets/js/jquery.autosize.js
291
276
  - statics/assets/js/jquery.drop.js
277
+ - statics/assets/js/jquery.insert.js
278
+ - statics/assets/js/mousetrap.min.js
279
+ - statics/skeleton/_config.yml
280
+ - statics/skeleton/_drafts/sample-draft
281
+ - statics/skeleton/_layouts/default.html
282
+ - statics/skeleton/_templates/archive_page.html
283
+ - statics/skeleton/_templates/post.html
284
+ - statics/skeleton/archive.html
285
+ - statics/skeleton/index.html
286
+ - statics/templates/admin/bookmarks.liquid
287
+ - statics/templates/admin/edit_draft.liquid
288
+ - statics/templates/admin/edit_post.liquid
289
+ - statics/templates/admin/index.liquid
290
+ - statics/templates/admin/layout.liquid
291
+ - statics/templates/admin/new_draft.liquid
292
292
  - bin/serif
293
- - test/test_helper.rb
294
- - test/filters_spec.rb
293
+ - test/commands_spec.rb
295
294
  - test/config_spec.rb
296
- - test/liquid_filter_date_extension_spec.rb
297
- - test/site_spec.rb
298
295
  - test/content_file_spec.rb
299
296
  - test/draft_spec.rb
297
+ - test/file_digest_tag_spec.rb
298
+ - test/filters_spec.rb
299
+ - test/liquid_filter_date_extension_spec.rb
300
300
  - test/markup_renderer_spec.rb
301
- - test/site_dir/index.html
302
- - test/site_dir/_templates/archive_page.html
303
- - test/site_dir/_templates/post.html
301
+ - test/post_spec.rb
302
+ - test/site_dir/_config.yml
304
303
  - test/site_dir/_drafts/another-sample-draft
305
304
  - test/site_dir/_drafts/sample-draft
306
- - test/site_dir/file-digest-test.html
307
- - test/site_dir/page-alt-layout.html
308
- - test/site_dir/page-header-but-no-layout.html
309
- - test/site_dir/test-stylesheet.css
310
- - test/site_dir/_config.yml
311
- - test/site_dir/_site/test-archive/2013/01.html
312
- - test/site_dir/_site/test-archive/2013/03.html
313
- - test/site_dir/_site/test-archive/2012/12.html
314
- - test/site_dir/_site/test-archive/2012/11.html
315
- - test/site_dir/_site/test-archive/2400/01.html
316
- - test/site_dir/_site/test-archive/2399/01.html
317
- - test/site_dir/_site/drafts/another-sample-draft/add25848a94509103cb492c47e3a04b7b2a56299de207155fbffec42dc4b.html
318
- - test/site_dir/_site/drafts/sample-draft/0b6fc164b8534d5d5a9fcfc5c709265d33f1577cd0fe2f4e23042e92f0c1.html
319
- - test/site_dir/_site/index.html
305
+ - test/site_dir/_layouts/alt-layout.html
306
+ - test/site_dir/_layouts/default.html
307
+ - test/site_dir/_posts/2012-01-05-sample-post
308
+ - test/site_dir/_posts/2013-01-01-second-post
309
+ - test/site_dir/_posts/2013-03-07-post-with-custom-layout
310
+ - test/site_dir/_posts/2399-01-01-penultimate-post
311
+ - test/site_dir/_posts/2400-01-01-final-post
312
+ - test/site_dir/_site/archive.html
313
+ - test/site_dir/_site/drafts/another-sample-draft/893209b2ce83164321ca8f311a32a3c87399498377e1229e7ecc26ff850f.html
314
+ - test/site_dir/_site/drafts/sample-draft/1b015cdf8a931d05f12b95c6a9ea308c6e006596d6ccae5849935e7aaf24.html
320
315
  - test/site_dir/_site/file-digest-test.html
316
+ - test/site_dir/_site/index.html
321
317
  - test/site_dir/_site/page-alt-layout.html
322
318
  - test/site_dir/_site/page-header-but-no-layout.html
323
- - test/site_dir/_site/test-stylesheet.css
319
+ - test/site_dir/_site/test-archive/2012/11.html
320
+ - test/site_dir/_site/test-archive/2012/12.html
321
+ - test/site_dir/_site/test-archive/2013/01.html
322
+ - test/site_dir/_site/test-archive/2013/03.html
323
+ - test/site_dir/_site/test-archive/2399/01.html
324
+ - test/site_dir/_site/test-archive/2400/01.html
324
325
  - test/site_dir/_site/test-blog/final-post.html
326
+ - test/site_dir/_site/test-blog/penultimate-post.html
325
327
  - test/site_dir/_site/test-blog/post-to-be-published-on-generate.html
326
- - test/site_dir/_site/test-blog/second-post.html
327
328
  - test/site_dir/_site/test-blog/post-with-custom-layout.html
328
329
  - test/site_dir/_site/test-blog/sample-post.html
329
- - test/site_dir/_site/test-blog/penultimate-post.html
330
+ - test/site_dir/_site/test-blog/second-post.html
330
331
  - test/site_dir/_site/test-smarty-filter.html
331
- - test/site_dir/_site/archive.html
332
- - test/site_dir/_trash/1364747613-autopublish-draft
333
- - test/site_dir/_trash/1364747613-test-draft
334
- - test/site_dir/_posts/2013-03-07-post-with-custom-layout
335
- - test/site_dir/_posts/2012-01-05-sample-post
336
- - test/site_dir/_posts/2400-01-01-final-post
337
- - test/site_dir/_posts/2399-01-01-penultimate-post
338
- - test/site_dir/_posts/2013-01-01-second-post
339
- - test/site_dir/test-smarty-filter.html
340
- - test/site_dir/_layouts/alt-layout.html
341
- - test/site_dir/_layouts/default.html
332
+ - test/site_dir/_site/test-stylesheet.css
333
+ - test/site_dir/_templates/archive_page.html
334
+ - test/site_dir/_templates/post.html
335
+ - test/site_dir/_trash/1365433969-test-draft
336
+ - test/site_dir/_trash/1365433970-autopublish-draft
337
+ - test/site_dir/_trash/1365433970-test-draft
342
338
  - test/site_dir/archive.html
343
- - test/file_digest_tag_spec.rb
339
+ - test/site_dir/file-digest-test.html
340
+ - test/site_dir/index.html
341
+ - test/site_dir/page-alt-layout.html
342
+ - test/site_dir/page-header-but-no-layout.html
343
+ - test/site_dir/test-smarty-filter.html
344
+ - test/site_dir/test-stylesheet.css
344
345
  - test/site_generation_spec.rb
345
- - test/post_spec.rb
346
- - test/commands_spec.rb
346
+ - test/site_spec.rb
347
+ - test/test_helper.rb
347
348
  - serif.gemspec
348
349
  - rakefile
349
350
  - LICENSE
@@ -376,15 +377,15 @@ specification_version: 3
376
377
  summary: Static site generator and markdown-based blogging with an optional admin
377
378
  interface complete with drag-and-drop image uploading.
378
379
  test_files:
379
- - test/test_helper.rb
380
- - test/filters_spec.rb
380
+ - test/commands_spec.rb
381
381
  - test/config_spec.rb
382
- - test/liquid_filter_date_extension_spec.rb
383
- - test/site_spec.rb
384
382
  - test/content_file_spec.rb
385
383
  - test/draft_spec.rb
386
- - test/markup_renderer_spec.rb
387
384
  - test/file_digest_tag_spec.rb
388
- - test/site_generation_spec.rb
385
+ - test/filters_spec.rb
386
+ - test/liquid_filter_date_extension_spec.rb
387
+ - test/markup_renderer_spec.rb
389
388
  - test/post_spec.rb
390
- - test/commands_spec.rb
389
+ - test/site_generation_spec.rb
390
+ - test/site_spec.rb
391
+ - test/test_helper.rb
@@ -1,5 +0,0 @@
1
- title: Some draft title
2
- Updated: 2013-03-31T17:33:33+01:00
3
- Created: 2013-03-31T17:33:33+01:00
4
-
5
- some content