middleman-core 3.2.1 → 3.2.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.
- checksums.yaml +4 -4
- data/Rakefile +1 -1
- data/features/helpers_select_tag.feature +19 -0
- data/lib/middleman-core.rb +4 -4
- data/lib/middleman-core/application.rb +40 -46
- data/lib/middleman-core/cli.rb +15 -15
- data/lib/middleman-core/cli/build.rb +26 -24
- data/lib/middleman-core/cli/bundler.rb +4 -4
- data/lib/middleman-core/cli/console.rb +6 -6
- data/lib/middleman-core/cli/extension.rb +12 -12
- data/lib/middleman-core/cli/init.rb +17 -17
- data/lib/middleman-core/cli/server.rb +28 -28
- data/lib/middleman-core/configuration.rb +2 -2
- data/lib/middleman-core/core_extensions.rb +23 -23
- data/lib/middleman-core/core_extensions/data.rb +5 -5
- data/lib/middleman-core/core_extensions/extensions.rb +6 -6
- data/lib/middleman-core/core_extensions/external_helpers.rb +2 -2
- data/lib/middleman-core/core_extensions/file_watcher.rb +3 -3
- data/lib/middleman-core/core_extensions/front_matter.rb +11 -11
- data/lib/middleman-core/core_extensions/rendering.rb +21 -21
- data/lib/middleman-core/core_extensions/request.rb +10 -8
- data/lib/middleman-core/core_extensions/routing.rb +1 -1
- data/lib/middleman-core/extensions.rb +5 -5
- data/lib/middleman-core/load_paths.rb +7 -7
- data/lib/middleman-core/logger.rb +13 -1
- data/lib/middleman-core/meta_pages.rb +2 -2
- data/lib/middleman-core/meta_pages/config_setting.rb +3 -3
- data/lib/middleman-core/meta_pages/sitemap_resource.rb +2 -2
- data/lib/middleman-core/meta_pages/sitemap_tree.rb +4 -4
- data/lib/middleman-core/preview_server.rb +16 -12
- data/lib/middleman-core/profiling.rb +1 -1
- data/lib/middleman-core/renderers/coffee_script.rb +1 -1
- data/lib/middleman-core/renderers/erb.rb +1 -1
- data/lib/middleman-core/renderers/haml.rb +1 -1
- data/lib/middleman-core/renderers/kramdown.rb +2 -2
- data/lib/middleman-core/renderers/less.rb +2 -2
- data/lib/middleman-core/renderers/liquid.rb +1 -1
- data/lib/middleman-core/renderers/markdown.rb +3 -3
- data/lib/middleman-core/renderers/redcarpet.rb +1 -1
- data/lib/middleman-core/renderers/sass.rb +7 -7
- data/lib/middleman-core/renderers/slim.rb +2 -2
- data/lib/middleman-core/renderers/stylus.rb +2 -2
- data/lib/middleman-core/sitemap.rb +8 -8
- data/lib/middleman-core/sitemap/extensions/ignores.rb +2 -2
- data/lib/middleman-core/sitemap/extensions/redirects.rb +4 -1
- data/lib/middleman-core/sitemap/extensions/traversal.rb +6 -6
- data/lib/middleman-core/sitemap/queryable.rb +3 -3
- data/lib/middleman-core/sitemap/resource.rb +6 -6
- data/lib/middleman-core/sitemap/store.rb +12 -12
- data/lib/middleman-core/step_definitions.rb +5 -5
- data/lib/middleman-core/step_definitions/builder_steps.rb +5 -5
- data/lib/middleman-core/step_definitions/server_steps.rb +6 -6
- data/lib/middleman-core/templates.rb +14 -14
- data/lib/middleman-core/templates/default.rb +17 -17
- data/lib/middleman-core/templates/empty.rb +3 -3
- data/lib/middleman-core/templates/extension/Gemfile +7 -7
- data/lib/middleman-core/templates/extension/Rakefile +1 -1
- data/lib/middleman-core/templates/extension/features/support/env.rb +2 -2
- data/lib/middleman-core/templates/extension/lib/lib.rb +2 -2
- data/lib/middleman-core/templates/extension/lib/middleman_extension.rb +1 -1
- data/lib/middleman-core/templates/html5.rb +9 -9
- data/lib/middleman-core/templates/local.rb +3 -3
- data/lib/middleman-core/templates/mobile.rb +6 -6
- data/lib/middleman-core/templates/shared/config.tt +1 -1
- data/lib/middleman-core/util.rb +234 -182
- data/lib/middleman-core/version.rb +1 -1
- data/lib/middleman-more/core_extensions/compass.rb +3 -3
- data/lib/middleman-more/core_extensions/default_helpers.rb +21 -10
- data/lib/middleman-more/core_extensions/i18n.rb +18 -18
- data/lib/middleman-more/extensions/asset_hash.rb +7 -5
- data/lib/middleman-more/extensions/asset_host.rb +2 -2
- data/lib/middleman-more/extensions/automatic_alt_tags.rb +4 -4
- data/lib/middleman-more/extensions/automatic_image_sizes.rb +3 -3
- data/lib/middleman-more/extensions/cache_buster.rb +7 -7
- data/lib/middleman-more/extensions/lorem.rb +5 -5
- data/lib/middleman-more/extensions/minify_css.rb +4 -4
- data/lib/middleman-more/extensions/minify_javascript.rb +3 -3
- data/lib/middleman-more/extensions/relative_assets.rb +1 -1
- data/lib/middleman-more/templates/smacss.rb +10 -10
- data/lib/middleman/rack.rb +2 -2
- data/middleman-core.gemspec +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 399878e22fa5885a804711e6492dca948a8b31f6
|
|
4
|
+
data.tar.gz: 85bfe5dd5d745dc7cfb3dff4f92bdc5fcc0bec2e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: aecbe3601a5a83dc338598bf3eda63906ebb3ee2f6c22e3d27786763245e0e89b1245d731dda9561c8914c0491482ef4aac432f777722ed62bd14c09cf732aef
|
|
7
|
+
data.tar.gz: 807a69fdf80e525bda9d44fd08615395a6bd23bca2c846480fc05b095ef38ec729e9fef8ab42397859964fb5e71b8e132c76e4b8459fc2a35c99da4228100ab3
|
data/Rakefile
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Feature: select_tag helper
|
|
2
|
+
|
|
3
|
+
Scenario: select_tag produces correct options
|
|
4
|
+
Given a fixture app "indexable-app"
|
|
5
|
+
And an empty file named "config.rb"
|
|
6
|
+
And a file named "source/select_tag.html.erb" with:
|
|
7
|
+
"""
|
|
8
|
+
options as array: <%= select_tag :colors, options: ["red", "blue", "blorange"], include_blank: "Choose a color" %>
|
|
9
|
+
"""
|
|
10
|
+
And the Server is running at "indexable-app"
|
|
11
|
+
When I go to "/select_tag.html"
|
|
12
|
+
Then I should see:
|
|
13
|
+
"""
|
|
14
|
+
<select name="colors"><option value="">Choose a color</option>
|
|
15
|
+
<option value="red">red</option>
|
|
16
|
+
<option value="blue">blue</option>
|
|
17
|
+
<option value="blorange">blorange</option>
|
|
18
|
+
</select>
|
|
19
|
+
"""
|
data/lib/middleman-core.rb
CHANGED
|
@@ -10,7 +10,7 @@ module Middleman
|
|
|
10
10
|
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
require
|
|
14
|
-
require
|
|
15
|
-
require
|
|
16
|
-
require
|
|
13
|
+
require 'middleman-core/version'
|
|
14
|
+
require 'middleman-core/util'
|
|
15
|
+
require 'middleman-core/extensions'
|
|
16
|
+
require 'middleman-core/application'
|
|
@@ -1,21 +1,28 @@
|
|
|
1
1
|
# Using Tilt for templating
|
|
2
|
-
require
|
|
2
|
+
require 'tilt'
|
|
3
3
|
|
|
4
4
|
# i18n Built-in
|
|
5
|
-
require
|
|
5
|
+
require 'i18n'
|
|
6
|
+
|
|
7
|
+
# Don't fail on invalid locale, that's not what our current
|
|
8
|
+
# users expect.
|
|
9
|
+
::I18n.config.enforce_available_locales = false
|
|
6
10
|
|
|
7
11
|
# Use ActiveSupport JSON
|
|
8
|
-
require
|
|
9
|
-
require
|
|
10
|
-
require
|
|
12
|
+
require 'active_support/json'
|
|
13
|
+
require 'active_support/core_ext/integer/inflections'
|
|
14
|
+
require 'active_support/core_ext/float/rounding'
|
|
11
15
|
|
|
12
16
|
# Simple callback library
|
|
13
|
-
require
|
|
17
|
+
require 'vendored-middleman-deps/hooks-0.2.0/lib/hooks'
|
|
18
|
+
|
|
19
|
+
# Our custom logger
|
|
20
|
+
require 'middleman-core/logger'
|
|
14
21
|
|
|
15
|
-
require
|
|
22
|
+
require 'middleman-core/sitemap'
|
|
16
23
|
|
|
17
|
-
require
|
|
18
|
-
require
|
|
24
|
+
require 'middleman-core/configuration'
|
|
25
|
+
require 'middleman-core/core_extensions'
|
|
19
26
|
|
|
20
27
|
# Core Middleman Class
|
|
21
28
|
module Middleman
|
|
@@ -47,7 +54,7 @@ module Middleman
|
|
|
47
54
|
# Root project directory (overwritten in middleman build/server)
|
|
48
55
|
# @return [String]
|
|
49
56
|
def self.root
|
|
50
|
-
ENV[
|
|
57
|
+
ENV['MM_ROOT'] || Dir.pwd
|
|
51
58
|
end
|
|
52
59
|
delegate :root, :to => :"self.class"
|
|
53
60
|
|
|
@@ -59,7 +66,7 @@ module Middleman
|
|
|
59
66
|
|
|
60
67
|
# Name of the source directory
|
|
61
68
|
# @return [String]
|
|
62
|
-
config.define_setting :source,
|
|
69
|
+
config.define_setting :source, 'source', 'Name of the source directory'
|
|
63
70
|
|
|
64
71
|
# Middleman environment. Defaults to :development, set to :build by the build process
|
|
65
72
|
# @return [String]
|
|
@@ -67,7 +74,7 @@ module Middleman
|
|
|
67
74
|
|
|
68
75
|
# Which file should be used for directory indexes
|
|
69
76
|
# @return [String]
|
|
70
|
-
config.define_setting :index_file,
|
|
77
|
+
config.define_setting :index_file, 'index.html', 'Which file should be used for directory indexes'
|
|
71
78
|
|
|
72
79
|
# Whether to strip the index file name off links to directory indexes
|
|
73
80
|
# @return [Boolean]
|
|
@@ -79,35 +86,35 @@ module Middleman
|
|
|
79
86
|
|
|
80
87
|
# Location of javascripts within source.
|
|
81
88
|
# @return [String]
|
|
82
|
-
config.define_setting :js_dir,
|
|
89
|
+
config.define_setting :js_dir, 'javascripts', 'Location of javascripts within source'
|
|
83
90
|
|
|
84
91
|
# Location of stylesheets within source. Used by Compass.
|
|
85
92
|
# @return [String]
|
|
86
|
-
config.define_setting :css_dir,
|
|
93
|
+
config.define_setting :css_dir, 'stylesheets', 'Location of stylesheets within source'
|
|
87
94
|
|
|
88
95
|
# Location of images within source. Used by HTML helpers and Compass.
|
|
89
96
|
# @return [String]
|
|
90
|
-
config.define_setting :images_dir,
|
|
97
|
+
config.define_setting :images_dir, 'images', 'Location of images within source'
|
|
91
98
|
|
|
92
99
|
# Location of fonts within source. Used by Compass.
|
|
93
100
|
# @return [String]
|
|
94
|
-
config.define_setting :fonts_dir,
|
|
101
|
+
config.define_setting :fonts_dir, 'fonts', 'Location of fonts within source'
|
|
95
102
|
|
|
96
103
|
# Location of partials within source. Used by renderers.
|
|
97
104
|
# @return [String]
|
|
98
|
-
config.define_setting :partials_dir,
|
|
105
|
+
config.define_setting :partials_dir, '', 'Location of partials within source'
|
|
99
106
|
|
|
100
107
|
# Location of layouts within source. Used by renderers.
|
|
101
108
|
# @return [String]
|
|
102
|
-
config.define_setting :layouts_dir,
|
|
109
|
+
config.define_setting :layouts_dir, 'layouts', 'Location of layouts within source'
|
|
103
110
|
|
|
104
111
|
# Where to build output files
|
|
105
112
|
# @return [String]
|
|
106
|
-
config.define_setting :build_dir,
|
|
113
|
+
config.define_setting :build_dir, 'build', 'Where to build output files'
|
|
107
114
|
|
|
108
115
|
# Default prefix for building paths. Used by HTML helpers and Compass.
|
|
109
116
|
# @return [String]
|
|
110
|
-
config.define_setting :http_prefix,
|
|
117
|
+
config.define_setting :http_prefix, '/', 'Default prefix for building paths'
|
|
111
118
|
|
|
112
119
|
# Default layout name
|
|
113
120
|
# @return [String, Symbold]
|
|
@@ -115,7 +122,7 @@ module Middleman
|
|
|
115
122
|
|
|
116
123
|
# Default string encoding for templates and output.
|
|
117
124
|
# @return [String]
|
|
118
|
-
config.define_setting :encoding,
|
|
125
|
+
config.define_setting :encoding, 'utf-8', 'Default string encoding for templates and output'
|
|
119
126
|
|
|
120
127
|
# Should Padrino include CRSF tag
|
|
121
128
|
# @return [Boolean]
|
|
@@ -152,8 +159,12 @@ module Middleman
|
|
|
152
159
|
# with_layout and page routing
|
|
153
160
|
include Middleman::CoreExtensions::Routing
|
|
154
161
|
|
|
162
|
+
attr_reader :logger
|
|
163
|
+
|
|
155
164
|
# Initialize the Middleman project
|
|
156
165
|
def initialize(&block)
|
|
166
|
+
@logger = ::Middleman::Logger.singleton
|
|
167
|
+
|
|
157
168
|
# Clear the static class cache
|
|
158
169
|
cache.clear
|
|
159
170
|
|
|
@@ -168,7 +179,7 @@ module Middleman
|
|
|
168
179
|
# Evaluate a passed block if given
|
|
169
180
|
instance_exec(&block) if block_given?
|
|
170
181
|
|
|
171
|
-
config[:source] = ENV[
|
|
182
|
+
config[:source] = ENV['MM_SOURCE'] if ENV['MM_SOURCE']
|
|
172
183
|
|
|
173
184
|
super
|
|
174
185
|
end
|
|
@@ -184,11 +195,15 @@ module Middleman
|
|
|
184
195
|
|
|
185
196
|
# Whether we're in development mode
|
|
186
197
|
# @return [Boolean] If we're in dev mode
|
|
187
|
-
def development
|
|
198
|
+
def development?
|
|
199
|
+
config[:environment] == :development
|
|
200
|
+
end
|
|
188
201
|
|
|
189
202
|
# Whether we're in build mode
|
|
190
203
|
# @return [Boolean] If we're in build mode
|
|
191
|
-
def build
|
|
204
|
+
def build?
|
|
205
|
+
config[:environment] == :build
|
|
206
|
+
end
|
|
192
207
|
|
|
193
208
|
# The full path to the source directory
|
|
194
209
|
#
|
|
@@ -197,7 +212,7 @@ module Middleman
|
|
|
197
212
|
File.join(root, config[:source])
|
|
198
213
|
end
|
|
199
214
|
|
|
200
|
-
delegate :
|
|
215
|
+
delegate :instrument, :to => ::Middleman::Util
|
|
201
216
|
|
|
202
217
|
# Work around this bug: http://bugs.ruby-lang.org/issues/4521
|
|
203
218
|
# where Ruby will call to_s/inspect while printing exception
|
|
@@ -208,27 +223,6 @@ module Middleman
|
|
|
208
223
|
end
|
|
209
224
|
alias :inspect :to_s # Ruby 2.0 calls inspect for NoMethodError instead of to_s
|
|
210
225
|
|
|
211
|
-
# Expand a path to include the index file if it's a directory
|
|
212
|
-
#
|
|
213
|
-
# @private
|
|
214
|
-
# @param [String] path Request path
|
|
215
|
-
# @return [String] Path with index file if necessary
|
|
216
|
-
def full_path(path)
|
|
217
|
-
resource = sitemap.find_resource_by_destination_path(path)
|
|
218
|
-
|
|
219
|
-
if !resource
|
|
220
|
-
# Try it with /index.html at the end
|
|
221
|
-
indexed_path = File.join(path.sub(%r{/$}, ''), config[:index_file])
|
|
222
|
-
resource = sitemap.find_resource_by_destination_path(indexed_path)
|
|
223
|
-
end
|
|
224
|
-
|
|
225
|
-
if resource
|
|
226
|
-
'/' + resource.destination_path
|
|
227
|
-
else
|
|
228
|
-
'/' + Middleman::Util.normalize_path(path)
|
|
229
|
-
end
|
|
230
|
-
end
|
|
231
|
-
|
|
232
226
|
end
|
|
233
227
|
end
|
|
234
228
|
|
data/lib/middleman-core/cli.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Require thor since that's what the who CLI is built around
|
|
2
2
|
require 'thor'
|
|
3
|
-
require
|
|
3
|
+
require 'thor/group'
|
|
4
4
|
|
|
5
5
|
# CLI Module
|
|
6
6
|
module Middleman
|
|
@@ -12,18 +12,18 @@ module Middleman
|
|
|
12
12
|
class << self
|
|
13
13
|
def start(*args)
|
|
14
14
|
# Change flag to a module
|
|
15
|
-
ARGV.unshift(
|
|
15
|
+
ARGV.unshift('help') if ARGV.delete('--help')
|
|
16
16
|
|
|
17
17
|
# Default command is server
|
|
18
|
-
if ARGV[0] !=
|
|
19
|
-
ARGV.unshift(
|
|
18
|
+
if ARGV[0] != 'help' && (ARGV.length < 1 || ARGV.first.include?('-'))
|
|
19
|
+
ARGV.unshift('server')
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
super
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
-
desc
|
|
26
|
+
desc 'version', 'Show version'
|
|
27
27
|
def version
|
|
28
28
|
require 'middleman-core/version'
|
|
29
29
|
say "Middleman #{Middleman::VERSION}"
|
|
@@ -36,7 +36,7 @@ module Middleman
|
|
|
36
36
|
def help(meth = nil, subcommand = false)
|
|
37
37
|
if meth && !self.respond_to?(meth)
|
|
38
38
|
klass, task = Thor::Util.find_class_and_task_by_namespace("#{meth}:#{meth}")
|
|
39
|
-
klass.start([
|
|
39
|
+
klass.start(['-h', task].compact, :shell => self.shell)
|
|
40
40
|
else
|
|
41
41
|
list = []
|
|
42
42
|
Thor::Util.thor_classes_in(Middleman::Cli).each do |thor_class|
|
|
@@ -44,7 +44,7 @@ module Middleman
|
|
|
44
44
|
end
|
|
45
45
|
list.sort!{ |a,b| a[0] <=> b[0] }
|
|
46
46
|
|
|
47
|
-
shell.say
|
|
47
|
+
shell.say 'Tasks:'
|
|
48
48
|
shell.print_table(list, :ident => 2, :truncate => true)
|
|
49
49
|
shell.say
|
|
50
50
|
end
|
|
@@ -62,10 +62,10 @@ module Middleman
|
|
|
62
62
|
klass, task = Thor::Util.find_class_and_task_by_namespace("#{meth}:#{meth}")
|
|
63
63
|
|
|
64
64
|
if klass.nil?
|
|
65
|
-
tasks_dir = File.join(Dir.pwd,
|
|
65
|
+
tasks_dir = File.join(Dir.pwd, 'tasks')
|
|
66
66
|
|
|
67
67
|
if File.exists?(tasks_dir)
|
|
68
|
-
Dir[File.join(tasks_dir,
|
|
68
|
+
Dir[File.join(tasks_dir, '**/*_task.rb')].each { |f| require f }
|
|
69
69
|
klass, task = Thor::Util.find_class_and_task_by_namespace("#{meth}:#{meth}")
|
|
70
70
|
end
|
|
71
71
|
end
|
|
@@ -82,9 +82,9 @@ module Middleman
|
|
|
82
82
|
end
|
|
83
83
|
|
|
84
84
|
# Include the core CLI items
|
|
85
|
-
require
|
|
86
|
-
require
|
|
87
|
-
require
|
|
88
|
-
require
|
|
89
|
-
require
|
|
90
|
-
require
|
|
85
|
+
require 'middleman-core/cli/init'
|
|
86
|
+
require 'middleman-core/cli/bundler'
|
|
87
|
+
require 'middleman-core/cli/extension'
|
|
88
|
+
require 'middleman-core/cli/server'
|
|
89
|
+
require 'middleman-core/cli/build'
|
|
90
|
+
require 'middleman-core/cli/console'
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
1
|
+
require 'middleman-core'
|
|
2
|
+
require 'middleman-core/logger'
|
|
3
|
+
|
|
4
|
+
require 'fileutils'
|
|
3
5
|
require 'set'
|
|
4
6
|
|
|
5
7
|
# CLI Module
|
|
6
8
|
module Middleman::Cli
|
|
7
9
|
# Alias "b" to "build"
|
|
8
|
-
Base.map({
|
|
10
|
+
Base.map({ 'b' => 'build' })
|
|
9
11
|
|
|
10
12
|
# The CLI Build class
|
|
11
13
|
class Build < Thor
|
|
@@ -18,14 +20,14 @@ module Middleman::Cli
|
|
|
18
20
|
|
|
19
21
|
namespace :build
|
|
20
22
|
|
|
21
|
-
desc
|
|
23
|
+
desc 'build [options]', 'Builds the static site for deployment'
|
|
22
24
|
method_option :clean,
|
|
23
25
|
:type => :boolean,
|
|
24
26
|
:default => true,
|
|
25
27
|
:desc => 'Remove orphaned files from build (--no-clean to disable)'
|
|
26
28
|
method_option :glob,
|
|
27
29
|
:type => :string,
|
|
28
|
-
:aliases =>
|
|
30
|
+
:aliases => '-g',
|
|
29
31
|
:default => nil,
|
|
30
32
|
:desc => 'Build a subset of the project'
|
|
31
33
|
method_option :verbose,
|
|
@@ -44,33 +46,33 @@ module Middleman::Cli
|
|
|
44
46
|
# Core build Thor command
|
|
45
47
|
# @return [void]
|
|
46
48
|
def build
|
|
47
|
-
if !ENV[
|
|
48
|
-
raise Thor::Error,
|
|
49
|
+
if !ENV['MM_ROOT']
|
|
50
|
+
raise Thor::Error, 'Error: Could not find a Middleman project config, perhaps you are in the wrong folder?'
|
|
49
51
|
end
|
|
50
52
|
|
|
51
53
|
# Use Rack::Test for inspecting a running server for output
|
|
52
|
-
require
|
|
53
|
-
require
|
|
54
|
+
require 'rack'
|
|
55
|
+
require 'rack/test'
|
|
54
56
|
|
|
55
57
|
require 'find'
|
|
56
58
|
|
|
57
59
|
@debugging = Middleman::Cli::Base.respond_to?(:debugging) && Middleman::Cli::Base.debugging
|
|
58
60
|
self.had_errors = false
|
|
59
61
|
|
|
60
|
-
self.class.shared_instance(options[
|
|
62
|
+
self.class.shared_instance(options['verbose'], options['instrument'])
|
|
61
63
|
|
|
62
64
|
opts = {}
|
|
63
|
-
opts[:glob] = options[
|
|
64
|
-
opts[:clean] = options[
|
|
65
|
+
opts[:glob] = options['glob'] if options.has_key?('glob')
|
|
66
|
+
opts[:clean] = options['clean']
|
|
65
67
|
|
|
66
68
|
action BuildAction.new(self, opts)
|
|
67
69
|
|
|
68
70
|
self.class.shared_instance.run_hook :after_build, self
|
|
69
71
|
|
|
70
72
|
if self.had_errors && !self.debugging
|
|
71
|
-
msg =
|
|
72
|
-
unless options[
|
|
73
|
-
msg <<
|
|
73
|
+
msg = 'There were errors during this build'
|
|
74
|
+
unless options['verbose']
|
|
75
|
+
msg << ', re-run with `middleman build --verbose` to see the full exception.'
|
|
74
76
|
end
|
|
75
77
|
self.shell.say msg, :red
|
|
76
78
|
end
|
|
@@ -90,7 +92,7 @@ module Middleman::Cli
|
|
|
90
92
|
def shared_instance(verbose=false, instrument=false)
|
|
91
93
|
@_shared_instance ||= ::Middleman::Application.server.inst do
|
|
92
94
|
config[:environment] = :build
|
|
93
|
-
|
|
95
|
+
::Middleman::Logger.singleton(verbose ? 0 : 1, instrument)
|
|
94
96
|
end
|
|
95
97
|
end
|
|
96
98
|
end
|
|
@@ -134,7 +136,7 @@ module Middleman::Cli
|
|
|
134
136
|
base.remove_file f, :force => true
|
|
135
137
|
end
|
|
136
138
|
|
|
137
|
-
Dir[@build_dir.join(
|
|
139
|
+
Dir[@build_dir.join('**', '*')].select {|d| File.directory?(d) }.each do |d|
|
|
138
140
|
base.remove_file d, :force => true if directory_empty? d
|
|
139
141
|
end
|
|
140
142
|
end
|
|
@@ -177,15 +179,15 @@ module Middleman::Cli
|
|
|
177
179
|
sort_order = %w(.png .jpeg .jpg .gif .bmp .svg .svgz .ico .woff .otf .ttf .eot .js .css)
|
|
178
180
|
|
|
179
181
|
# Pre-request CSS to give Compass a chance to build sprites
|
|
180
|
-
logger.debug
|
|
182
|
+
logger.debug '== Prerendering CSS'
|
|
181
183
|
|
|
182
184
|
@app.sitemap.resources.select do |resource|
|
|
183
|
-
resource.ext ==
|
|
185
|
+
resource.ext == '.css'
|
|
184
186
|
end.each do |resource|
|
|
185
187
|
@rack.get(URI.escape(resource.destination_path))
|
|
186
188
|
end
|
|
187
189
|
|
|
188
|
-
logger.debug
|
|
190
|
+
logger.debug '== Checking for Compass sprites'
|
|
189
191
|
|
|
190
192
|
# Double-check for compass sprites
|
|
191
193
|
@app.files.find_new_files((@source_dir + @app.images_dir).relative_path_from(@app.root_path))
|
|
@@ -195,7 +197,7 @@ module Middleman::Cli
|
|
|
195
197
|
# find files in the build folder when it needs to generate sprites for the
|
|
196
198
|
# css files
|
|
197
199
|
|
|
198
|
-
logger.debug
|
|
200
|
+
logger.debug '== Building files'
|
|
199
201
|
|
|
200
202
|
resources = @app.sitemap.resources.sort_by do |r|
|
|
201
203
|
sort_order.index(r.ext) || 100
|
|
@@ -222,7 +224,7 @@ module Middleman::Cli
|
|
|
222
224
|
end
|
|
223
225
|
end
|
|
224
226
|
|
|
225
|
-
::Middleman::Profiling.report(
|
|
227
|
+
::Middleman::Profiling.report('build')
|
|
226
228
|
end
|
|
227
229
|
|
|
228
230
|
# Render a resource to a file.
|
|
@@ -268,14 +270,14 @@ module Middleman::Cli
|
|
|
268
270
|
if base.debugging
|
|
269
271
|
raise e
|
|
270
272
|
exit(1)
|
|
271
|
-
elsif base.options[
|
|
273
|
+
elsif base.options['verbose']
|
|
272
274
|
base.shell.say response, :red
|
|
273
275
|
end
|
|
274
276
|
end
|
|
275
277
|
|
|
276
278
|
def binary_encode(string)
|
|
277
279
|
if string.respond_to?(:force_encoding)
|
|
278
|
-
string.force_encoding(
|
|
280
|
+
string.force_encoding('ascii-8bit')
|
|
279
281
|
end
|
|
280
282
|
string
|
|
281
283
|
end
|