middleman 2.0.0.rc92 → 2.0.0.rc93

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. data/CHANGELOG +3 -1
  2. data/Rakefile +1 -40
  3. data/bin/middleman +8 -0
  4. data/bin/mm-build +2 -7
  5. data/bin/mm-init +2 -27
  6. data/bin/mm-server +2 -46
  7. data/features/asset_host.feature +2 -2
  8. data/features/automatic_image_sizes.feature +2 -2
  9. data/features/builder.feature +16 -16
  10. data/features/cache_buster.feature +4 -4
  11. data/features/coffee-script.feature +3 -3
  12. data/features/data.feature +1 -1
  13. data/features/directory_index.feature +27 -0
  14. data/features/dynamic_pages.feature +18 -9
  15. data/features/front-matter.feature +1 -1
  16. data/features/helpers_auto_javascript_include_tag.feature +5 -5
  17. data/features/helpers_auto_stylesheet_link_tag.feature +5 -5
  18. data/features/helpers_page_classes.feature +3 -3
  19. data/features/minify_css.feature +2 -2
  20. data/features/minify_javascript.feature +3 -3
  21. data/features/padrino_helpers.feature +1 -1
  22. data/features/page_alias_and_layouts.feature +5 -5
  23. data/features/relative_assets.feature +6 -6
  24. data/features/scss-support.feature +2 -2
  25. data/features/sinatra.feature +1 -1
  26. data/features/slim.feature +1 -1
  27. data/features/sprockets.feature +1 -1
  28. data/features/step_definitions/builder_steps.rb +22 -17
  29. data/features/step_definitions/generator_steps.rb +1 -1
  30. data/features/step_definitions/middleman_steps.rb +3 -1
  31. data/features/step_definitions/page_layout_steps.rb +0 -2
  32. data/features/support/env.rb +0 -1
  33. data/features/tiny_src.feature +2 -2
  34. data/fixtures/indexable-app/config.rb +2 -0
  35. data/fixtures/indexable-app/source/a_folder/needs_index.html +1 -0
  36. data/fixtures/indexable-app/source/leave_me_alone.html +1 -0
  37. data/fixtures/indexable-app/source/needs_index.html +1 -0
  38. data/fixtures/test-app/config.rb +4 -0
  39. data/fixtures/test-app/source/a_folder/needs_index.html +1 -0
  40. data/fixtures/test-app/source/needs_index.html +1 -0
  41. data/fixtures/test-app/source/should_be_ignored.html +1 -0
  42. data/fixtures/test-app/source/should_be_ignored2.html +1 -0
  43. data/fixtures/test-app/source/should_be_ignored3.html +1 -0
  44. data/lib/middleman.rb +10 -8
  45. data/lib/middleman/base.rb +25 -2
  46. data/lib/middleman/builder.rb +23 -10
  47. data/lib/middleman/cli.rb +84 -0
  48. data/lib/middleman/core_extensions/routing.rb +22 -2
  49. data/lib/middleman/features/blog.rb +0 -1
  50. data/lib/middleman/features/directory_indexes.rb +50 -0
  51. data/lib/middleman/guard.rb +7 -3
  52. data/lib/middleman/version.rb +1 -1
  53. data/middleman.gemspec +9 -9
  54. metadata +110 -88
  55. data/bin/mm-migrate +0 -5
@@ -8,7 +8,7 @@ Feature: Minify CSS
8
8
 
9
9
  Scenario: Rendering external css with the feature disabled
10
10
  Given "minify_css" feature is "disabled"
11
- And the Server is running
11
+ And the Server is running at "test-app"
12
12
  When I go to "/stylesheets/site.css"
13
13
  Then I should see "55" lines
14
14
 
@@ -19,6 +19,6 @@ Feature: Minify CSS
19
19
 
20
20
  Scenario: Rendering external css with the feature enabled
21
21
  Given "minify_css" feature is "enabled"
22
- And the Server is running
22
+ And the Server is running at "test-app"
23
23
  When I go to "/stylesheets/site.css"
24
24
  Then I should see "1" lines
@@ -6,18 +6,18 @@ Feature: Minify Javascript
6
6
 
7
7
  Scenario: Rendering inline js with the feature disabled
