middleman-core 3.3.3 → 3.3.4

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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/features/automatic_alt_tags.feature +8 -0
  3. data/features/gzip.feature +36 -6
  4. data/features/helpers_auto_javascript_include_tag.feature +5 -0
  5. data/features/i18n_partials.feature +23 -0
  6. data/features/more-implied_extensions.feature +1 -7
  7. data/features/more-sitemap_traversal.feature +10 -0
  8. data/features/partials.feature +11 -0
  9. data/features/sitemap_traversal.feature +10 -0
  10. data/features/twitter-bootstrap-compile.feature +4 -4
  11. data/fixtures/auto-js-directory-index-app/config.rb +1 -0
  12. data/fixtures/auto-js-directory-index-app/source/auto-js.html.erb +1 -0
  13. data/fixtures/auto-js-directory-index-app/source/javascripts/auto-js.js +1 -0
  14. data/fixtures/automatic-alt-tags-app/config.rb +0 -0
  15. data/fixtures/automatic-alt-tags-app/source/auto-image-sizes.html.erb +1 -0
  16. data/fixtures/automatic-alt-tags-app/source/images/blank.gif +0 -0
  17. data/fixtures/i18n-test-app/source/_country.en.erb +1 -0
  18. data/fixtures/i18n-test-app/source/_country.es.erb +1 -0
  19. data/fixtures/i18n-test-app/source/_site.erb +1 -0
  20. data/fixtures/i18n-test-app/source/images/president.en.svg +1 -0
  21. data/fixtures/i18n-test-app/source/images/president.es.svg +1 -0
  22. data/fixtures/i18n-test-app/source/localizable/_state.en.erb +1 -0
  23. data/fixtures/i18n-test-app/source/localizable/_state.es.erb +1 -0
  24. data/fixtures/i18n-test-app/source/localizable/images/flag.en.svg +1 -0
  25. data/fixtures/i18n-test-app/source/localizable/images/flag.es.svg +1 -0
  26. data/fixtures/i18n-test-app/source/localizable/partials/_greeting.en.erb +1 -0
  27. data/fixtures/i18n-test-app/source/localizable/partials/_greeting.es.erb +1 -0
  28. data/fixtures/i18n-test-app/source/localizable/partials/index.html.erb +6 -0
  29. data/fixtures/partials-app/source/_code_snippet.html +1 -0
  30. data/fixtures/partials-app/source/images/tiger.svg +725 -0
  31. data/fixtures/partials-app/source/static_underscore.html.erb +1 -0
  32. data/fixtures/partials-app/source/svg.html.erb +1 -0
  33. data/lib/middleman-core.rb +2 -1
  34. data/lib/middleman-core/cli/build.rb +12 -14
  35. data/lib/middleman-core/cli/bundler.rb +2 -2
  36. data/lib/middleman-core/cli/init.rb +3 -3
  37. data/lib/middleman-core/core_extensions/extensions.rb +1 -3
  38. data/lib/middleman-core/core_extensions/rendering.rb +56 -31
  39. data/lib/middleman-core/core_extensions/request.rb +1 -1
  40. data/lib/middleman-core/core_extensions/routing.rb +17 -17
  41. data/lib/middleman-core/extension.rb +19 -18
  42. data/lib/middleman-core/preview_server.rb +36 -42
  43. data/lib/middleman-core/renderers/redcarpet.rb +4 -5
  44. data/lib/middleman-core/sitemap/extensions/on_disk.rb +10 -13
  45. data/lib/middleman-core/sitemap/extensions/traversal.rb +15 -7
  46. data/lib/middleman-core/sitemap/store.rb +1 -1
  47. data/lib/middleman-core/step_definitions.rb +12 -4
  48. data/lib/middleman-core/step_definitions/builder_steps.rb +4 -0
  49. data/lib/middleman-core/step_definitions/server_steps.rb +15 -7
  50. data/lib/middleman-core/version.rb +1 -1
  51. data/lib/middleman-more/core_extensions/default_helpers.rb +1 -1
  52. data/lib/middleman-more/core_extensions/i18n.rb +33 -7
  53. data/lib/middleman-more/extensions/asset_hash.rb +1 -1
  54. data/lib/middleman-more/extensions/automatic_alt_tags.rb +2 -6
  55. data/lib/middleman-more/extensions/gzip.rb +16 -6
  56. data/middleman-core.gemspec +1 -1
  57. data/spec/middleman-core/binary_spec.rb +2 -2
  58. metadata +60 -8
  59. data/fixtures/more-implied-extensions-app/source/stylesheets/style3.less +0 -4
