mr_poole 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +15 -8
- data/lib/mr_poole/cli.rb +2 -0
- data/lib/mr_poole/commands.rb +2 -1
- data/lib/mr_poole/helper.rb +23 -17
- data/lib/mr_poole/version.rb +1 -1
- data/lib/mr_poole.rb +1 -1
- data/spec/cli_spec.rb +36 -1
- data/spec/command_spec.rb +1 -1
- data/spec/config_spec.rb +7 -0
- metadata +11 -21
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 60010ebbd261458b1cef4e8f5bcc0db1fe10739d
|
4
|
+
data.tar.gz: 403a24571f75f6cd5e2e452123aafe83bf1c9548
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8f708900d1366bdb5ba468b66fcd0e584a6b7c060d4480ff23f21d6c3edba23e95107ee70de518a84c8a1977e0cd01ddba8374fa3c8499eb290358ab72e523ba
|
7
|
+
data.tar.gz: 104ece8c3f20331977ee429002472ea238d32a8cf8936274906ed5fdf1784d87688938759cfdd0516c43cb8275197973c3c1a103ad68f9ab7d6d40e17d581995
|
data/README.md
CHANGED
@@ -9,7 +9,9 @@ attempts to do a good job and be loyal to his master"
|
|
9
9
|
([Wikipedia](http://en.wikipedia.org/wiki/Jekyll_and_hyde#Mr._Poole)), and the
|
10
10
|
Mr. Poole gem looks to be the same thing.
|
11
11
|
|
12
|
-
[![
|
12
|
+
[![Gem Version](https://badge.fury.io/rb/mr_poole.png)](http://badge.fury.io/rb/mr_poole)
|
13
|
+
|
14
|
+
[![Build Status](https://travis-ci.org/mmcclimon/mr_poole.png?branch=master)](https://travis-ci.org/mmcclimon/mr_poole)
|
13
15
|
[![Code Climate](https://codeclimate.com/github/mmcclimon/mr_poole.png)](https://codeclimate.com/github/mmcclimon/mr_poole)
|
14
16
|
[![Coverage Status](https://coveralls.io/repos/mmcclimon/mr_poole/badge.png)](https://coveralls.io/r/mmcclimon/mr_poole)
|
15
17
|
|
@@ -33,12 +35,12 @@ character.
|
|
33
35
|
Options:
|
34
36
|
|
35
37
|
```
|
36
|
-
--slug
|
38
|
+
-s, --slug Define a custom slug for post, used for generated file name
|
37
39
|
|
38
|
-
--title
|
40
|
+
-t, --title Define a title for post. This option may be omitted provided
|
39
41
|
that TITLE is given as the last argument to poole
|
40
42
|
|
41
|
-
--layout
|
43
|
+
-l, --layout Path to a custom layout file to use
|
42
44
|
```
|
43
45
|
|
44
46
|
By default, poole generates a simple file that looks like this (but see section
|
@@ -62,10 +64,15 @@ as `post`. In the generated file, no date is inserted.
|
|
62
64
|
|
63
65
|
### Publish
|
64
66
|
|
65
|
-
poole publish DRAFT_PATH
|
67
|
+
poole publish [OPTIONS] DRAFT_PATH
|
68
|
+
|
69
|
+
Publishes a draft from your _drafts folder to your _posts folder By default,
|
70
|
+
renames the file and updates the date in the header, but see options:
|
66
71
|
|
67
|
-
|
68
|
-
|
72
|
+
```
|
73
|
+
-d, --keep-draft Do not delete the draft post'
|
74
|
+
-t, --keep-timestamp Do not update the draft timestamp'
|
75
|
+
```
|
69
76
|
|
70
77
|
Given this file (called `_drafts/test_draft.md`):
|
71
78
|
|
@@ -79,7 +86,7 @@ date:
|
|
79
86
|
The life, universe, and everything.
|
80
87
|
```
|
81
88
|
|
82
|
-
A call to `poole publish` will generate a file named
|
89
|
+
A call to `poole publish _drafts/test_draft.md` will generate a file named
|
83
90
|
`_posts/yyyy-mm-dd-test_draft.md` and delete the draft. Also updates the date
|
84
91
|
filed in the header with a date, and HH:MM, producing this file:
|
85
92
|
|
data/lib/mr_poole/cli.rb
CHANGED
@@ -21,6 +21,8 @@ module MrPoole
|
|
21
21
|
when 'draft' then handle_draft
|
22
22
|
when 'publish' then handle_publish
|
23
23
|
when 'unpublish' then handle_unpublish
|
24
|
+
when '--version' then @helper.version_statement
|
25
|
+
when '-v' then @helper.version_statement
|
24
26
|
else @helper.gen_usage
|
25
27
|
end
|
26
28
|
end
|
data/lib/mr_poole/commands.rb
CHANGED
@@ -55,6 +55,7 @@ module MrPoole
|
|
55
55
|
# put the metadata into the layout header
|
56
56
|
head, ext = @helper.get_layout(opts.layout)
|
57
57
|
head.sub!(/^title:\s*$/, "title: #{opts.title}")
|
58
|
+
head.sub!(/^date:\s*$/, "date: #{@helper.get_date_stamp}")
|
58
59
|
ext ||= @ext
|
59
60
|
|
60
61
|
path = File.join(DRAFTS_FOLDER, "#{slug}.#{ext}")
|
@@ -87,7 +88,7 @@ module MrPoole
|
|
87
88
|
outfile = File.open(outpath, "w")
|
88
89
|
|
89
90
|
infile.each_line do |line|
|
90
|
-
line.sub!(/^date
|
91
|
+
line.sub!(/^date:.*$/, "date: #{date} #{time}\n") unless opts.keep_timestamp
|
91
92
|
outfile.write(line)
|
92
93
|
end
|
93
94
|
|
data/lib/mr_poole/helper.rb
CHANGED
@@ -62,6 +62,16 @@ module MrPoole
|
|
62
62
|
exit
|
63
63
|
end
|
64
64
|
|
65
|
+
def version_statement
|
66
|
+
puts ''
|
67
|
+
puts "This is Mr. Poole, version #{MrPoole::VERSION}, running on ruby version #{RUBY_VERSION}"
|
68
|
+
puts ''
|
69
|
+
puts 'Copyright 2013, Michael McClimon'
|
70
|
+
puts 'https://github.com/mmcclimon/mr_poole'
|
71
|
+
puts ''
|
72
|
+
exit
|
73
|
+
end
|
74
|
+
|
65
75
|
# Print a usage message and exit
|
66
76
|
def gen_usage
|
67
77
|
puts 'Usage:'
|
@@ -78,37 +88,33 @@ module MrPoole
|
|
78
88
|
def post_usage
|
79
89
|
puts 'Usage:'
|
80
90
|
puts ' poole post [OPTION] [ARG] TITLE'
|
81
|
-
|
82
|
-
puts 'Options:'
|
83
|
-
puts ' --slug Define a custom slug for post, used for generated file name'
|
84
|
-
puts ' (also available with -s)'
|
85
|
-
puts ' --title Define a title for post (also available with -t)'
|
86
|
-
puts ' This option may be omitted provided that TITLE is given as'
|
87
|
-
puts ' the last argument to poole'
|
88
|
-
puts ' --layout Path to a custom layout file to use (also availabe with -l)'
|
91
|
+
creation_options_usage
|
89
92
|
exit
|
90
93
|
end
|
91
94
|
|
92
95
|
def draft_usage
|
93
96
|
puts 'Usage:'
|
94
97
|
puts ' poole draft [OPTION] [ARG] TITLE'
|
98
|
+
creation_options_usage
|
99
|
+
exit
|
100
|
+
end
|
101
|
+
|
102
|
+
def creation_options_usage
|
95
103
|
puts ''
|
96
104
|
puts 'Options:'
|
97
|
-
puts ' --slug Define a custom slug for post, used for generated file name'
|
98
|
-
puts '
|
99
|
-
puts '
|
100
|
-
puts '
|
101
|
-
puts ' the last argument to poole'
|
102
|
-
puts ' --layout Path to a custom layout file to use (also availabe with -l)'
|
103
|
-
exit
|
105
|
+
puts ' -s, --slug Define a custom slug for post, used for generated file name'
|
106
|
+
puts ' -t, --title Define a title for post This option may be omitted provided'
|
107
|
+
puts ' that TITLE is given as the last argument to poole'
|
108
|
+
puts ' -l, --layout Path to a custom layout file to use'
|
104
109
|
end
|
105
110
|
|
106
111
|
def publish_usage
|
107
112
|
puts 'Usage:'
|
108
|
-
puts ' poole publish PATH_TO_DRAFT'
|
113
|
+
puts ' poole publish [OPTIONS] PATH_TO_DRAFT'
|
109
114
|
puts ''
|
110
115
|
puts 'Options:'
|
111
|
-
puts '
|
116
|
+
puts ' -d, --keep-draft Do not delete the draft post'
|
117
|
+
puts ' -t, --keep-timestamp Do not update the draft timestamp'
|
112
118
|
exit
|
113
119
|
end
|
114
120
|
|
data/lib/mr_poole/version.rb
CHANGED
data/lib/mr_poole.rb
CHANGED
data/spec/cli_spec.rb
CHANGED
@@ -19,6 +19,41 @@ module MrPoole
|
|
19
19
|
end
|
20
20
|
end # context determine jekyll dir
|
21
21
|
|
22
|
+
context 'no correct action' do
|
23
|
+
before(:each) { @olddir, @tmpdir = make_jekyll_dir }
|
24
|
+
after(:each) { clean_tmp_files(@tmpdir, @olddir) }
|
25
|
+
|
26
|
+
it 'prints help message with no action' do
|
27
|
+
argv = []
|
28
|
+
output = aborted_poole_output(argv).call
|
29
|
+
expect(output).to match(/poole \[ACTION\] \[ARG\]/)
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'prints help message with unknown action' do
|
33
|
+
argv = ['bogusify']
|
34
|
+
output = aborted_poole_output(argv).call
|
35
|
+
expect(output).to match(/poole \[ACTION\] \[ARG\]/)
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
context 'version switch' do
|
41
|
+
before(:each) { @olddir, @tmpdir = make_jekyll_dir }
|
42
|
+
after(:each) { clean_tmp_files(@tmpdir, @olddir) }
|
43
|
+
|
44
|
+
it 'prints version and exits with --version' do
|
45
|
+
argv = ['--version']
|
46
|
+
output = aborted_poole_output(argv).call
|
47
|
+
expect(output).to match(/Mr[.] Poole, version /)
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'prints version and exits with -v' do
|
51
|
+
argv = ['-v']
|
52
|
+
output = aborted_poole_output(argv).call
|
53
|
+
expect(output).to match(/Mr[.] Poole, version /)
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
22
57
|
describe "action 'post'" do
|
23
58
|
before(:each) { @olddir, @tmpdir = make_jekyll_dir }
|
24
59
|
after(:each) { clean_tmp_files(@tmpdir, @olddir) }
|
@@ -246,7 +281,7 @@ module MrPoole
|
|
246
281
|
argv = ['publish', '--keep-timestamp', d_path]
|
247
282
|
new_file = poole_no_stdout(argv).call.chomp
|
248
283
|
content = File.open(new_file, "r").read
|
249
|
-
expect(content).to match(/^date
|
284
|
+
expect(content).to match(/^date: \d{4}-\d{2}-\d{2}$/)
|
250
285
|
end
|
251
286
|
end
|
252
287
|
end
|
data/spec/command_spec.rb
CHANGED
@@ -145,7 +145,7 @@ module MrPoole
|
|
145
145
|
it "should not update the date in the file itself" do
|
146
146
|
fn = c.draft({:title => "Date test post"})
|
147
147
|
content = File.open(fn, 'r').read
|
148
|
-
expect(content).to match(/date
|
148
|
+
expect(content).to match(/date: \d{4}-\d{2}-\d{2}\n/)
|
149
149
|
end
|
150
150
|
end # end context title only
|
151
151
|
|
data/spec/config_spec.rb
CHANGED
@@ -39,6 +39,13 @@ module MrPoole
|
|
39
39
|
config = Config.new
|
40
40
|
expect(config).not_to be_empty
|
41
41
|
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe '#inspect' do
|
45
|
+
it 'looks like OpenStruct.inspect' do
|
46
|
+
config = Config.new
|
47
|
+
expect(config.inspect).to match(/#<OpenStruct/)
|
48
|
+
end
|
42
49
|
|
43
50
|
end
|
44
51
|
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mr_poole
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Michael McClimon
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-09-
|
11
|
+
date: 2013-09-24 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: coveralls
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,33 +41,29 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rspec
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rake
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
description: A butler for Jekyll, provides interface for creating posts/drafts
|
@@ -105,27 +96,26 @@ files:
|
|
105
96
|
homepage: http://github.com/mmcclimon/mr_poole
|
106
97
|
licenses:
|
107
98
|
- MIT
|
99
|
+
metadata: {}
|
108
100
|
post_install_message:
|
109
101
|
rdoc_options: []
|
110
102
|
require_paths:
|
111
103
|
- lib
|
112
104
|
required_ruby_version: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
105
|
requirements:
|
115
|
-
- -
|
106
|
+
- - '>='
|
116
107
|
- !ruby/object:Gem::Version
|
117
108
|
version: '0'
|
118
109
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
|
-
none: false
|
120
110
|
requirements:
|
121
|
-
- -
|
111
|
+
- - '>='
|
122
112
|
- !ruby/object:Gem::Version
|
123
113
|
version: '0'
|
124
114
|
requirements: []
|
125
115
|
rubyforge_project:
|
126
|
-
rubygems_version: 1.
|
116
|
+
rubygems_version: 2.1.4
|
127
117
|
signing_key:
|
128
|
-
specification_version:
|
118
|
+
specification_version: 4
|
129
119
|
summary: A butler for Jekyll. Provides a command-line interface (called `poole`) for
|
130
120
|
creating and publishing posts and drafts for Jekyll (http://jekyllrb.com) blogs. The
|
131
121
|
literary Mr. Poole is Jekyll's butler, who "serves Jekyll faithfully, and attempts
|