8
8
  Given "minify_javascript" feature is "disabled"
9
- And the Server is running
9
+ And the Server is running at "test-app"
10
10
  When I go to "/inline-js.html"
11
11
  Then I should see "10" lines
12
12
 
13
13
  Scenario: Rendering inline js with the feature enabled
14
14
  Given "minify_javascript" feature is "enabled"
15
- And the Server is running
15
+ And the Server is running at "test-app"
16
16
  When I go to "/inline-js.html"
17
17
  Then I should see "5" lines
18
18
 
19
19
  Scenario: Rendering inline js (coffeescript) with the feature enabled
20
20
  Given "minify_javascript" feature is "enabled"
21
- And the Server is running
21
+ And the Server is running at "test-app"
22
22
  When I go to "/inline-coffeescript.html"
23
23
  Then I should see "5" lines
@@ -2,7 +2,7 @@ Feature: Built-in macro view helpers
2
2
  In order to simplify generating HTML
3
3
 
4
4
  Scenario: Using the link_to helper
5
- Given the Server is running
5
+ Given the Server is running at "test-app"
6
6
  When I go to "/padrino_test.html"
7
7
  And I should see 'href="test2.com"'
8
8
  And I should see 'src="/images/test2.png"'
@@ -3,19 +3,19 @@ Feature: Custom layouts
3
3
 
4
4
  Scenario: Using custom :layout attribute
5
5
  Given page "/custom-layout.html" has layout "custom"
6
- And the Server is running
6
+ And the Server is running at "test-app"
7
7
  When I go to "/custom-layout.html"
8
8
  Then I should see "Custom Layout"
9
9
 
10
10
  Scenario: Using with_layout block
11
11
  Given "/custom-layout.html" with_layout block has layout "custom"
12
- And the Server is running
12
+ And the Server is running at "test-app"
13
13
  When I go to "/custom-layout.html"
14
14
  Then I should see "Custom Layout"
15
15
 
16
16
  Scenario: Using custom :layout attribute with folders
17
17
  Given page "/custom-layout-dir/" has layout "custom"
18
- And the Server is running
18
+ And the Server is running at "test-app"
19
19
  When I go to "/custom-layout-dir"
20
20
  Then I should see "Custom Layout"
21
21
  When I go to "/custom-layout-dir/"
@@ -25,7 +25,7 @@ Feature: Custom layouts
25
25
 
26
26
  Scenario: Using custom :layout attribute with folders
27
27
  Given page "/custom-layout-dir" has layout "custom"
28
- And the Server is running
28
+ And the Server is running at "test-app"
29
29
  When I go to "/custom-layout-dir"
30
30
  Then I should see "Custom Layout"
31
31
  When I go to "/custom-layout-dir/"
@@ -35,7 +35,7 @@ Feature: Custom layouts
35
35
 
36
36
  Scenario: Using custom :layout attribute with folders
37
37
  Given page "/custom-layout-dir/index.html" has layout "custom"
38
- And the Server is running
38
+ And the Server is running at "test-app"
39
39
  When I go to "/custom-layout-dir"
40
40
  Then I should see "Custom Layout"
41
41
  When I go to "/custom-layout-dir/"
@@ -3,26 +3,26 @@ Feature: Relative Assets
3
3
 
4
4
  Scenario: Rendering css with the feature disabled
5
5
  Given "relative_assets" feature is "disabled"
6
- And the Server is running
6
+ And the Server is running at "test-app"
7
7
  When I go to "/stylesheets/relative_assets.css"
8
8
  Then I should not see "url('../"
9
9
  And I should see "/images/blank.gif"
10
10
 
11
11
  Scenario: Rendering html with the feature disabled
12
12
  Given "relative_assets" feature is "disabled"
13
- And the Server is running
13
+ And the Server is running at "test-app"
14
14
  When I go to "/relative_image.html"
15
15
  Then I should see "/images/blank.gif"
16
16
 
17
17
  Scenario: Rendering css with the feature enabled
18
18
  Given "relative_assets" feature is "enabled"
19
- And the Server is running
19
+ And the Server is running at "test-app"
20
20
  When I go to "/stylesheets/relative_assets.css"
21
21
  Then I should see "url('../images/blank.gif"
