guard-jekyll-plus 1.4.10 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- OGQ4MDQxOWQwY2ViZmNjNWQzMGYzMzJhMTM0M2M5MDM3NjQ4YWE5Nw==
5
- data.tar.gz: !binary |-
6
- YjQ3Mjg0MGUxNTUxZmMwYjI2NGJkNDYxNDE0MWJkZjc5Y2RhYTNkZQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- YTI5NjE1ZWRiZTZkZTk3NWIxZDlkMDRhODU3MjRhYTRiOWNmNzljYWU1OWQy
10
- ZDA5ZTI5NmNmMTJlMmE1Y2NhMjZjZTg0NjM0OWE4NmY5ZDQxZTA0MWNhN2Qz
11
- OTQzNTdhNGY1YjI1ZmVmOTM0OTRmMDNhMTI0Y2U0OTQ5ZWRhODQ=
12
- data.tar.gz: !binary |-
13
- N2M0NzhmZDVhY2NiNTVkNmY0Zjk3MDA0MTUzODRiYTBlNDYyYzJmMDM5ZmFi
14
- NzIwNmQ2MDNhMDMwZmQ3MDFkNmM2MGY4MzFlOGYzYmJjM2VlMTQ3ZTkxNTgx
15
- ZDhmYzljMzJlNmJkZTIyNDg2YWRhOTlhYzg4MzA3NWE3MTI1MDU=
2
+ SHA1:
3
+ metadata.gz: be72288508230bb15f897c6a90e3e3acadbfd133
4
+ data.tar.gz: 5d2617be237688069afa09a0ca1e520f67ae1c63
5
+ SHA512:
6
+ metadata.gz: 026b9320d2df6366b31badc431cf5a4f30595f7cb8ab184320354e141a7707e7390e76a2b6a7f44f80a3fecd02a7206c79d5907c3f6f7e94126855a003408ca3
7
+ data.tar.gz: 1556ec62c7a9d61cecbcfb62582e3d1f605b3c4cef1101b3a67d629a7b8f4c6ffd02565d363da2aebddfd719c437a1e6a19c2778e6ae9e0f49c57703345ef6fa
data/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
1
  .DS_Store
2
2
  *.gem
3
+ Gemfile.lock
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ### 2.0.0
4
+
5
+ - Updated to work with Guard 2.x
6
+
3
7
  ### 1.4.10
4
8
 
5
9
  - Now pointing to the latest compatible Guard release.
data/README.md CHANGED
@@ -33,7 +33,6 @@ Or install it manually with:
33
33
 
34
34
  $ gem install guard-jekyll-plus
35
35
 
36
-
37
36
  ## Usage
38
37
 
39
38
  Navigate to your Jekyll project directory and create a Guardfile using:
@@ -49,7 +48,10 @@ guard "jekyll-plus" do
49
48
  end