@@ -20,8 +20,8 @@ module Middleman
20
20
  # Pick a renderer
21
21
  renderer = MiddlemanRedcarpetHTML
22
22
 
23
- # Support SmartyPants
24
23
  if options.delete(:smartypants)
24
+ # Support SmartyPants
25
25
  renderer = Class.new(renderer) do
26
26
  include ::Redcarpet::Render::SmartyPants
27
27
  end
@@ -30,9 +30,8 @@ module Middleman
30
30
  # Renderer Options
31
31
  possible_render_opts = [:filter_html, :no_images, :no_links, :no_styles, :safe_links_only, :with_toc_data, :hard_wrap, :xhtml, :prettify, :link_attributes]
32
32
 
33
- render_options = possible_render_opts.reduce({}) do |sum, opt|
33
+ render_options = possible_render_opts.each_with_object({}) do |opt, sum|
34
34
  sum[opt] = options.delete(opt) if options.key?(opt)
35
- sum
36
35
  end
37
36
 
38
37
  renderer.new(render_options)
@@ -63,7 +62,7 @@ module Middleman
63
62
  else
64
63
  link_string = link.dup
65
64
  link_string << %Q("#{title}") if title && title.length > 0 && title != alt_text
66
- %Q{![#{alt_text}](#{link_string})}
65
+ "![#{alt_text}](#{link_string})"
67
66
  end
68
67
  end
69
68
 
@@ -76,7 +75,7 @@ module Middleman
76
75
  else
77
76
  link_string = link.dup
78
77
  link_string << %Q("#{title}") if title && title.length > 0 && title != alt_text
79
- %Q{[#{content}](#{link_string})}
78
+ "[#{content}](#{link_string})"
80
79
  end
81
80
  end
82
81
  end
@@ -57,25 +57,22 @@ module Middleman
57
57
  # whether or not it belongs in the sitemap (like a partial)
58
58
  @sitemap.rebuild_resource_list!(:touched_file)
59
59
 
60
- unless waiting_for_ready || @app.build?
61
- # Force sitemap rebuild so the next request is ready to go.
62
- # Skip this during build because the builder will control sitemap refresh.
63
- @sitemap.ensure_resource_list_updated!
64
- end
60
+ # Force sitemap rebuild so the next request is ready to go.
61
+ # Skip this during build because the builder will control sitemap refresh.
62
+ @sitemap.ensure_resource_list_updated! unless waiting_for_ready || @app.build?
65
63
  end
66
64
 
67
65
  # Remove a file from the store
68
66
  # @param [String] file
69
67
  # @return [void]
70
68
  def remove_file(file)
71
- if @file_paths_on_disk.delete?(file)
72
- @sitemap.rebuild_resource_list!(:removed_file)
73
- unless waiting_for_ready || @app.build?
74
- # Force sitemap rebuild so the next request is ready to go.
75
- # Skip this during build because the builder will control sitemap refresh.
76
- @sitemap.ensure_resource_list_updated!
77
- end
78
- end
69
+ return unless @file_paths_on_disk.delete?(file)
70
+
71
+ @sitemap.rebuild_resource_list!(:removed_file)
72
+
73
+ # Force sitemap rebuild so the next request is ready to go.
74
+ # Skip this during build because the builder will control sitemap refresh.
75
+ @sitemap.ensure_resource_list_updated! unless waiting_for_ready || @app.build?
79
76
  end
80
77
 
81
78
  # Update the main sitemap resource list
@@ -6,16 +6,23 @@ module Middleman
6
6
  # @return [Middleman::Sitemap::Resource, nil]
7
7
  def parent
8
8
  parts = path.split('/')
9
- parts.pop if path.include?(app.index_file)
9
+ tail = parts.pop
10
+ is_index = (tail == app.index_file)
10
11
 
11
- return nil if parts.length < 1
12
+ return nil if is_index && parts.length < 1
12
13
 
13
- parts.pop
14
- parts << app.index_file
15
-
16
- parent_path = '/' + parts.join('/')
14
+ test_expr = parts.join('\\/')
15
+ # A makeshift for eponymous reverse-lookup
16
+ found = store.resources.find do |candidate|
17
+ candidate.path =~ %r{^#{test_expr}(?:\.[a-zA-Z0-9]+|\/)$}
18
+ end
17
19
 
18
- store.find_resource_by_destination_path(parent_path)
20
+ if found
21
+ found
22
+ else
23
+ parts.pop if is_index
24
+ store.find_resource_by_destination_path("#{parts.join('/')}/#{app.index_file}")
25
+ end
19
26
  end
20
27
 
21
28
  # This resource's child resources
@@ -68,6 +75,7 @@ module Middleman
68
75
  if !path.end_with?("/#{app.index_file}") && destination_path.end_with?("/#{app.index_file}")
69
76
  return true
70
77
  end
78
+
71
79
  full_path = File.join(app.source_dir, eponymous_directory_path)
72
80
  File.exist?(full_path) && File.directory?(full_path)
73
81
  end
@@ -174,7 +174,7 @@ module Middleman
174
174
  # @param [String] file
175
175
  # @return [String]
176
176
  def file_to_path(file)
177
- file = File.join(@app.root, file)
177
+ file = File.expand_path(file, @app.root)
178
178
 
179
179
  prefix = @app.source_dir.sub(/\/$/, '') + '/'
180
180
  return false unless file.start_with?(prefix)
@@ -1,13 +1,21 @@
1
- MIDDLEMAN_ROOT_PATH = File.dirname(File.dirname(File.dirname(__FILE__)))
2
- MIDDLEMAN_BIN_PATH = File.join(MIDDLEMAN_ROOT_PATH, 'bin')
3
- ENV['PATH'] = "#{MIDDLEMAN_BIN_PATH}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
4
-
5
1
  require 'aruba/cucumber'
6
2
  require 'aruba/jruby'
7
3
  require 'middleman-core/step_definitions/middleman_steps'
8
4
  require 'middleman-core/step_definitions/builder_steps'
9
5
  require 'middleman-core/step_definitions/server_steps'
10
6
 
7
+ # Monkeypatch for windows support
8
+ module ArubaMonkeypatch
9
+ def detect_ruby(cmd)
10
+ if cmd.start_with?('middleman ') && Gem.win_platform?
11
+ "#{current_ruby} #{Dir.pwd}/bin/#{cmd}"
12
+ else
13
+ cmd.sub(/^ruby(?= )/, current_ruby)
14
+ end
15
+ end
16
+ end
17
+ World(ArubaMonkeypatch)
18
+
11
19
  Before do
12
20
  @aruba_timeout_seconds = RUBY_PLATFORM == 'java' ? 120 : 60
13
21
  end
@@ -71,3 +71,7 @@ end
71
71
  Then /^the file "([^"]*)" should contain '([^']*)'$/ do |file, partial_content|
72
72
  check_file_content(file, partial_content, true)
73
73
  end
74
+
75
+ And /the file "(.*)" should be gzipped/ do |file|
76
+ expect(File.binread(File.join(current_dir, file), 2)).to eq(['1F8B'].pack('H*'))
77
+ end
@@ -68,29 +68,37 @@ When /^I go to "([^\"]*)"$/ do |url|
68
68
  end
69
69
 
70
70
  Then /^going to "([^\"]*)" should not raise an exception$/ do |url|
71
- lambda { @browser.get(URI.escape(url)) }.should_not raise_exception
71
+ expect{ @browser.get(URI.escape(url)) }.to_not raise_exception
72
72
  end
73
73
 
74
74
  Then /^the content type should be "([^\"]*)"$/ do |expected|
75
- @browser.last_response.content_type.should start_with(expected)
75
+ expect(@browser.last_response.content_type).to start_with(expected)
76
76
  end
77
77
 
78
78
  Then /^I should see "([^\"]*)"$/ do |expected|
79
- @browser.last_response.body.should include(expected)
79
+ expect(@browser.last_response.body).to include(expected)
80
80
  end
81
81
 
82
82
  Then /^I should see '([^\']*)'$/ do |expected|
83
- @browser.last_response.body.should include(expected)
83
+ expect(@browser.last_response.body).to include(expected)
84
84
  end
85
85
 
86
86
  Then /^I should see:$/ do |expected|
87
- @browser.last_response.body.should include(expected)
87
+ expect(@browser.last_response.body).to include(expected)
88
88
  end
89
89
 
90
90
  Then /^I should not see "([^\"]*)"$/ do |expected|
91
- @browser.last_response.body.should_not include(expected)
91
+ expect(@browser.last_response.body).to_not include(expected)
92
+ end
93
+
94
+ Then /^I should not see:$/ do |expected|
95
+ expect(@browser.last_response.body).to_not include(expected.chomp)
96
+ end
97
+
98
+ Then /^the status code should be "([^\"]*)"$/ do |expected|
99
+ expect(@browser.last_response.status).to eq expected.to_i
92
100
  end
93
101
 
94
102
  Then /^I should see "([^\"]*)" lines$/ do |lines|
95
- @browser.last_response.body.chomp.split($/).length.should == lines.to_i
103
+ expect(@browser.last_response.body.chomp.split($/).length).to eq(lines.to_i)
96
104
  end
@@ -1,5 +1,5 @@
1
1
  module Middleman
2
2
  # Current Version
3
3
  # @return [String]
4
- VERSION = '3.3.3' unless const_defined?(:VERSION)
4
+ VERSION = '3.3.4' unless const_defined?(:VERSION)
5
5
  end
@@ -118,7 +118,7 @@ class Middleman::CoreExtensions::DefaultHelpers < ::Middleman::Extension
118
118
 
119
119
  # If the basename of the request as no extension, assume we are serving a
120
120
  # directory and join index_file to the path.
121
- path = File.join(asset_dir, current_path)
121
+ path = File.join(asset_dir, current_resource.path)
122
122
  path = path.sub(/#{Regexp.escape(File.extname(path))}$/, ".#{asset_ext}")
123
123
 
124
124
  yield path if sitemap.find_resource_by_path(path)
@@ -91,10 +91,10 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
91
91
  private
92
92
 
93
93
  def on_file_changed(file)
94
- if @locales_regex =~ file
95
- @_langs = nil # Clear langs cache
96
- ::I18n.reload!
97
- end
94
+ return unless @locales_regex =~ file
95
+
96
+ @_langs = nil # Clear langs cache
97
+ ::I18n.reload!
98
98
  end
99
99
 
100
100
  def convert_glob_to_regex(glob)
@@ -108,10 +108,9 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
108
108
  ::I18n.reload!
109
109
 
110
110
  ::I18n.default_locale = @mount_at_root
111
+
111
112
  # Reset fallbacks to fall back to our new default
112
- if ::I18n.respond_to? :fallbacks
113
- ::I18n.fallbacks = ::I18n::Locale::Fallbacks.new
114
- end
113
+ ::I18n.fallbacks = ::I18n::Locale::Fallbacks.new if ::I18n.respond_to?(:fallbacks)
115
114
  end
116
115
 
117
116
  def metadata_for_path(url)
@@ -208,5 +207,32 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
208
207
  def langs
209
208
  extensions[:i18n].langs
210
209
  end
210
+
211
+ def locate_partial(partial_name, try_static=false)
212
+ locals_dir = extensions[:i18n].options[:templates_dir]
213
+
214
+ # Try /localizable
215
+ partials_path = File.join(locals_dir, partial_name)
216
+
217
+ lang_suffix = current_resource.metadata[:locals] && current_resource.metadata[:locals][:lang]
218
+
219
+ extname = File.extname(partial_name)
220
+ maybe_static = extname.length > 0
221
+ suffixed_partial_name = if maybe_static
222
+ partial_name.sub(extname, ".#{lang_suffix}#{extname}")
223
+ else
224
+ "#{partial_name}.#{lang_suffix}"
225
+ end
226
+
227
+ if lang_suffix
228
+ super(suffixed_partial_name, maybe_static) ||
229
+ super(File.join(locals_dir, suffixed_partial_name), maybe_static) ||
230
+ super(partials_path, try_static) ||
231
+ super
232
+ else
233
+ super(partials_path, try_static) ||
234
+ super
235
+ end
236
+ end
211
237
  end
212
238
  end
@@ -2,7 +2,7 @@ require 'middleman-core/util'
2
2
 
3
3
  class Middleman::Extensions::AssetHash < ::Middleman::Extension
4
4
  option :exts, %w(.jpg .jpeg .png .gif .js .css .otf .woff .eot .ttf .svg), 'List of extensions that get asset hashes appended to them.'
5
- option :ignore, [], 'Regexes of filenames to skip adding asset hashes to'
5
+ option :ignore, [], 'Patterns to avoid adding asset hashes to'
6
6
 
7
7
  def initialize(app, options_hash={}, &block)
8
8
  super
@@ -1,14 +1,10 @@
1
1
  # Automatic Image alt tags from image names extension
2
2
  class Middleman::Extensions::AutomaticAltTags < ::Middleman::Extension
3
- def initialize(app, options_hash={}, &block)
4
- super
5
- end
6
-
7
3
  helpers do
8
4
  # Override default image_tag helper to automatically insert alt tag
9
5
  # containing image name.
10
6
 
11
- def image_tag(path)
7
+ def image_tag(path, params={})
12
8
  unless path.include?('://')
13
9
  params[:alt] ||= ''
14
10
 
@@ -25,7 +21,7 @@ class Middleman::Extensions::AutomaticAltTags < ::Middleman::Extension
25
21
  end
26
22
  end
27
23
 
28
- super(path)
24
+ super(path, params)
29
25
  end
30
26
  end
31
27
  end
@@ -11,6 +11,7 @@
11
11
  #
12
12
  class Middleman::Extensions::Gzip < ::Middleman::Extension
13
13
  option :exts, %w(.js .css .html .htm), 'File extensions to Gzip when building.'
14
+ option :ignore, [], 'Patterns to avoid gzipping'
14
15
 
15
16
  def initialize(app, options_hash={})
16
17
  super
@@ -29,7 +30,7 @@ class Middleman::Extensions::Gzip < ::Middleman::Extension
29
30
  # Fill a queue with inputs
30
31
  in_queue = Queue.new
31
32
  paths.each do |path|
32
- in_queue << path if options.exts.include?(path.extname)
33
+ in_queue << path if should_gzip?(path)
33
34
  end
34
35
  num_paths = in_queue.size
35
36
 
@@ -54,11 +55,11 @@ class Middleman::Extensions::Gzip < ::Middleman::Extension
54
55
  num_paths.times do
55
56
  output_filename, old_size, new_size = out_queue.pop
56
57
 
57
- if output_filename
58
- total_savings += (old_size - new_size)
59
- size_change_word = (old_size - new_size) > 0 ? 'smaller' : 'larger'
60
- builder.say_status :gzip, "#{output_filename} (#{app.number_to_human_size((old_size - new_size).abs)} #{size_change_word})"
61
- end
58
+ next unless output_filename
59
+
60
+ total_savings += (old_size - new_size)
61
+ size_change_word = (old_size - new_size) > 0 ? 'smaller' : 'larger'
62
+ builder.say_status :gzip, "#{output_filename} (#{app.number_to_human_size((old_size - new_size).abs)} #{size_change_word})"
62
63
  end
63
64
 
64
65
  builder.say_status :gzip, "Total gzip savings: #{app.number_to_human_size(total_savings)}", :blue
@@ -93,4 +94,13 @@ class Middleman::Extensions::Gzip < ::Middleman::Extension
93
94
 
94
95
  [output_filename, old_size, new_size]
95
96
  end
97
+
98
+ private
99
+
100
+ # Whether a path should be gzipped
101
+ # @param [Pathname] path A destination path
102
+ # @return [Boolean]
103
+ def should_gzip?(path)
104
+ options.exts.include?(path.extname) && options.ignore.none? { |ignore| Middleman::Util.path_match(ignore, path.to_s) }
105
+ end
96
106
  end
@@ -36,7 +36,7 @@ Gem::Specification.new do |s|
36
36
  s.add_dependency("padrino-helpers", ["~> 0.12.1"])
37
37
 
38
38
  # Watcher
39
- s.add_dependency("listen", ["~> 1.1"])
39
+ s.add_dependency("listen", [">= 2.7.9", "< 3.0"])
40
40
 
41
41
  # i18n
42
42
  s.add_dependency("i18n", ["~> 0.6.9"])
@@ -3,13 +3,13 @@ require 'middleman-core/util'
3
3
  describe "Middleman::Util#binary?" do
4
4
  %w(plain.txt unicode.txt unicode).each do |file|
5
5
  it "recognizes #{file} as not binary" do
6
- Middleman::Util.binary?(File.join(File.dirname(__FILE__), "binary_spec/#{file}")).should be_false
6
+ expect(Middleman::Util.binary?(File.join(File.dirname(__FILE__), "binary_spec/#{file}"))).to be false
7
7
  end
8
8
  end
9
9
 
10
10
  %w(middleman.png middleman stars.svgz).each do |file|
11
11
  it "recognizes #{file} as binary" do
12
- Middleman::Util.binary?(File.join(File.dirname(__FILE__), "binary_spec/#{file}")).should be_true
12
+ expect(Middleman::Util.binary?(File.join(File.dirname(__FILE__), "binary_spec/#{file}"))).to be true
13
13
  end
14
14
  end
15
15
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.3
4
+ version: 3.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Reynolds
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-05-24 00:00:00.000000000 Z
13
+ date: 2014-08-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -160,16 +160,22 @@ dependencies:
160
160
  name: listen
161
161
  requirement: !ruby/object:Gem::Requirement
162
162
  requirements:
163
- - - ~>
163
+ - - '>='
164
164
  - !ruby/object:Gem::Version
165
- version: '1.1'
165
+ version: 2.7.9
166
+ - - <
167
+ - !ruby/object:Gem::Version
168
+ version: '3.0'
166
169
  type: :runtime
167
170
  prerelease: false
168
171
  version_requirements: !ruby/object:Gem::Requirement
169
172
  requirements:
170
- - - ~>
173
+ - - '>='
171
174
  - !ruby/object:Gem::Version
172
- version: '1.1'
175
+ version: 2.7.9
176
+ - - <
177
+ - !ruby/object:Gem::Version
178
+ version: '3.0'
173
179
  - !ruby/object:Gem::Dependency
174
180
  name: i18n
175
181
  requirement: !ruby/object:Gem::Requirement
@@ -206,6 +212,7 @@ files:
206
212
  - features/asset_hash.feature
207
213
  - features/asset_host.feature
208
214
  - features/auto_layout.feature
215
+ - features/automatic_alt_tags.feature
209
216
  - features/automatic_directory_matcher.feature
210
217
  - features/automatic_image_sizes.feature
211
218
  - features/builder.feature
@@ -246,6 +253,7 @@ files:
246
253
  - features/helpers_url_for.feature
247
254
  - features/i18n_builder.feature
248
255
  - features/i18n_force_locale.feature
256
+ - features/i18n_partials.feature
249
257
  - features/i18n_preview.feature
250
258
  - features/ignore.feature
251
259
  - features/ignore_already_minified.feature
@@ -359,6 +367,12 @@ files:
359
367
  - fixtures/auto-js-app/source/javascripts/auto-js/auto-js.js
360
368
  - fixtures/auto-js-app/source/javascripts/auto-js/index.js
361
369
  - fixtures/auto-js-app/source/javascripts/auto-js/sub/auto-js.js
370
+ - fixtures/auto-js-directory-index-app/config.rb
371
+ - fixtures/auto-js-directory-index-app/source/auto-js.html.erb
372
+ - fixtures/auto-js-directory-index-app/source/javascripts/auto-js.js
373
+ - fixtures/automatic-alt-tags-app/config.rb
374
+ - fixtures/automatic-alt-tags-app/source/auto-image-sizes.html.erb
375
+ - fixtures/automatic-alt-tags-app/source/images/blank.gif
362
376
  - fixtures/automatic-directory-matcher-app/config.rb
363
377
  - fixtures/automatic-directory-matcher-app/source/root-plain.html
364
378
  - fixtures/automatic-directory-matcher-app/source/root.html.erb
@@ -575,13 +589,25 @@ files:
575
589
  - fixtures/i18n-test-app/locales/en.yml
576
590
  - fixtures/i18n-test-app/locales/es.yml
577
591
  - fixtures/i18n-test-app/source/CNAME
592
+ - fixtures/i18n-test-app/source/_country.en.erb
593
+ - fixtures/i18n-test-app/source/_country.es.erb
594
+ - fixtures/i18n-test-app/source/_site.erb
595
+ - fixtures/i18n-test-app/source/images/president.en.svg
596
+ - fixtures/i18n-test-app/source/images/president.es.svg
578
597
  - fixtures/i18n-test-app/source/layouts/layout.erb
598
+ - fixtures/i18n-test-app/source/localizable/_state.en.erb
599
+ - fixtures/i18n-test-app/source/localizable/_state.es.erb
579
600
  - fixtures/i18n-test-app/source/localizable/hello.html.erb
601
+ - fixtures/i18n-test-app/source/localizable/images/flag.en.svg
602
+ - fixtures/i18n-test-app/source/localizable/images/flag.es.svg
580
603
  - fixtures/i18n-test-app/source/localizable/index.html.erb
581
604
  - fixtures/i18n-test-app/source/localizable/morning.en.html.erb
582
605
  - fixtures/i18n-test-app/source/localizable/morning.es.html.erb
583
606
  - fixtures/i18n-test-app/source/localizable/one.en.md
584
607
  - fixtures/i18n-test-app/source/localizable/one.es.md
608
+ - fixtures/i18n-test-app/source/localizable/partials/_greeting.en.erb
609
+ - fixtures/i18n-test-app/source/localizable/partials/_greeting.es.erb
610
+ - fixtures/i18n-test-app/source/localizable/partials/index.html.erb
585
611
  - fixtures/i18n-test-app/source/password.txt
586
612
  - fixtures/i18n-test-app/source/stylesheets/site.css
587
613
  - fixtures/ignore-app/source/about.html.erb
@@ -726,7 +752,6 @@ files:
726
752
  - fixtures/more-implied-extensions-app/source/layouts/layout.erb
727
753
  - fixtures/more-implied-extensions-app/source/stylesheets/style.scss
728
754
  - fixtures/more-implied-extensions-app/source/stylesheets/style2.sass
729
- - fixtures/more-implied-extensions-app/source/stylesheets/style3.less
730
755
  - fixtures/more-implied-extensions-app/source/test.haml
731
756
  - fixtures/more-implied-extensions-app/source/test2.markdown
732
757
  - fixtures/more-implied-extensions-app/source/test3.slim
@@ -805,17 +830,21 @@ files:
805
830
  - fixtures/page-helper-layout-block-app/source/path/child.html.erb
806
831
  - fixtures/page-helper-layout-block-app/source/path/index.html.erb
807
832
  - fixtures/partials-app/config.rb
833
+ - fixtures/partials-app/source/_code_snippet.html
808
834
  - fixtures/partials-app/source/_locals.erb
809
835
  - fixtures/partials-app/source/_main.erb
810
836
  - fixtures/partials-app/source/_main.str
837
+ - fixtures/partials-app/source/images/tiger.svg
811
838
  - fixtures/partials-app/source/index.html.erb
812
839
  - fixtures/partials-app/source/locals.html.erb
813
840
  - fixtures/partials-app/source/second.html.str
814
841
  - fixtures/partials-app/source/shared/_footer.erb
815
842
  - fixtures/partials-app/source/shared/_header.erb
816
843
  - fixtures/partials-app/source/shared/snippet.erb
844
+ - fixtures/partials-app/source/static_underscore.html.erb
817
845
  - fixtures/partials-app/source/sub/_local.erb
818
846
  - fixtures/partials-app/source/sub/index.html.erb
847
+ - fixtures/partials-app/source/svg.html.erb
819
848
  - fixtures/partials-app/source/using_snippet.html.erb
820
849
  - fixtures/partials-dir-app/source/index.html.erb
821
850
  - fixtures/partials-dir-app/source/nested/partials/_partial.html.erb
@@ -1244,6 +1273,7 @@ test_files:
1244
1273
  - features/asset_hash.feature
1245
1274
  - features/asset_host.feature
1246
1275
  - features/auto_layout.feature
1276
+ - features/automatic_alt_tags.feature
1247
1277
  - features/automatic_directory_matcher.feature
1248
1278
  - features/automatic_image_sizes.feature
1249
1279
  - features/builder.feature
@@ -1284,6 +1314,7 @@ test_files:
1284
1314
  - features/helpers_url_for.feature
1285
1315
  - features/i18n_builder.feature
1286
1316
  - features/i18n_force_locale.feature
1317
+ - features/i18n_partials.feature
1287
1318
  - features/i18n_preview.feature
1288
1319
  - features/ignore.feature
1289
1320
  - features/ignore_already_minified.feature
@@ -1397,6 +1428,12 @@ test_files:
1397
1428
  - fixtures/auto-js-app/source/javascripts/auto-js/auto-js.js
1398
1429
  - fixtures/auto-js-app/source/javascripts/auto-js/index.js
1399
1430
  - fixtures/auto-js-app/source/javascripts/auto-js/sub/auto-js.js
1431
+ - fixtures/auto-js-directory-index-app/config.rb
1432
+ - fixtures/auto-js-directory-index-app/source/auto-js.html.erb
1433
+ - fixtures/auto-js-directory-index-app/source/javascripts/auto-js.js
1434
+ - fixtures/automatic-alt-tags-app/config.rb
1435
+ - fixtures/automatic-alt-tags-app/source/auto-image-sizes.html.erb
1436
+ - fixtures/automatic-alt-tags-app/source/images/blank.gif
1400
1437
  - fixtures/automatic-directory-matcher-app/config.rb
1401
1438
  - fixtures/automatic-directory-matcher-app/source/root-plain.html
1402
1439
  - fixtures/automatic-directory-matcher-app/source/root.html.erb
@@ -1613,13 +1650,25 @@ test_files:
1613
1650
  - fixtures/i18n-test-app/locales/en.yml
1614
1651
  - fixtures/i18n-test-app/locales/es.yml
1615
1652
  - fixtures/i18n-test-app/source/CNAME
1653
+ - fixtures/i18n-test-app/source/_country.en.erb
1654
+ - fixtures/i18n-test-app/source/_country.es.erb
1655
+ - fixtures/i18n-test-app/source/_site.erb
1656
+ - fixtures/i18n-test-app/source/images/president.en.svg
1657
+ - fixtures/i18n-test-app/source/images/president.es.svg
1616
1658
  - fixtures/i18n-test-app/source/layouts/layout.erb
1659
+ - fixtures/i18n-test-app/source/localizable/_state.en.erb
1660
+ - fixtures/i18n-test-app/source/localizable/_state.es.erb
1617
1661
  - fixtures/i18n-test-app/source/localizable/hello.html.erb
1662
+ - fixtures/i18n-test-app/source/localizable/images/flag.en.svg
1663
+ - fixtures/i18n-test-app/source/localizable/images/flag.es.svg
1618
1664
  - fixtures/i18n-test-app/source/localizable/index.html.erb
1619
1665
  - fixtures/i18n-test-app/source/localizable/morning.en.html.erb
1620
1666
  - fixtures/i18n-test-app/source/localizable/morning.es.html.erb
1621
1667
  - fixtures/i18n-test-app/source/localizable/one.en.md
1622
1668
  - fixtures/i18n-test-app/source/localizable/one.es.md
1669
+ - fixtures/i18n-test-app/source/localizable/partials/_greeting.en.erb
1670
+ - fixtures/i18n-test-app/source/localizable/partials/_greeting.es.erb
1671
+ - fixtures/i18n-test-app/source/localizable/partials/index.html.erb
1623
1672
  - fixtures/i18n-test-app/source/password.txt
1624
1673
  - fixtures/i18n-test-app/source/stylesheets/site.css
1625
1674
  - fixtures/ignore-app/source/about.html.erb
@@ -1764,7 +1813,6 @@ test_files:
1764
1813
  - fixtures/more-implied-extensions-app/source/layouts/layout.erb
1765
1814
  - fixtures/more-implied-extensions-app/source/stylesheets/style.scss
1766
1815
  - fixtures/more-implied-extensions-app/source/stylesheets/style2.sass
1767
- - fixtures/more-implied-extensions-app/source/stylesheets/style3.less
1768
1816
  - fixtures/more-implied-extensions-app/source/test.haml
1769
1817
  - fixtures/more-implied-extensions-app/source/test2.markdown
1770
1818
  - fixtures/more-implied-extensions-app/source/test3.slim
@@ -1843,17 +1891,21 @@ test_files:
1843
1891
  - fixtures/page-helper-layout-block-app/source/path/child.html.erb
1844
1892
  - fixtures/page-helper-layout-block-app/source/path/index.html.erb
1845
1893
  - fixtures/partials-app/config.rb
1894
+ - fixtures/partials-app/source/_code_snippet.html
1846
1895
  - fixtures/partials-app/source/_locals.erb
1847
1896
  - fixtures/partials-app/source/_main.erb
1848
1897
  - fixtures/partials-app/source/_main.str
1898
+ - fixtures/partials-app/source/images/tiger.svg
1849
1899
  - fixtures/partials-app/source/index.html.erb
1850
1900
  - fixtures/partials-app/source/locals.html.erb
1851
1901
  - fixtures/partials-app/source/second.html.str
1852
1902
  - fixtures/partials-app/source/shared/_footer.erb
1853
1903
  - fixtures/partials-app/source/shared/_header.erb
1854
1904
  - fixtures/partials-app/source/shared/snippet.erb
1905
+ - fixtures/partials-app/source/static_underscore.html.erb
1855
1906
  - fixtures/partials-app/source/sub/_local.erb
1856
1907
  - fixtures/partials-app/source/sub/index.html.erb
1908
+ - fixtures/partials-app/source/svg.html.erb
1857
1909
  - fixtures/partials-app/source/using_snippet.html.erb
1858
1910
  - fixtures/partials-dir-app/source/index.html.erb
1859
1911
  - fixtures/partials-dir-app/source/nested/partials/_partial.html.erb