middleman 1.1.5 → 1.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,4 +9,31 @@ Feature: Custom layouts
9
9
  Scenario: Using with_layout block
10
10
  Given "/custom-layout.html" with_layout block has layout "custom"
11
11
  When I go to "/custom-layout.html"
12
+ Then I should see "Custom Layout"
13
+
14
+ Scenario: Using custom :layout attribute with folders
15
+ Given page "/custom-layout-dir/" has layout "custom"
16
+ When I go to "/custom-layout-dir"
17
+ Then I should see "Custom Layout"
18
+ When I go to "/custom-layout-dir/"
19
+ Then I should see "Custom Layout"
20
+ When I go to "/custom-layout-dir/index.html"
21
+ Then I should see "Custom Layout"
22
+
23
+ Scenario: Using custom :layout attribute with folders
24
+ Given page "/custom-layout-dir" has layout "custom"
25
+ When I go to "/custom-layout-dir"
26
+ Then I should see "Custom Layout"
27
+ When I go to "/custom-layout-dir/"
28
+ Then I should see "Custom Layout"
29
+ When I go to "/custom-layout-dir/index.html"
30
+ Then I should see "Custom Layout"
31
+
32
+ Scenario: Using custom :layout attribute with folders
33
+ Given page "/custom-layout-dir/index.html" has layout "custom"
34
+ When I go to "/custom-layout-dir"
35
+ Then I should see "Custom Layout"
36
+ When I go to "/custom-layout-dir/"
37
+ Then I should see "Custom Layout"
38
+ When I go to "/custom-layout-dir/index.html"
12
39
  Then I should see "Custom Layout"
@@ -101,12 +101,20 @@ module Middleman
101
101
  # page "/about.html", :layout => false
102
102
  # page "/", :layout => :homepage_layout
103
103
  def self.page(url, options={}, &block)
104
- url << settings.index_file if url.match(%r{/$})
104
+ url = url.gsub(%r{#{settings.index_file}$}, "")
105
+ url = url.gsub(%r{(\/)$}, "") if url.length > 1
106
+
107
+ paths = [url]
108
+ paths << "#{url}/" if url.length > 1 && url.split("/").last.split('.').length <= 1
109
+ paths << "/#{path_to_index(url)}"
105
110
 
106
111
  options[:layout] = current_layout if options[:layout].nil?
107
- get(url) do
108
- return yield if block_given?
109
- process_request(options)
112
+
113
+ paths.each do |p|
114
+ get(p) do
115
+ return yield if block_given?
116
+ process_request(options)
117
+ end
110
118
  end
111
119
  end
112
120
 
@@ -116,15 +124,18 @@ module Middleman
116
124
  end
117
125
 
118
126
  private
119
- # Internal method to look for templates and evaluate them if found
120
- def process_request(options={})
121
- # Normalize the path and add index if we're looking at a directory
122
- path = request.path
127
+ def self.path_to_index(path)
123
128
  parts = path ? path.split('/') : []
124
129
  if parts.last.nil? || parts.last.split('.').length == 1
125
130
  path = File.join(path, settings.index_file)
126
131
  end
127
- path.gsub!(%r{^/}, '')
132
+ path.gsub(%r{^/}, '')
133
+ end
134
+
135
+ # Internal method to look for templates and evaluate them if found
136
+ def process_request(options={})
137
+ # Normalize the path and add index if we're looking at a directory
138
+ path = self.class.path_to_index(request.path)
128
139
 
129
140
  static_path = File.join(Middleman::Server.public, path)
130
141
  # if File.exists? static_path
@@ -1,3 +1,3 @@
1
1
  module Middleman
2
- VERSION = "1.1.5"
2
+ VERSION = "1.1.6"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 1
9
- - 5
10
- version: 1.1.5
9
+ - 6
10
+ version: 1.1.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Thomas Reynolds
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-20 00:00:00 -07:00
18
+ date: 2011-04-22 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -393,6 +393,7 @@ files:
393
393
  - fixtures/test-app/views/auto-css.html.haml
394
394
  - fixtures/test-app/views/auto-image-sizes.html.haml
395
395
  - fixtures/test-app/views/cache-buster.html.haml
396
+ - fixtures/test-app/views/custom-layout-dir/index.html.haml
396
397
  - fixtures/test-app/views/custom-layout.html.haml
397
398
  - fixtures/test-app/views/index.html.haml
398
399
  - fixtures/test-app/views/inline-css.html.haml
@@ -528,6 +529,7 @@ test_files:
528
529
  - fixtures/test-app/views/auto-css.html.haml
529
530
  - fixtures/test-app/views/auto-image-sizes.html.haml
530
531
  - fixtures/test-app/views/cache-buster.html.haml
532
+ - fixtures/test-app/views/custom-layout-dir/index.html.haml
531
533
  - fixtures/test-app/views/custom-layout.html.haml
532
534
  - fixtures/test-app/views/index.html.haml
533
535
  - fixtures/test-app/views/inline-css.html.haml