22
22
 
23
23
  Scenario: Rendering html with the feature disabled
24
24
  Given "relative_assets" feature is "enabled"
25
- And the Server is running
25
+ And the Server is running at "test-app"
26
26
  When I go to "/relative_image.html"
27
27
  Then I should not see "/images/blank.gif"
28
28
  And I should see "images/blank.gif"
@@ -30,14 +30,14 @@ Feature: Relative Assets
30
30
  Scenario: Rendering html with a custom images_dir
31
31
  Given "relative_assets" feature is "enabled"
32
32
  And "images_dir" is set to "img"
33
- And the Server is running
33
+ And the Server is running at "test-app"
34
34
  When I go to "/stylesheets/relative_assets.css"
35
35
  Then I should see "url('../img/blank.gif"
36
36
 
37
37
  Scenario: Rendering css with a custom images_dir
38
38
  Given "relative_assets" feature is "enabled"
39
39
  And "images_dir" is set to "img"
40
- And the Server is running
40
+ And the Server is running at "test-app"
41
41
  When I go to "/relative_image.html"
42
42
  Then I should not see "/images/blank.gif"
43
43
  Then I should not see "/img/blank.gif"
@@ -2,11 +2,11 @@ Feature: Support SCSS Syntax
2
2
  In order to offer an alternative when writing Sass
3
3
 
4
4
  Scenario: Rendering scss
5
- Given the Server is running
5
+ Given the Server is running at "test-app"
6
6
  When I go to "/stylesheets/site_scss.css"
7
7
  Then I should see "html"
8
8
 
9
9
  Scenario: Rendering scss
10
- Given the Server is running
10
+ Given the Server is running at "test-app"
11
11
  When I go to "/stylesheets/layout.css"
12
12
  Then I should see "html"
@@ -1,6 +1,6 @@
1
1
  Feature: Sinatra Routes
2
2
 
3
3
  Scenario: Rendering html
4
- Given the Server is running
4
+ Given the Server is running at "test-app"
5
5
  When I go to "/sinatra_test"
6
6
  Then I should see "Ratpack"
@@ -2,6 +2,6 @@ Feature: Support slim templating language
2
2
  In order to offer an alternative to Haml
3
3
 
4
4
  Scenario: Rendering Slim
5
- Given the Server is running
5
+ Given the Server is running at "test-app"
6
6
  When I go to "/slim.html"
7
7
  Then I should see "<h1>Welcome to Slim</h1>"
@@ -1,6 +1,6 @@
1
1
  Feature: Sprockets
2
2
 
3
3
  Scenario: Sprockets require
4
- Given the Server is running
4
+ Given the Server is running at "test-app"
5
5
  When I go to "/javascripts/sprockets_base.js"
6
6
  Then I should see "sprockets_sub_function"
@@ -1,34 +1,39 @@
1
1
  require 'fileutils'
2
2
 
3
- Given /^a built test app$/ do
4
- target = File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "fixtures", "test-app")
5
- build_cmd = File.expand_path(File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "bin", "mm-build"))
6
- `cd #{target} && MM_DIR="#{target}" #{build_cmd}`
3
+ Given /^a built app at "([^"]*)"$/ do |path|
4
+ root = File.dirname(File.dirname(File.dirname(__FILE__)))
5
+ target = File.join(root, "fixtures", path)
6
+ build_cmd = File.expand_path(File.join(root, "bin", "middleman build"))
7
+ `cd #{target} && #{build_cmd}`
7
8
  end
8
9
 
9
- Given /^a built test app with flags "([^"]*)"$/ do |flags|
10
- target = File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "fixtures", "test-app")
11
- build_cmd = File.expand_path(File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "bin", "mm-build"))
12
- `cd #{target} && MM_DIR="#{target}" #{build_cmd} #{flags}`
10
+ Then /^cleanup built app at "([^"]*)"$/ do |path|
11
+ root = File.dirname(File.dirname(File.dirname(__FILE__)))
12
+ target = File.join(root, "fixtures", path, "build")
13
+ FileUtils.rm_rf(target)
13
14
  end
14
15
 
