middleman-core 3.3.3 → 3.3.4

Sign up to get free protection for your applications and to get access to all the features.
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