middleman 1.2.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,7 +10,6 @@ Feature: Builder
10
10
  Then "services/index.html" should exist and include "Services"
11
11
  Then "stylesheets/site.css" should exist and include "html, body, div, span"
12
12
  Then "stylesheets/site_scss.css" should exist and include "html, body, div, span"
13
- Then "stylesheets/test_less.css" should exist and include "666"
14
13
  Then "stylesheets/static.css" should exist and include "body"
15
14
  Then "_partial.html" should not exist
16
15
  And cleanup built test app
@@ -1,8 +1,11 @@
1
1
  require "yaml"
2
+ require "httparty"
3
+ require "thor"
2
4
 
3
5
  module Middleman::Features::Data
4
6
  class << self
5
7
  def registered(app)
8
+ app.extend ClassMethods
6
9
  app.helpers Middleman::Features::Data::Helpers
7
10
  end
8
11
  alias :included :registered
@@ -20,11 +23,57 @@ module Middleman::Features::Data
20
23
  end
21
24
 
22
25
  def method_missing(path)
26
+ response = nil
27
+
28
+ @@remote_sources ||= {}
29
+ if @@remote_sources.has_key?(path.to_s)
30
+ response = HTTParty.get(@@remote_sources[path.to_s]).parsed_response
31
+ end
32
+
23
33
  file_path = File.join(@app.class.root, "data", "#{path}.yml")
24
34
  if File.exists? file_path
25
- return YAML.load_file(file_path)
35
+ response = YAML.load_file(file_path)
36
+ end
37
+
38
+ if response
39
+ recursively_enhance(response)
40
+ end
41
+ end
42
+
43
+ def self.add_source(name, json_url)
44
+ @@remote_sources ||= {}
45
+ @@remote_sources[name.to_s] = json_url
46
+ end
47
+
48
+ private
49
+ def recursively_enhance(data)
50
+ if data.is_a? Hash
51
+ data = Thor::CoreExt::HashWithIndifferentAccess.new(data)
52
+ data.each do |key, val|
53
+ data[key] = recursively_enhance(val)
54
+ end
55
+ data
56
+ elsif data.is_a? Array
57
+ data.each_with_index do |val, i|
58
+ data[i] = recursively_enhance(val)
59
+ end
60
+ data
61
+ else
62
+ data
26
63
  end
27
64
  end
28
65
  end
29
66
 
67
+ module ClassMethods
68
+ # Makes HTTP json data available in the data object
69
+ #
70
+ # data_source :my_json, "http://my/file.json"
71
+ #
72
+ # Available in templates as:
73
+ #
74
+ # data.my_json
75
+ def data_source(name, url)
76
+ Middleman::Features::Data::DataObject.add_source(name, url)
77
+ end
78
+ end
30
79
  end
@@ -3,22 +3,10 @@ module Middleman::Features::MinifyJavascript
3
3
  def registered(app)
4
4
  # Only do minification on build or prod mode
5
5
  return unless [:build, :production].include? app.environment
6
-
7
- Middleman::Features::MinifyJavascript::Haml::Javascript.send :include, ::Haml::Filters::Base
8
6
 
9
7
  require "middleman/features/minify_javascript/rack"
10
8
  app.use Middleman::Rack::MinifyJavascript
11
9
  end
12
10
  alias :included :registered
13
11
  end