15
- Given /^cleanup built test app$/ do
16
- target = File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "fixtures", "test-app", "build")
17
- FileUtils.rm_rf(target)
16
+ Given /^a built test app with flags "([^"]*)"$/ do |flags|
17
+ target = File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "fixtures", "test-app")
18
+ build_cmd = File.expand_path(File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "bin", "middleman build"))
19
+ `cd #{target} && #{build_cmd} #{flags}`
18
20
  end
19
21
 
20
- Then /^"([^"]*)" should exist$/ do |target_file,|
21
- target = File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "fixtures", "test-app", "build", target_file)
22
+ Then /^"([^"]*)" should exist at "([^"]*)"$/ do |target_file, path|
23
+ root = File.dirname(File.dirname(File.dirname(__FILE__)))
24
+ target = File.join(root, "fixtures", path, "build", target_file)
22
25
  File.exists?(target).should be_true
23
26
  end
24
27
 
25
- Then /^"([^"]*)" should exist and include "([^"]*)"$/ do |target_file, expected|
26
- target = File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "fixtures", "test-app", "build", target_file)
28
+ Then /^"([^"]*)" should exist at "([^"]*)" and include "([^"]*)"$/ do |target_file, path, expected|
29
+ root = File.dirname(File.dirname(File.dirname(__FILE__)))
30
+ target = File.join(root, "fixtures", path, "build", target_file)
27
31
  File.exists?(target).should be_true
28
32
  File.read(target).should include(expected)
29
33
  end
30
34
 
31
- Then /^"([^"]*)" should not exist$/ do |target_file|
32
- target = File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "fixtures", "test-app", "build", target_file)
35
+ Then /^"([^"]*)" should not exist at "([^"]*)"$/ do |target_file, path|
36
+ root = File.dirname(File.dirname(File.dirname(__FILE__)))
37
+ target = File.join(root, "fixtures", path, "build", target_file)
33
38
  File.exists?(target).should be_false
34
39
  end
@@ -2,7 +2,7 @@ require 'fileutils'
2
2
 
3
3
  Given /^generated directory at "([^\"]*)"$/ do |dirname|
4
4
  target = File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "fixtures", dirname)
5
- init_cmd = File.expand_path(File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "bin", "mm-init"))
5
+ init_cmd = File.expand_path(File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "bin", "middleman init"))
6
6
  `cd #{File.dirname(target)} && #{init_cmd} #{File.basename(target)}`
7
7
  end
8
8
 
@@ -15,8 +15,10 @@ Given /^current environment is "([^\"]*)"$/ do |env|
15
15
  @current_env = env.to_sym
16
16
  end
17
17
 
18
- Given /^the Server is running$/ do
18
+ Given /^the Server is running at "([^\"]*)"$/ do |app_path|
19
19
  @server ||= Middleman.server
20
+ root = File.dirname(File.dirname(File.dirname(__FILE__)))
21
+ @server.set :root, File.join(root, "fixtures", app_path)
20
22
  @browser = Rack::Test::Session.new(Rack::MockSession.new(@server.new))
21
23
  end
22
24
 
@@ -1,12 +1,10 @@
1
1
  Given /^page "([^\"]*)" has layout "([^\"]*)"$/ do |url, layout|
2
2
  @server ||= Middleman.server
3
- @server.set :root, File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "fixtures", "test-app")
4
3
  @server.page(url, :layout => layout.to_sym)
5
4
  end
6
5
 
7
6
  Given /^"([^\"]*)" with_layout block has layout "([^\"]*)"$/ do |url, layout|
8
7
  @server ||= Middleman.server
9
- @server.set :root, File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "fixtures", "test-app")
10
8
  @server.with_layout(layout.to_sym) do
11
9
  page(url)
12
10
  end
@@ -1,4 +1,3 @@
1
1
  root_path = File.dirname(File.dirname(File.dirname(__FILE__)))
2
- ENV["MM_DIR"] = File.join(root_path, "fixtures", "test-app")
3
2
  require File.join(root_path, 'lib', 'middleman')
4
3
  require "rack/test"
@@ -4,12 +4,12 @@ Feature: Tiny Src
4
4
 
5
5
  Scenario: Rendering html with the feature disabled
6
6
  Given "tiny_src" feature is "disabled"
