mr_poole 0.4.0 → 0.4.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/CHANGES.md +4 -0
- data/lib/mr_poole/helper.rb +28 -1
- data/lib/mr_poole/version.rb +1 -1
- data/spec/cli_spec.rb +17 -0
- data/spec/spec_helper.rb +30 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4790b814a5e143fa4beae53dd72d2cd5d3a47798
|
4
|
+
data.tar.gz: a60ed789cd16fc12c57ff5ca566f0e34d489e413
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd29e6389bd96860c050412b85c8e4ae95fbfec6bcf58bba661c985d2e587f374d88a97c8430e085dbe31847f7c71037b4d327db5e71b37760ad128dd1b4f09d
|
7
|
+
data.tar.gz: 78b28c146104ff78506333b4ca1d33f86639ef4500ae6e60d5c0d17c4ff659432efb3445561ad160c8bd532a38a09649a42c7ccc637a27152239af89bc040e41
|
data/CHANGES.md
CHANGED
data/lib/mr_poole/helper.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
1
3
|
module MrPoole
|
2
4
|
class Helper
|
3
5
|
|
@@ -8,7 +10,15 @@ module MrPoole
|
|
8
10
|
# Check for a _posts directory in current directory
|
9
11
|
# If we don't find one, puke an error message and die
|
10
12
|
def ensure_jekyll_dir
|
11
|
-
|
13
|
+
ok = File.exists?('./_posts')
|
14
|
+
|
15
|
+
# if it doesn't exist, check for a custom source dir in _config.yml
|
16
|
+
if !ok
|
17
|
+
check_custom_src_dir
|
18
|
+
ok = File.exists?('./_posts')
|
19
|
+
end
|
20
|
+
|
21
|
+
if !ok
|
12
22
|
puts 'ERROR: Cannot locate _posts directory. Double check to make sure'
|
13
23
|
puts ' that you are in a jekyll directory.'
|
14
24
|
exit
|
@@ -128,5 +138,22 @@ module MrPoole
|
|
128
138
|
exit
|
129
139
|
end
|
130
140
|
|
141
|
+
# Private methods
|
142
|
+
#################
|
143
|
+
private
|
144
|
+
|
145
|
+
# If a user has a custom 'source' defined in their _config.yml, change
|
146
|
+
# to that directory for everything else
|
147
|
+
def check_custom_src_dir
|
148
|
+
srcdir = nil
|
149
|
+
|
150
|
+
if File.exists?('_config.yml')
|
151
|
+
yaml = YAML.load(File.read('_config.yml'))
|
152
|
+
srcdir = yaml['source']
|
153
|
+
end
|
154
|
+
|
155
|
+
Dir.chdir(srcdir) if srcdir
|
156
|
+
end
|
157
|
+
|
131
158
|
end
|
132
159
|
end
|
data/lib/mr_poole/version.rb
CHANGED
data/spec/cli_spec.rb
CHANGED
@@ -17,6 +17,23 @@ module MrPoole
|
|
17
17
|
expect { cli = CLI.new([]) }.not_to raise_error
|
18
18
|
clean_tmp_files(tmpdir, olddir)
|
19
19
|
end
|
20
|
+
|
21
|
+
context 'with _config.yml' do
|
22
|
+
|
23
|
+
it "should not exit if _config.yml has 'source' key" do
|
24
|
+
olddir, tmpdir = make_irregular_jekyll_dir
|
25
|
+
expect { cli = CLI.new([]) }.not_to raise_error
|
26
|
+
clean_tmp_files(tmpdir, olddir)
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should exit if custom src dir doesn't have _posts dir" do
|
30
|
+
olddir, tmpdir = make_bad_irregular_jekyll_dir
|
31
|
+
expect {
|
32
|
+
capture_stdout { cli = CLI.new([]) }
|
33
|
+
}.to raise_error(SystemExit)
|
34
|
+
clean_tmp_files(tmpdir, olddir)
|
35
|
+
end
|
36
|
+
end
|
20
37
|
end # context determine jekyll dir
|
21
38
|
|
22
39
|
context 'no correct action' do
|
data/spec/spec_helper.rb
CHANGED
@@ -35,7 +35,31 @@ def make_jekyll_dir
|
|
35
35
|
Dir.mkdir(posts)
|
36
36
|
Dir.chdir(newdir)
|
37
37
|
return olddir, newdir
|
38
|
+
end
|
39
|
+
|
40
|
+
def make_irregular_jekyll_dir
|
41
|
+
olddir = Dir.pwd()
|
42
|
+
newdir = Dir.mktmpdir('jekyll')
|
43
|
+
srcdir = File.join(newdir, 'src')
|
44
|
+
posts = File.join(srcdir, '_posts')
|
45
|
+
Dir.mkdir(srcdir)
|
46
|
+
Dir.mkdir(posts)
|
47
|
+
Dir.chdir(newdir)
|
48
|
+
# ensure write custom yml file
|
49
|
+
write_config_file_custom_src_dir
|
50
|
+
return olddir, newdir
|
51
|
+
end
|
38
52
|
|
53
|
+
# make a dir with a custom source dir but with no _posts directory
|
54
|
+
def make_bad_irregular_jekyll_dir
|
55
|
+
olddir = Dir.pwd()
|
56
|
+
newdir = Dir.mktmpdir('jekyll')
|
57
|
+
srcdir = File.join(newdir, 'src')
|
58
|
+
Dir.mkdir(srcdir)
|
59
|
+
Dir.chdir(newdir)
|
60
|
+
# ensure write custom yml file
|
61
|
+
write_config_file_custom_src_dir
|
62
|
+
return olddir, newdir
|
39
63
|
end
|
40
64
|
|
41
65
|
def clean_tmp_files(tmpdir, restoredir)
|
@@ -130,3 +154,9 @@ def write_config_file_custom_extension
|
|
130
154
|
c.puts " default_extension: textile"
|
131
155
|
c.close
|
132
156
|
end
|
157
|
+
|
158
|
+
def write_config_file_custom_src_dir
|
159
|
+
c = File.open('_config.yml', 'w')
|
160
|
+
c.puts 'source: src'
|
161
|
+
c.close
|
162
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mr_poole
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael McClimon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-12-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -113,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
113
113
|
version: '0'
|
114
114
|
requirements: []
|
115
115
|
rubyforge_project:
|
116
|
-
rubygems_version: 2.
|
116
|
+
rubygems_version: 2.0.6
|
117
117
|
signing_key:
|
118
118
|
specification_version: 4
|
119
119
|
summary: A butler for Jekyll. Provides a command-line interface (called `poole`) for
|