14
-
15
- module Haml
16
- module Javascript
17
- def render_with_options(text, options)
18
- compressor = ::YUI::JavaScriptCompressor.new(:munge => true)
19
- data = compressor.compress(text)
20
- %Q{<script type=#{options[:attr_wrapper]}text/javascript#{options[:attr_wrapper]}>#{data.chomp}</script>}
21
- end
22
- end
23
- end
24
12
  end
@@ -1,7 +1,7 @@
1
1
  begin
2
- require "yui/compressor"
2
+ require 'uglifier'
3
3
  rescue LoadError
4
- puts "YUI-Compressor not available. Install it with: gem install yui-compressor"
4
+ puts "UglifyJS not available. Install it with: gem install uglifier"
5
5
  end
6
6
 
7
7
  module Middleman
@@ -16,14 +16,14 @@ module Middleman
16
16
  status, headers, response = @app.call(env)
17
17
 
18
18
  if env["PATH_INFO"].match(/\.js$/)
19
- compressor = ::YUI::JavaScriptCompressor.new(:munge => true)
19
+ compressor = ::Uglifier.new
20
20
 
21
21
  if response.is_a?(::Rack::File) or response.is_a?(Sinatra::Helpers::StaticFile)
22
22
  uncompressed_source = File.read(response.path)
23
23
  else
24
24
  uncompressed_source = response.join
25
25
  end
26
- minified = compressor.compress(uncompressed_source)
26
+ minified = compressor.compile(uncompressed_source)
27
27
  headers["Content-Length"] = ::Rack::Utils.bytesize(minified).to_s
28
28
  response = [minified]
29
29
  end
@@ -1,3 +1,3 @@
1
1
  module Middleman
2
- VERSION = "1.2.1"
2
+ VERSION = "1.2.2"
3
3
  end
data/middleman.gemspec CHANGED
@@ -23,19 +23,19 @@ Gem::Specification.new do |s|
23
23
  s.add_runtime_dependency("kirk", ["~> 0.1.8"]) if defined?(JRUBY_VERSION)
24
24
  s.add_runtime_dependency("shotgun", ["~> 0.8.0"])
25
25
  s.add_runtime_dependency("thor", ["~> 0.14.0"])
26
- s.add_runtime_dependency("tilt", ["~> 1.2.0"])
26
+ s.add_runtime_dependency("tilt", ["~> 1.3.0"])
27
27
  s.add_runtime_dependency("sinatra", ["~> 1.2.0"])
28
28
  s.add_runtime_dependency("padrino-core", ["~> 0.9.23"])
29
29
  s.add_runtime_dependency("padrino-helpers", ["~> 0.9.23"])
30
30
  s.add_runtime_dependency("rack-test", ["~> 0.5.0"])
31
- s.add_runtime_dependency("yui-compressor", ["~> 0.9.0"])
31
+ s.add_runtime_dependency("therubyracer", ["~> 0.8.0"]) unless defined?(JRUBY_VERSION)
32
+ s.add_runtime_dependency("therubyrhino", ["~> 1.72.0"]) if defined?(JRUBY_VERSION)
33
+ s.add_runtime_dependency("uglifier", ["~> 0.5.0"])
32
34
  s.add_runtime_dependency("haml", ["~> 3.1.0"])
33
35
  s.add_runtime_dependency("sass", ["~> 3.1.0"])
34
36
  s.add_runtime_dependency("compass", ["~> 0.11.1"])
35
- s.add_runtime_dependency("chunky_png", ["~> 1.1.0"])
36
- s.add_runtime_dependency("oily_png", ["~> 1.0"]) unless defined?(JRUBY_VERSION)
37
37
  s.add_runtime_dependency("coffee-script", ["~> 2.1.0"])
38
- s.add_runtime_dependency("less", ["~> 1.2.0"])
38
+ s.add_runtime_dependency("httparty", ["~> 0.7.0"])
39
39
  # s.add_runtime_dependency("fssm", ["~> 0.2.0"])
40
40
  s.add_development_dependency("cucumber", ["~> 0.10.0"])
41
41
  s.add_development_dependency("rspec", [">= 0"])
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: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 2
9
- - 1
10
- version: 1.2.1
9
+ - 2
10
+ version: 1.2.2
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-26 00:00:00 -07:00
18
+ date: 2011-04-29 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -89,12 +89,12 @@ dependencies:
89
89
  requirements:
90
90
  - - ~>
91
91
  - !ruby/object:Gem::Version
92
- hash: 31
92
+ hash: 27
93
93
  segments:
94
94
  - 1
95
- - 2
95
+ - 3
96
96
  - 0
97
- version: 1.2.0
97
+ version: 1.3.0
98
98
  type: :runtime
99
99
  version_requirements: *id005
100
100
  - !ruby/object:Gem::Dependency
@@ -162,39 +162,39 @@ dependencies:
162
162
  type: :runtime
163
163
  version_requirements: *id009
164
164
  - !ruby/object:Gem::Dependency
165
- name: yui-compressor
165
+ name: therubyracer
166
166
  prerelease: false
167
167
  requirement: &id010 !ruby/object:Gem::Requirement
168
168
  none: false
169
169
  requirements:
170
170
  - - ~>
171
171
  - !ruby/object:Gem::Version
172
- hash: 59
172
+ hash: 63
173
173
  segments:
174
174
  - 0
175
- - 9
175
+ - 8
176
176
  - 0
177
- version: 0.9.0
177
+ version: 0.8.0
178
178
  type: :runtime
179
179
  version_requirements: *id010
180
180
  - !ruby/object:Gem::Dependency
181
- name: haml
181
+ name: uglifier
182
182
  prerelease: false
183
183
  requirement: &id011 !ruby/object:Gem::Requirement
184
184
  none: false
185
185
  requirements:
186
186
  - - ~>
187
187
  - !ruby/object:Gem::Version
188
- hash: 3
188
+ hash: 11
189
189
  segments:
190
- - 3
191
- - 1
192
190
  - 0
193
- version: 3.1.0
191
+ - 5
192
+ - 0
193
+ version: 0.5.0
194
194
  type: :runtime
195
195
  version_requirements: *id011
196
196
  - !ruby/object:Gem::Dependency
197
- name: sass
197
+ name: haml
198
198
  prerelease: false
199
199
  requirement: &id012 !ruby/object:Gem::Requirement
200
200
  none: false
@@ -210,56 +210,41 @@ dependencies:
210
210
  type: :runtime
211
211
  version_requirements: *id012
212
212
  - !ruby/object:Gem::Dependency
213
- name: compass
213
+ name: sass
214
214
  prerelease: false
215
215
  requirement: &id013 !ruby/object:Gem::Requirement
216
216
  none: false
217
217
  requirements:
218
218
  - - ~>
219
219
  - !ruby/object:Gem::Version
220
- hash: 49
220
+ hash: 3
221
221
  segments:
222
- - 0
223
- - 11
222
+ - 3
224
223
  - 1
225
- version: 0.11.1
224
+ - 0
225
+ version: 3.1.0
226
226
  type: :runtime
227
227
  version_requirements: *id013
228
228
  - !ruby/object:Gem::Dependency
229
- name: chunky_png
229
+ name: compass
230
230
  prerelease: false
231
231
  requirement: &id014 !ruby/object:Gem::Requirement
232
232
  none: false
233
233
  requirements:
234
234
  - - ~>
235
235
  - !ruby/object:Gem::Version
236
- hash: 19
236
+ hash: 49
237
237
  segments:
238
- - 1
239
- - 1
240
238
  - 0
241
- version: 1.1.0
242
- type: :runtime
243
- version_requirements: *id014
244
- - !ruby/object:Gem::Dependency
245
- name: oily_png
246
- prerelease: false
247
- requirement: &id015 !ruby/object:Gem::Requirement
248
- none: false
249
- requirements:
250
- - - ~>
251
- - !ruby/object:Gem::Version
252
- hash: 15
253
- segments:
239
+ - 11
254
240
  - 1
255
- - 0
256
- version: "1.0"
241
+ version: 0.11.1
257
242
  type: :runtime
258
- version_requirements: *id015
243
+ version_requirements: *id014
259
244
  - !ruby/object:Gem::Dependency
260
245
  name: coffee-script
261
246
  prerelease: false
262
- requirement: &id016 !ruby/object:Gem::Requirement
247
+ requirement: &id015 !ruby/object:Gem::Requirement
263
248
  none: false
264
249
  requirements:
265
250
  - - ~>
@@ -271,27 +256,27 @@ dependencies:
271
256
  - 0
272
257
  version: 2.1.0
273
258
  type: :runtime
274
- version_requirements: *id016
259
+ version_requirements: *id015
275
260
  - !ruby/object:Gem::Dependency
276
- name: less
261
+ name: httparty
277
262
  prerelease: false
278
- requirement: &id017 !ruby/object:Gem::Requirement
263
+ requirement: &id016 !ruby/object:Gem::Requirement
279
264
  none: false
280
265
  requirements:
281
266
  - - ~>
282
267
  - !ruby/object:Gem::Version
283
- hash: 31
268
+ hash: 3
284
269
  segments:
285
- - 1
286
- - 2
287
270
  - 0
288
- version: 1.2.0
271
+ - 7
272
+ - 0
273
+ version: 0.7.0
289
274
  type: :runtime
290
- version_requirements: *id017
275
+ version_requirements: *id016
291
276
  - !ruby/object:Gem::Dependency
292
277
  name: cucumber
293
278
  prerelease: false
294
- requirement: &id018 !ruby/object:Gem::Requirement
279
+ requirement: &id017 !ruby/object:Gem::Requirement
295
280
  none: false
296
281
  requirements:
297
282
  - - ~>
@@ -303,11 +288,11 @@ dependencies:
303
288
  - 0
304
289
  version: 0.10.0
305
290
  type: :development
306
- version_requirements: *id018
291
+ version_requirements: *id017
307
292
  - !ruby/object:Gem::Dependency
308
293
  name: rspec
309
294
  prerelease: false
310
- requirement: &id019 !ruby/object:Gem::Requirement
295
+ requirement: &id018 !ruby/object:Gem::Requirement
311
296
  none: false
312
297
  requirements:
313
298
  - - ">="
@@ -317,11 +302,11 @@ dependencies:
317
302
  - 0
318
303
  version: "0"
319
304
  type: :development
320
- version_requirements: *id019
305
+ version_requirements: *id018
321
306
  - !ruby/object:Gem::Dependency
322
307
  name: rocco
323
308
  prerelease: false
324
- requirement: &id020 !ruby/object:Gem::Requirement
309
+ requirement: &id019 !ruby/object:Gem::Requirement
325
310
  none: false
326
311
  requirements:
327
312
  - - ">="
@@ -331,7 +316,7 @@ dependencies:
331
316
  - 0
332
317
  version: "0"
333
318
  type: :development
334
- version_requirements: *id020
319
+ version_requirements: *id019
335
320
  description:
336
321
  email:
337
322
  - tdreyno@gmail.com
@@ -360,7 +345,6 @@ files:
360
345
  - features/generator.feature
361
346
  - features/helpers_auto_stylesheet_link_tag.feature
362
347
  - features/helpers_page_classes.feature
363
- - features/less-css.feature
364
348
  - features/minify_css.feature
365
349
  - features/minify_javascript.feature
366
350
  - features/padrino_helpers.feature
@@ -404,7 +388,6 @@ files:
404
388
  - fixtures/test-app/views/stylesheets/relative_assets.css.sass
405
389
  - fixtures/test-app/views/stylesheets/site.css.sass
406
390
  - fixtures/test-app/views/stylesheets/site_scss.css.scss
407
- - fixtures/test-app/views/stylesheets/test_less.css.less
408
391
  - fixtures/test-app/views/tiny_src.html.haml
409
392
  - lib/middleman.rb
410
393
  - lib/middleman/assets.rb
@@ -500,7 +483,6 @@ test_files:
500
483
  - features/generator.feature
501
484
  - features/helpers_auto_stylesheet_link_tag.feature
502
485
  - features/helpers_page_classes.feature
503
- - features/less-css.feature
504
486
  - features/minify_css.feature
505
487
  - features/minify_javascript.feature
506
488
  - features/padrino_helpers.feature
@@ -544,5 +526,4 @@ test_files:
544
526
  - fixtures/test-app/views/stylesheets/relative_assets.css.sass
545
527
  - fixtures/test-app/views/stylesheets/site.css.sass
546
528
  - fixtures/test-app/views/stylesheets/site_scss.css.scss
547
- - fixtures/test-app/views/stylesheets/test_less.css.less
548
529
  - fixtures/test-app/views/tiny_src.html.haml
@@ -1,7 +0,0 @@
1
- Feature: Support Less CSS
2
- In order to offer an alternative when writing CSS
3
-
4
- Scenario: Rendering Less
5
- Given the Server is running
6
- When I go to "/stylesheets/test_less.css"
7
- Then I should see "666"
@@ -1,5 +0,0 @@
1
- @brand_color: #666666;
2
-
3
- #header {
4
- color: @brand_color;
5
- }