7
- And the Server is running
7
+ And the Server is running at "test-app"
8
8
  When I go to "/tiny_src.html"
9
9
  Then I should see "http://test.com/image.jpg"
10
10
 
11
11
  Scenario: Rendering html with the feature enabled
12
12
  Given "tiny_src" feature is "enabled"
13
- And the Server is running
13
+ And the Server is running at "test-app"
14
14
  When I go to "/tiny_src.html"
15
15
  Then I should see "http://i.tinysrc.mobi/http://test.com/image.jpg"
@@ -0,0 +1,2 @@
1
+ activate :directory_indexes
2
+ page "/leave_me_alone.html", :directory_index => false
@@ -0,0 +1 @@
1
+ Stay away
@@ -0,0 +1 @@
1
+ Indexable
@@ -1,5 +1,9 @@
1
1
  page "/fake.html", :proxy => "/real.html", :layout => false
2
2
 
3
+ ignore "/should_be_ignored.html"
4
+ page "/should_be_ignored2.html", :ignore => true
5
+ page "/target_ignore.html", :proxy => "/should_be_ignored3.html", :ignore => true
6
+
3
7
  %w(one two).each do |num|
4
8
  page "/fake/#{num}.html", :proxy => "/real/index.html" do
5
9
  @num = num
@@ -0,0 +1 @@
1
+ Indexable
@@ -0,0 +1 @@
1
+ Indexable
@@ -0,0 +1 @@
1
+ <h1>Ignore me!</h1>
@@ -0,0 +1 @@
1
+ <h1>Ignore me! 2</h1>
@@ -0,0 +1 @@
1
+ <h1>Ignore me! 3</h1>
data/lib/middleman.rb CHANGED
@@ -8,10 +8,10 @@
8
8
  #
9
9
  # To accomplish its goals, Middleman supports provides access to:
10
10
  #
11
- #### Command-line tools:
12
- # * **mm-init**: A tool for creating to new static sites.
13
- # * **mm-server**: A tool for rapidly developing your static site.
14
- # * **mm-build**: A tool for exporting your site into optimized HTML, CSS & JS.
11
+ #### Command-line tool:
12
+ # * **middleman init**: A tool for creating to new static sites.
13
+ # * **middleman server**: A tool for rapidly developing your static site.
14
+ # * **middleman build**: A tool for exporting your site into optimized HTML, CSS & JS.
15
15
  #
16
16
  #### Tons of templating languages including:
17
17
  # * ERB (.erb)
@@ -51,13 +51,10 @@
51
51
  # [Email the users group]: http://groups.google.com/group/middleman-users
52
52
  # [Submit bug reports]: https://github.com/tdreyno/middleman/issues
53
53
 
54
- # Setup out load paths
54
+ # Setup our load paths
55
55
  libdir = File.dirname(__FILE__)
56
56
  $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
57
57
 
58
- # Require Rubygems (probably not necessary)
59
- require 'rubygems'
60
-
61
58
  # We're riding on Sinatra, so let's include it.
62
59
  require "sinatra/base"
63
60
 
@@ -66,6 +63,8 @@ module Middleman
66
63
  # Auto-load modules on-demand
67
64
  autoload :Base, "middleman/base"
68
65
  autoload :Builder, "middleman/builder"
66
+ autoload :CLI, "middleman/cli"
67
+ autoload :Templates, "middleman/templates"
69
68
  autoload :Guard, "middleman/guard"
70
69
 
71
70
  # Custom Renderers
@@ -150,6 +149,9 @@ module Middleman
150
149
 
151
150
  # Automatically resize images for mobile devises
152
151
  # autoload :TinySrc, "middleman/features/tiny_src"
152
+
153
+ # Automatically convert filename.html files into filename/index.html
154
+ autoload :DirectoryIndexes, "middleman/features/directory_indexes"
153
155
  end
154
156
 
155
157
  def self.server(&block)
@@ -6,7 +6,7 @@ module Middleman::Base
6
6
 
7
7
  # Basic Sinatra config
8
8
  app.set :app_file, __FILE__
9
- app.set :root, ENV["MM_DIR"] || Dir.pwd
9
+ app.set :root, Dir.pwd
10
10
  app.set :sessions, false
11
11
  app.set :logging, false
