serif 0.5 → 0.5.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/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