50
49
  ```
51
50
 
52
- Run the guard and Jekyll will begin watching your project.
51
+
52
+ Add `Guardfile` to the list of files in your Jekyll's `exclude` configuration to prevent it from being copied into your site directory.
53
+
54
+ Then run the guard and Jekyll will begin watching your project.
53
55
 
54
56
  $ bundle exec guard
55
57
 
@@ -13,9 +13,16 @@ Gem::Specification.new do |gem|
13
13
  gem.homepage = "http://github.com/imathis/guard-jekyll-plus"
14
14
  gem.license = 'MIT'
15
15
 
16
- gem.add_dependency 'guard', '~> 1.8.3'
17
- gem.add_dependency 'jekyll', '>= 1.0.0'
18
-
19
16
  gem.files = `git ls-files`.split($/)
20
17
  gem.require_paths = ["lib"]
18
+
19
+ gem.add_dependency 'guard', '~> 2.8'
20
+ gem.add_dependency 'jekyll', '>= 1.0.0'
21
+
22
+ gem.add_development_dependency "rake"
23
+ gem.add_development_dependency "pry-byebug"
24
+
25
+ if RUBY_VERSION >= "2"
26
+ gem.add_development_dependency "bundler"
27
+ end
21
28
  end
@@ -1,25 +1,23 @@
1
1
  # encoding: UTF-8
2
2
 
3
- require 'guard'
4
- require 'guard/guard'
3
+ require 'benchmark'
4
+ require 'guard/plugin'
5
5
  require 'jekyll'
6
6
 
7
7
  begin
8
8
  require 'rack'
9
- @use_rack = true
10
9
  rescue LoadError
11
10
  end
12
11
 
13
12
  module Guard
14
- class Jekyllplus < Guard
15
-
16
- def initialize (watchers=[], options={})
13
+ class Jekyllplus < Plugin
14
+ def initialize(options = {})
17
15
  super
18
16
 
19
- default_extensions = ['md','mkd','mkdn','markdown','textile','html','haml','slim','xml','yml']
17
+ default_extensions = ['md','mkd','mkdn','markdown','textile','html','haml','slim','xml','yml','sass','scss']
20
18
 
21
19
  @options = {
22
- :extensions => [],
20
+ :extensions => [],
23
21
  :config => ['_config.yml'],
24
22
  :serve => false,
25
23
  :rack_config => nil,
@@ -30,41 +28,39 @@ module Guard
30
28
  :msg_prefix => 'Jekyll'
31
29
  }.merge(options)
32
30
 
33
- # The config_hash option should be a hash ready to be consumed by Jekyll's Site class.
34
- #
35
- @config = jekyll_config(@options)
36
-
37
- # Override configuration with guard option values
38
- #
39
- @config['show_drafts'] ||= @options[:drafts]
40
- @config['future'] ||= @options[:future]
41
-
42
- # Store vars for easy internal access
43
- #
31
+ @config = load_config(@options)
44
32
  @source = local_path @config['source']
45
33
  @destination = local_path @config['destination']
46
34
  @msg_prefix = @options[:msg_prefix]
47
-
35
+
48
36
  # Convert array of extensions into a regex for matching file extensions eg, /\.md$|\.markdown$|\.html$/i
49
- #
37
+ #
50
38
  extensions = @options[:extensions].concat(default_extensions).flatten.uniq
51
39
  @extensions = Regexp.new extensions.map { |e| (e << '$').gsub('\.', '\\.') }.join('|'), true
52
40
 
53
- # set Jekyll server process id to nil
54
- #
55
- @pid = nil
41
+ # set Jekyll server thread to nil
42
+ @server_thread = nil
56
43
 
57
- # Create a Jekyll site
58
- #
59
- @site = ::Jekyll::Site.new @config
60
- @rack = ::Rack::Server.new(rack_config(@destination)) if @use_rack
44
+ end
45
+
46
+ def load_config(options)
47
+ config = jekyll_config(options)
48
+
49
+ # Override configuration with guard option values
50
+ config['show_drafts'] ||= options[:drafts]
51
+ config['future'] ||= options[:future]
52
+ config
53
+ end
61
54
 
55
+ def reload_config!
56
+ UI.info "Reloading Jekyll configuration!"
57
+ @config = load_config(@options)
62
58
  end
63
59
 
64
60
  def start
65
61
  if @options[:serve]
66
- start_server
67
62
  build
63
+ start_server
68
64
  UI.info "#{@msg_prefix} " + "watching and serving at #{@config['host']}:#{@config['port']}#{@config['baseurl']}" unless @config[:silent]
69
65
  else
70
66
  build
@@ -72,20 +68,27 @@ module Guard
72
68
  end
73
69
  end
74
70
 
75
- def restart
76
- stop if alive?
71
+ def reload
72
+ stop if !@server_thread.nil? and @server_thread.alive?
73
+ reload_config!
77
74
  start
78
75
  end
79
76
 
77
+ def reload_server
78
+ stop_server
79
+ start_server
80
+ end
80
81
 
81
82
  def stop
82
83
  stop_server
83
84
  end
84
85
 
85
86
  def run_on_modifications(paths)
87
+ # At this point we know @options[:config] is going to be an Array
88
+ # thanks to the call the jekyll_config earlier.
89
+ reload_config! if @options[:config].map { |f| paths.include?(f) }.any?
86
90
  matched = jekyll_matches paths
87
91
  unmatched = non_jekyll_matches paths
88
-
89
92
  if matched.size > 0
90
93
  build(matched, "Files changed: ", " ~ ".yellow)
91
94
  elsif unmatched.size > 0
@@ -126,10 +129,9 @@ module Guard
126
129
  files.each { |file| puts '|' + mark + file }
127
130
  puts '| ' # spacing
128
131
  end
129
- @site.process
130
- UI.info "#{@msg_prefix} " + "build complete ".green + "#{@source} → #{@destination}" unless @config[:silent]
131
-
132
- rescue Exception => e
132
+ elapsed = Benchmark.realtime { build_site(@config) }
133
+ UI.info "#{@msg_prefix} " + "build completed in #{elapsed.round(2)}s ".green + "#{@source} → #{@destination}" unless @config[:silent]
134
+ rescue Exception
133
135
  UI.error "#{@msg_prefix} build has failed" unless @config[:silent]
134
136
  stop_server
135
137
  throw :task_has_failed
@@ -147,14 +149,18 @@ module Guard
147
149
  UI.info "#{@msg_prefix} #{message.green}" unless @config[:silent]
148
150
  puts '| ' #spacing
149
151
  files.each do |file|
150
- path = destination_path file
151
- FileUtils.mkdir_p File.dirname(path)
152
- FileUtils.cp file, path
153
- puts '|' + " → ".green + path
152
+ if(!check_jekyll_exclude(file))
153
+ path = destination_path file
154
+ FileUtils.mkdir_p File.dirname(path)
155
+ FileUtils.cp file, path
156
+ puts '|' + " → ".green + path
157
+ else
158
+ puts '|' + " ~ ".yellow + "Jekyll exclude: Ignoring changes to #{file}".yellow
159
+ end
154
160
  end
155
161
  puts '| ' #spacing
156
162
 
157
- rescue Exception => e
163
+ rescue Exception
158
164
  UI.error "#{@msg_prefix} copy has failed" unless @config[:silent]
159
165
  UI.error e
160
166
  stop_server
@@ -171,7 +177,7 @@ module Guard
171
177
  else
172
178
  files
173
179
  end
174
-
180
+
175
181
  end
176
182
 
177
183
  # Remove deleted source file/directories from destination
@@ -195,13 +201,13 @@ module Guard
195
201
 
196
202
  dir = File.dirname path
197
203
  if Dir[dir+'/*'].empty?
198
- FileUtils.rm_r(dir)
204
+ FileUtils.rm_r(dir)
199
205
  puts '|' + " x ".red + dir
200
206
  end
201
207
  end
202
208
  puts '| ' #spacing
203
209
 
204
- rescue Exception => e
210
+ rescue Exception
205
211
  UI.error "#{@msg_prefix} remove has failed" unless @config[:silent]
206
212
  UI.error e
207
213
  stop_server
@@ -226,7 +232,11 @@ module Guard
226
232
  options[:config] = [options[:config]] unless options[:config].is_a? Array
227
233
  config = options
228
234
  end
229
- ::Jekyll.configuration(config)
235
+ Jekyll.configuration(config)
236
+ end
237
+
238
+ def check_jekyll_exclude(path)
239
+ return @config['exclude'].any? {|f| File.fnmatch?(path, f)}
230
240
  end
231
241
 
232
242
  def rack_config(root)
@@ -235,7 +245,7 @@ module Guard
235
245
  local_config = File.exist?('config.ru') ? 'config.ru' : nil
236
246
 
237
247
  config = (@config['rack_config'] || local_config || default_config)
238
- { :config => config, :Port => @config['port'], :Host => @config['host'] }
248
+ { :config => config, :Port => @config['port'], :Host => @config['host'], :environment => 'development' }
239
249
  end
240
250
 
241
251
  def local_path(path)
@@ -244,60 +254,47 @@ module Guard
244
254
  path = path.sub current, ''
245
255
  if path == ''
246
256
  './'
247
- else
248
- path.sub /^\//, ''
257
+ else
258
+ path.sub(/^\//, '')
249
259
  end
250
260
  end
261
+
262
+ def build_site(options)
263
+ Jekyll.logger.log_level = :error
264
+ site = Jekyll::Site.new(options)
265
+ Jekyll.logger.log_level = :info
266
+ site.process
267
+ end
251
268
 
269
+
252
270
  def destination_path(file)
253
271
  if @source =~ /^\./
254
272
  File.join @destination, file
255
273
  else
256
- file.sub /^#{@source}/, "#{@destination}"
274
+ file.sub(/^#{@source}/, "#{@destination}")
257
275
  end
258
276
  end
259
277
 
260
- # Remove
261
- def ignore_underscores(paths)
262
- paths.select { |file| file =~ /^[^_]/ }
263
- end
264
-
265
278
  def server(config)
266
- if @rack
267
- proc{ Process.fork { @rack.start } }
279
+ if defined? ::Rack
280
+ Thread.new { ::Rack::Server.start(rack_config(@destination)) }
281
+ UI.info "#{@msg_prefix} running Rack" unless @config[:silent]
268
282
  else
269
- proc{ Process.fork { ::Jekyll::Commands::Serve.process(config) } }
283
+ Thread.new { Jekyll::Commands::Serve.process(config) }
270
284
  end
271
285
  end
272
286
 
273
- def kill
274
- proc{|pid| Process.kill("INT", pid)}
275
- end
276
-
277
287
  def start_server
278
- return @pid if alive?
279
- @pid = instance_eval &server(@config)
280
- end
281
-
282
- def stop_server
283
- if alive?
284
- instance_eval do
285
- kill.call(@pid)
286
- @pid = nil
287
- end
288
+ if @server_thread.nil?
289
+ @server_thread = server(@config)
290
+ else
291
+ UI.warning "#{@msg_prefix} using an old server thread!"
288
292
  end
289
293
  end
290
-
291
- def alive?
292
- return false unless @pid
293
294
 
294
- begin
295
- Process.getpgid(@pid)
296
- true
297
- rescue Errno::ESRCH => e
298
- false
299
- end
295
+ def stop_server
296
+ @server_thread.kill unless @server_thread.nil?
297
+ @server_thread = nil
300
298
  end
301
299
  end
302
300
  end
303
-
@@ -1,5 +1,5 @@
1
1
  module Guard
2
2
  class JekyllPlusVersion
3
- VERSION = "1.4.10"
3
+ VERSION = "2.0.0"
4
4
  end
5
5
  end
@@ -0,0 +1 @@
1
+ Don't copy me.
@@ -1,2 +1,3 @@
1
1
  source: ./
2
2
  port: 4000
3
+ exclude: ['Testfile', 'Guardfile', 'Gemfile', 'Gemfile.lock']
metadata CHANGED
@@ -1,43 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guard-jekyll-plus
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.10
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandon Mathis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-12 00:00:00.000000000 Z
11
+ date: 2014-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: guard
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.8.3
19
+ version: '2.8'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.8.3
26
+ version: '2.8'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: jekyll
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: 1.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 1.0.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry-byebug
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: bundler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
41
83
  description: A Guard plugin for smarter Jekyll watching
42
84
  email:
43
85
  - brandon@imathis.com
@@ -45,10 +87,9 @@ executables: []
45
87
  extensions: []
46
88
  extra_rdoc_files: []
47
89
  files:
48
- - .gitignore
90
+ - ".gitignore"
49
91
  - CHANGELOG.md
50
92
  - Gemfile
51
- - Gemfile.lock
52
93
  - LICENSE.txt
53
94
  - README.md
54
95
  - Rakefile
@@ -60,8 +101,8 @@ files:
60
101
  - test/.gitignore
61
102
  - test/404.html
62
103
  - test/Gemfile
63
- - test/Gemfile.lock
64
104
  - test/Guardfile
105
+ - test/Testfile
65
106
  - test/_config.yml
66
107
  - test/_layouts/default.html
67
108
  - test/_layouts/post.html
@@ -84,17 +125,17 @@ require_paths:
84
125
  - lib
85
126
  required_ruby_version: !ruby/object:Gem::Requirement
86
127
  requirements:
87
- - - ! '>='
128
+ - - ">="
88
129
  - !ruby/object:Gem::Version
89
130
  version: '0'
90
131
  required_rubygems_version: !ruby/object:Gem::Requirement
91
132
  requirements:
92
- - - ! '>='
133
+ - - ">="
93
134
  - !ruby/object:Gem::Version
94
135
  version: '0'
95
136
  requirements: []
96
137
  rubyforge_project:
97
- rubygems_version: 2.0.7
138
+ rubygems_version: 2.4.1
98
139
  signing_key:
99
140
  specification_version: 4
100
141
  summary: A Guard plugin for Jekyll which intelligently handles changes to static and
@@ -1,70 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- guard-jekyll-plus (1.4.9)
5
- guard (>= 1.1.0)
6
- jekyll (>= 1.0.0)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- celluloid (0.15.2)
12
- timers (~> 1.1.0)
13
- classifier (1.3.3)
14
- fast-stemmer (>= 1.0.0)
15
- coderay (1.0.9)
16
- colorator (0.1)
17
- commander (4.1.5)
18
- highline (~> 1.6.11)
19
- directory_watcher (1.4.1)
20
- fast-stemmer (1.0.2)
21
- ffi (1.9.0)
22
- formatador (0.2.4)
23
- guard (2.0.5)
24
- formatador (>= 0.2.4)
25
- listen (~> 2.0)
26
- lumberjack (~> 1.0)
27
- pry (>= 0.9.12)
28
- thor (>= 0.18.1)
29
- highline (1.6.19)
30
- jekyll (1.2.1)
31
- classifier (~> 1.3)
32
- colorator (~> 0.1)
33
- commander (~> 4.1.3)
34
- directory_watcher (~> 1.4.1)
35
- liquid (~> 2.5.2)
36
- maruku (~> 0.5)
37
- pygments.rb (~> 0.5.0)
38
- redcarpet (~> 2.3.0)
39
- safe_yaml (~> 0.7.0)
40
- liquid (2.5.3)
41
- listen (2.0.4)
42
- celluloid (>= 0.15.2)
43
- rb-fsevent (>= 0.9.3)
44
- rb-inotify (>= 0.9)
45
- lumberjack (1.0.4)
46
- maruku (0.7.0)
47
- method_source (0.8.2)
48
- posix-spawn (0.3.6)
49
- pry (0.9.12.2)
50
- coderay (~> 1.0.5)
51
- method_source (~> 0.8)
52
- slop (~> 3.4)
53
- pygments.rb (0.5.2)
54
- posix-spawn (~> 0.3.6)
55
- yajl-ruby (~> 1.1.0)
56
- rb-fsevent (0.9.3)
57
- rb-inotify (0.9.2)
58
- ffi (>= 0.5.0)
59
- redcarpet (2.3.0)
60
- safe_yaml (0.7.1)
61
- slop (3.4.6)
62
- thor (0.18.1)
63
- timers (1.1.0)
64
- yajl-ruby (1.1.0)
65
-
66
- PLATFORMS
67
- ruby
68
-
69
- DEPENDENCIES
70
- guard-jekyll-plus!
@@ -1,73 +0,0 @@
1
- PATH
2
- remote: ../
3
- specs:
4
- guard-jekyll-plus (1.4.9)
5
- guard (>= 1.1.0)
6
- jekyll (>= 1.0.0)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- classifier (1.3.3)
12
- fast-stemmer (>= 1.0.0)
13
- coderay (1.0.9)
14
- colorator (0.1)
15
- commander (4.1.5)
16
- highline (~> 1.6.11)
17
- directory_watcher (1.4.1)
18
- fast-stemmer (1.0.2)
19
- ffi (1.9.0)
20
- formatador (0.2.4)
21
- guard (1.8.2)
22
- formatador (>= 0.2.4)
23
- listen (>= 1.0.0)
24
- lumberjack (>= 1.0.2)
25
- pry (>= 0.9.10)
26
- thor (>= 0.14.6)
27
- highline (1.6.19)
28
- jekyll (1.1.2)
29
- classifier (~> 1.3)
30
- colorator (~> 0.1)
31
- commander (~> 4.1.3)
32
- directory_watcher (~> 1.4.1)
33
- kramdown (~> 1.0.2)
34
- liquid (~> 2.5.1)
35
- maruku (~> 0.5)
36
- pygments.rb (~> 0.5.0)
37
- redcarpet (~> 2.2.2)
38
- safe_yaml (~> 0.7.0)
39
- kramdown (1.0.2)
40
- liquid (2.5.1)
41
- listen (1.3.0)
42
- rb-fsevent (>= 0.9.3)
43
- rb-inotify (>= 0.9)
44
- rb-kqueue (>= 0.2)
45
- lumberjack (1.0.4)
46
- maruku (0.6.1)
47
- syntax (>= 1.0.0)
48
- method_source (0.8.2)
49
- posix-spawn (0.3.6)
50
- pry (0.9.12.2)
51
- coderay (~> 1.0.5)
52
- method_source (~> 0.8)
53
- slop (~> 3.4)
54
- pygments.rb (0.5.2)
55
- posix-spawn (~> 0.3.6)
56
- yajl-ruby (~> 1.1.0)
57
- rb-fsevent (0.9.3)
58
- rb-inotify (0.9.1)
59
- ffi (>= 0.5.0)
60
- rb-kqueue (0.2.0)
61
- ffi (>= 0.5.0)
62
- redcarpet (2.2.2)
63
- safe_yaml (0.7.1)
64
- slop (3.4.6)
65
- syntax (1.0.0)
66
- thor (0.18.1)
67
- yajl-ruby (1.1.0)
68
-
69
- PLATFORMS
70
- ruby
71
-
72
- DEPENDENCIES
73
- guard-jekyll-plus!