12
12
  app.set :environment, (ENV['MM_ENV'] && ENV['MM_ENV'].to_sym) || :development
@@ -86,7 +86,9 @@ module Middleman::Base
86
86
  request_path = request.path_info.gsub("%20", " ")
87
87
  result = resolve_template(request_path, :raise_exceptions => false)
88
88
 
89
- if result
89
+ should_be_ignored = !(request["is_proxy"]) && settings.excluded_paths.include?("/#{request_path}")
90
+
91
+ if result && !should_be_ignored
90
92
  extensionless_path, template_engine = result
91
93
 
92
94
  # Return static files
@@ -119,6 +121,27 @@ module Middleman::Base
119
121
  super(option, value, &nil)
120
122
  end
121
123
 
124
+ def build_reroute(&block)
125
+ @build_rerouters ||= []
126
+ @build_rerouters << block
127
+ end
128
+
129
+ def reroute_builder(desination, request_path)
130
+ @build_rerouters ||= []
131
+
132
+ result = [desination, request_path]
133
+
134
+ @build_rerouters.each do |block|
135
+ output = block.call(desination, request_path)
136
+ if output
137
+ result = output
138
+ break
139
+ end
140
+ end
141
+
142
+ result
143
+ end
144
+
122
145
  def before_processing(&block)
123
146
  @before_processes ||= []
124
147
  @before_processes << block
@@ -3,8 +3,9 @@ require "thor/group"
3
3
  require 'rack/test'
4
4
 
5
5
  SHARED_SERVER = Middleman.server
6
+ SHARED_SERVER.set :environment, :build
6
7
 
7
- module Middleman
8
+ module Middleman
8
9
  module ThorActions
9
10
  def tilt_template(source, *args, &block)
10
11
  config = args.last.is_a?(Hash) ? args.pop : {}
@@ -12,14 +13,17 @@ module Middleman
12
13
 
13
14
  # source = File.expand_path(find_in_source_paths(source.to_s))
14
15
  context = instance_eval('binding')
15
-
16
- @@rack_test ||= ::Rack::Test::Session.new(::Rack::MockSession.new(SHARED_SERVER))
17
16
 
18
- create_file destination, nil, config do
19
- # The default render just requests the page over Rack and writes the response
20
- request_path = destination.sub(/^#{SHARED_SERVER.build_dir}/, "")
21
- @@rack_test.get(request_path.gsub(/\s/, "%20"))
22
- @@rack_test.last_response.body
17
+ request_path = destination.sub(/^#{SHARED_SERVER.build_dir}/, "")
18
+
19
+ begin
20
+ destination, request_page = SHARED_SERVER.reroute_builder(destination, request_path)
21
+
22
+ create_file destination, nil, config do
23
+ Middleman::Builder.shared_rack.get(request_path.gsub(/\s/, "%20"))
24
+ Middleman::Builder.shared_rack.last_response.body
25
+ end
26
+ rescue
23
27
  end
24
28
  end
25
29
  end
@@ -28,13 +32,20 @@ module Middleman
28
32
  include Thor::Actions
29
33
  include Middleman::ThorActions
30
34
 
35
+ def self.shared_rack
36
+ @shared_rack ||= begin
37
+ mock = ::Rack::MockSession.new(SHARED_SERVER)
38
+ sess = ::Rack::Test::Session.new(mock)
39
+ sess.get("/")
40
+ sess
41
+ end
42
+ end
43
+
31
44
  class_option :relative, :type => :boolean, :aliases => "-r", :default => false, :desc => 'Override the config.rb file and force relative urls'
32
45
 
33
46
  def initialize(*args)
34
47
  super
35
48
 
36
- SHARED_SERVER.new
37
-
38
49
  if options.has_key?("relative") && options["relative"]
39
50
  SHARED_SERVER.activate :relative_assets
40
51
  end
@@ -47,6 +58,8 @@ module Middleman
47
58
  end
48
59
 
49
60
  def build_all_files
61
+ self.class.shared_rack
62
+
50
63
  action Directory.new(self, SHARED_SERVER.views, SHARED_SERVER.build_dir, { :force => true })
51
64
 
52
65
  SHARED_SERVER.proxied_paths.each do |url, proxy|