guard-jekyll-plus 1.1.1 → 1.1.2

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
@@ -12,7 +12,7 @@ Features:
12
12
 
13
13
  Here's a look
14
14
 
15
- ![Colorized output](http://cl.ly/QAK9/content.png)
15
+ ![Colorized output](http://cl.ly/Q9qK/content.png)
16
16
 
17
17
  ## Installation
18
18
 
@@ -71,11 +71,15 @@ For the most part that's all you'll ever need to do. There are some things you c
71
71
 
72
72
  This guard has two configurations.
73
73
 
74
- | Config | Description | Default
75
- |:-------------|:-------------------------------------------------|:---------------------------------------------------------------------------|
76
- | `extensions` | Array of file extensions to trigger Jekyll build | ['md', 'mkd', 'markdown', 'textile', 'html', 'haml', 'slim', 'xml', 'yml'] |
77
- | `config` | Array of configuration files | ['_config.yml'] |
78
- | `serve` | Use Jekyll's build in WEBrick server | false |
74
+ | Config | Description | Default
75
+ |:--------------|:-------------------------------------------------|:-----------------------------------------------------------------------------------|
76
+ | `extensions` | Array of file extensions to trigger Jekyll build | ['md', 'mkd', 'mkdn', 'markdown', 'textile', 'html', 'haml', 'slim', 'xml', 'yml'] |
77
+ | `config` | Array of configuration files | ['_config.yml'] |
78
+ | `serve` | Use Jekyll's build in WEBrick server | false |
79
+ | `drafts` | Build your site with draft posts | false |
80
+ | `future` | Build your site with future dated posts | false |
81
+ | `config_hash` | Use a config hash instead of an array of files | nil |
82
+ | `silent` | Slience all output other than exception message | false |
79
83
 
80
84
  **Note:** customizations to the `extensions` configuration are additive.
81
85
 
@@ -1,5 +1,5 @@
1
1
  module Guard
2
2
  class JekyllVersion
3
- VERSION = "1.1.1"
3
+ VERSION = "1.1.2"
4
4
  end
5
5
  end
data/lib/guard/jekyll.rb CHANGED
@@ -11,24 +11,54 @@ module Guard
11
11
  def initialize (watchers=[], options={})
12
12
  super
13
13
 
14
- default_extensions = ['md','mkd','markdown','textile','html','haml','slim','xml','yml']
14
+ default_extensions = ['md','mkd','mkdn','markdown','textile','html','haml','slim','xml','yml']
15
15
 
16
16
  @options = {
17
17
  :extensions => [],
18
18
  :config => ['_config.yml'],
19
- :serve => false
19
+ :serve => false,
20
+ :drafts => false,
21
+ :future => false,
22
+ :config_hash => nil,
23
+ :silent => false
20
24
  }.merge(options)
21
25
 
22
- @pid = nil
23
- @config = jekyll_config(@options)
24
- @site = ::Jekyll::Site.new @config
26
+ # The config_hash option should be a hash ready to be consumed by Jekyll's Site class.
27
+ #
28
+ @config = @options[:config_hash] || jekyll_config(@options)
29
+
30
+ # Override configuration with passed values
31
+ #
32
+ @config['show_drafts'] ||= @options[:drafts]
33
+ @config['future'] ||= @options[:future]
34
+
35
+ # Ensure required configurations are set
36
+ # This ensures that config_hash option will succeed if set
37
+ #
38
+ @config['source'] ||= Dir.pwd
39
+ @config['desitnation'] ||= File.join(Dir.pwd, '_site')
40
+ @config['permalink'] ||= 'date'
41
+ @config['limit_posts'] ||= 0
42
+
43
+ # Store vars for easy internal access
44
+ #
25
45
  @source = local_path @config['source']
26
46
  @destination = local_path @config['destination']
27
-
28
- extensions = @options[:extensions].concat(default_extensions).flatten.uniq
47
+ @label = "Guard::Jekyll"
48
+
29
49
  # Convert array of extensions into a regex for matching file extensions eg, /\.md$|\.markdown$|\.html$/i
50
+ #
51
+ extensions = @options[:extensions].concat(default_extensions).flatten.uniq
30
52
  @extensions = Regexp.new extensions.map { |e| (e << '$').gsub('\.', '\\.') }.join('|'), true
31
53
 
54
+ # set Jekyll server process id to nil
55
+ #
56
+ @pid = nil
57
+
58
+ # Create a Jekyll site
59
+ #
60
+ @site = ::Jekyll::Site.new @config
61
+
32
62
  end
33
63
 
34
64
  def start
@@ -36,10 +66,10 @@ module Guard
36
66
  if @options[:serve]
37
67
  start_server
38
68
 
39
- UI.info "Guard::Jekyll " + "watching and serving at #{@config['host']}:#{@config['port']}#{@config['baseurl']}"
69
+ UI.info "#{@label} " + "watching and serving at #{@config['host']}:#{@config['port']}#{@config['baseurl']}" unless @config[:silent]
40
70
  else
41
71
  build
42
- UI.info "Guard::Jekyll " + "watching"
72
+ UI.info "#{@label} " + "watching" unless @config[:silent]
43
73
  end
44
74
  end
45
75
 
@@ -74,17 +104,17 @@ module Guard
74
104
 
75
105
  def build(changes=nil)
76
106
  begin
77
- UI.info "Guard::Jekyll " + "building...".yellow
107
+ UI.info "#{@label} " + "building...".yellow unless @config[:silent]
78
108
  if changes
79
109
  puts '| ' # spacing
80
110
  changes.each { |file| puts '|' + " ~ ".yellow + file }
81
111
  puts '| ' # spacing
82
112
  end
83
113
  @site.process
84
- UI.info "Guard::Jekyll " + "build complete ".green + "#{@source} → #{@destination}"
114
+ UI.info "#{@label} " + "build complete ".green + "#{@source} → #{@destination}" unless @config[:silent]
85
115
 
86
116
  rescue Exception => e
87
- UI.error "Guard::Jekyll build has failed"
117
+ UI.error "#{@label} build has failed" unless @config[:silent]
88
118
  stop_server
89
119
  throw :task_has_failed
90
120
  end
@@ -96,7 +126,7 @@ module Guard
96
126
  begin
97
127
  message = 'copied file'
98
128
  message += 's' if files.size > 1
99
- UI.info "Guard::Jekyll #{message.green}"
129
+ UI.info "#{@label} #{message.green}" unless @config[:silent]
100
130
  puts '| ' #spacing
101
131
  files.each do |file|
102
132
  path = destination_path file
@@ -107,7 +137,7 @@ module Guard
107
137
  puts '| ' #spacing
108
138
 
109
139
  rescue Exception => e
110
- UI.error "Guard::Jekyll copy has failed"
140
+ UI.error "#{@label} copy has failed" unless @config[:silent]
111
141
  UI.error e
112
142
  stop_server
113
143
  throw :task_has_failed
@@ -121,7 +151,7 @@ module Guard
121
151
  begin
122
152
  message = 'removed file'
123
153
  message += 's' if files.size > 1
124
- UI.info "Guard::Jekyll #{message.red}"
154
+ UI.info "#{@label} #{message.red}" unless @config[:silent]
125
155
  puts '| ' #spacing
126
156
 
127
157
  files.each do |file|
@@ -140,7 +170,7 @@ module Guard
140
170
  puts '| ' #spacing
141
171
 
142
172
  rescue Exception => e
143
- UI.error "Guard::Jekyll remove has failed"
173
+ UI.error "#{@label} remove has failed" unless @config[:silent]
144
174
  UI.error e
145
175
  stop_server
146
176
  throw :task_has_failed
@@ -226,8 +256,6 @@ module Guard
226
256
  false
227
257
  end
228
258
  end
229
-
230
-
231
259
  end
232
260
  end
233
261
 
data/test/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../
3
3
  specs:
4
- guard-jekyll-plus (1.1.0)
4
+ guard-jekyll-plus (1.1.2)
5
5
  guard (>= 1.1.0)
6
6
  jekyll (>= 1.0.0)
7
7
 
File without changes
File without changes
File without changes
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guard-jekyll-plus
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
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-07-10 00:00:00.000000000 Z
12
+ date: 2013-07-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: guard
@@ -72,6 +72,10 @@ files:
72
72
  - test/_posts/2013-07-08-welcome-to-jekyll.markdown
73
73
  - test/css/main.css
74
74
  - test/css/syntax.css
75
+ - test/images/app.net.png
76
+ - test/images/facebook.png
77
+ - test/images/logo.png
78
+ - test/images/twitter.png
75
79
  - test/index.html
76
80
  homepage: http://github.com/imathis/guard-jekyll-plus
77
81
  licenses: []