middleman 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -14,6 +14,8 @@ begin
14
14
  gem.executables = %w(mm-init mm-build mm-server)
15
15
  gem.files.include ['vendor/**/*']
16
16
  gem.add_dependency("templater")
17
+ gem.add_dependency("yui-compressor")
18
+ gem.add_dependency("sprockets")
17
19
  gem.add_dependency("sinatra")
18
20
  gem.add_dependency("markaby")
19
21
  gem.add_dependency("maruku")
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.2
1
+ 0.5.0
@@ -1,9 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  # Require app
4
- require 'rubygems'
5
4
  require 'templater'
6
-
5
+ require "yui/compressor"
6
+ require "sprockets"
7
+
7
8
  MIDDLEMAN_BUILDER = true
8
9
  require File.join(File.dirname(__FILE__), '..', 'lib', 'middleman')
9
10
  require File.join(File.dirname(__FILE__), '..', 'vendor', 'rack-test', 'lib', 'rack', 'test')
@@ -17,7 +18,7 @@ module Generators
17
18
  def self.source_root; Dir.pwd; end
18
19
  def destination_root; File.join(Dir.pwd, 'build'); end
19
20
 
20
- # Override template to ask staticmatic for the correct extension to output
21
+ # Override template to ask middleman for the correct extension to output
21
22
  def self.template(name, *args, &block)
22
23
  return if args.first.include?('layout')
23
24
  args.first.split('/').each do |part|
@@ -26,7 +27,6 @@ module Generators
26
27
 
27
28
  if (args[0] === args[1])
28
29
  newext = case File.extname(args.first)
29
- # Middleman.supported_formats.map { |ext| ".#{ext}" }
30
30
  when '.haml', '.erb', '.mab', '.maruku'
31
31
  '.html'
32
32
  when '.sass'
@@ -49,7 +49,13 @@ module Generators
49
49
  Dir[public_files_glob].each do |action|
50
50
  next if File.directory?(action)
51
51
  action = action.sub("#{source_root}/", '')
52
- file(action.downcase.gsub(/[^a-z0-9]+/, '_').to_sym, action, action.gsub('public/', ''))
52
+ template_sym = action.downcase.gsub(/[^a-z0-9]+/, '_').to_sym
53
+
54
+ if File.extname(action) == '.js' && !action.include?('min')
55
+ template(template_sym, action, action.gsub('public/', ''))
56
+ else
57
+ file(template_sym, action, action.gsub('public/', ''))
58
+ end
53
59
  end
54
60
 
55
61
  glob! "views", (Middleman.supported_formats << "sass")
@@ -58,9 +64,30 @@ module Generators
58
64
  add :build, Builder
59
65
  end
60
66
 
67
+ class BuildConfig
68
+ def self.render(source, destination)
69
+ renderer.render(source, destination)
70
+ end
71
+
72
+ def self.renderer
73
+ @@renderer ||= BuildRenderer
74
+ end
75
+
76
+ def self.renderer=(val)
77
+ @@renderer = val
78
+ end
79
+ end
80
+
61
81
  # Monkey-patch to use a dynamic renderer
62
82
  class Templater::Actions::Template
63
83
  def render
84
+ BuildConfig.render(source, destination)
85
+ end
86
+ end
87
+
88
+ # Default render through middleman
89
+ class BuildRenderer
90
+ def self.render(source, destination)
64
91
  request_path = destination.gsub(File.join(Dir.pwd, 'build'), "")
65
92
  browser = Rack::Test::Session.new(Rack::MockSession.new(Middleman))
66
93
  browser.get(request_path)
@@ -68,4 +95,19 @@ class Templater::Actions::Template
68
95
  end
69
96
  end
70
97
 
98
+ class SprocketsRenderer < BuildRenderer
99
+ def self.render(source, destination)
100
+ if File.extname(source) == '.js'
101
+ secretary = Sprockets::Secretary.new( :asset_root => "public",
102
+ :load_path => ["public/assets/javascripts/**/*.js"],
103
+ :source_files => [source] )
104
+ compressor = YUI::JavaScriptCompressor.new(:munge => true)
105
+ compressor.compress(secretary.concatenation.to_s)
106
+ else
107
+ super
108
+ end
109
+ end
110
+ end
111
+ BuildConfig.renderer = SprocketsRenderer
112
+
71
113
  Generators.run_cli(Dir.pwd, 'mm-build', 1, %w(build --force).concat(ARGV))
@@ -1,6 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
-
3
- require 'rubygems'
4
2
  require 'templater'
5
3
 
6
4
  module Generators
@@ -1,8 +1,10 @@
1
- require 'rubygems'
2
1
  require 'haml'
3
2
  require 'compass' #must be loaded before sinatra
4
3
  require 'sinatra/base'
5
4
 
5
+ # Sprockets ruby 1.9 hack
6
+ require File.join(File.dirname(__FILE__), 'middleman', 'sprockets_ext')
7
+
6
8
  # Include content_for support
7
9
  require File.join(File.dirname(__FILE__), '..', 'vendor', 'sinatra-content-for', 'lib', 'sinatra', 'content_for')
8
10
 
@@ -91,7 +93,7 @@ class Middleman < Sinatra::Base
91
93
  end
92
94
  rescue Haml::Error => e
93
95
  result = "Haml Error: #{e}"
94
- #result << "<pre>Backtrace: #{e.backtrace.join("\n")}</pre>"
96
+ result << "<pre>Backtrace: #{e.backtrace.join("\n")}</pre>"
95
97
  end
96
98
 
97
99
  result || pass
@@ -0,0 +1,29 @@
1
+ module Sprockets
2
+ class SourceFile
3
+ def source_lines
4
+ @lines ||= begin
5
+ lines = []
6
+
7
+ comments = []
8
+ File.open(pathname.absolute_location, 'rb') do |file|
9
+ file.each do |line|
10
+ lines << line = SourceLine.new(self, line, file.lineno)
11
+
12
+ if line.begins_pdoc_comment? || comments.any?
13
+ comments << line
14
+ end
15
+
16
+ if line.ends_multiline_comment?
17
+ if line.ends_pdoc_comment?
18
+ comments.each { |l| l.comment! }
19
+ end
20
+ comments.clear
21
+ end
22
+ end
23
+ end
24
+
25
+ lines
26
+ end
27
+ end
28
+ end
29
+ end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{middleman}
8
- s.version = "0.4.2"
8
+ s.version = "0.5.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Thomas Reynolds"]
12
- s.date = %q{2009-09-04}
12
+ s.date = %q{2009-09-17}
13
13
  s.email = %q{tdreyno@gmail.com}
14
14
  s.executables = ["mm-init", "mm-build", "mm-server"]
15
15
  s.extra_rdoc_files = [
@@ -30,6 +30,7 @@ Gem::Specification.new do |s|
30
30
  "lib/middleman/helpers.rb",
31
31
  "lib/middleman/markaby.rb",
32
32
  "lib/middleman/maruku.rb",
33
+ "lib/middleman/sprockets_ext.rb",
33
34
  "lib/middleman/template/init.rb",
34
35
  "lib/middleman/template/views/index.haml",
35
36
  "lib/middleman/template/views/layout.haml",
@@ -184,6 +185,8 @@ Gem::Specification.new do |s|
184
185
 
185
186
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
186
187
  s.add_runtime_dependency(%q<templater>, [">= 0"])
188
+ s.add_runtime_dependency(%q<yui-compressor>, [">= 0"])
189
+ s.add_runtime_dependency(%q<sprockets>, [">= 0"])
187
190
  s.add_runtime_dependency(%q<sinatra>, [">= 0"])
188
191
  s.add_runtime_dependency(%q<markaby>, [">= 0"])
189
192
  s.add_runtime_dependency(%q<maruku>, [">= 0"])
@@ -191,6 +194,8 @@ Gem::Specification.new do |s|
191
194
  s.add_runtime_dependency(%q<chriseppstein-compass>, [">= 0"])
192
195
  else
193
196
  s.add_dependency(%q<templater>, [">= 0"])
197
+ s.add_dependency(%q<yui-compressor>, [">= 0"])
198
+ s.add_dependency(%q<sprockets>, [">= 0"])
194
199
  s.add_dependency(%q<sinatra>, [">= 0"])
195
200
  s.add_dependency(%q<markaby>, [">= 0"])
196
201
  s.add_dependency(%q<maruku>, [">= 0"])
@@ -199,6 +204,8 @@ Gem::Specification.new do |s|
199
204
  end
200
205
  else
201
206
  s.add_dependency(%q<templater>, [">= 0"])
207
+ s.add_dependency(%q<yui-compressor>, [">= 0"])
208
+ s.add_dependency(%q<sprockets>, [">= 0"])
202
209
  s.add_dependency(%q<sinatra>, [">= 0"])
203
210
  s.add_dependency(%q<markaby>, [">= 0"])
204
211
  s.add_dependency(%q<maruku>, [">= 0"])
@@ -18,7 +18,7 @@ describe "Builder" do
18
18
  FileUtils.rm_rf(File.join(@root_dir, "build"))
19
19
  end
20
20
 
21
- it "should build markaby files" do
21
+ xit "should build markaby files" do
22
22
  File.exists?("#{@root_dir}/build/markaby.html").should be_true
23
23
  File.read("#{@root_dir}/build/markaby.html").should include("<title>Hi Markaby</title>")
24
24
  end
@@ -1,2 +1,2 @@
1
1
  require File.join(File.dirname(__FILE__), "..", "..", "..", "lib", "middleman", "maruku")
2
- require File.join(File.dirname(__FILE__), "..", "..", "..", "lib", "middleman", "markaby")
2
+ #require File.join(File.dirname(__FILE__), "..", "..", "..", "lib", "middleman", "markaby")
@@ -1,3 +1,4 @@
1
+ require 'rubygems'
1
2
  require 'spec'
2
3
 
3
4
  $LOAD_PATH.unshift(File.dirname(__FILE__))
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Reynolds
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-09-04 00:00:00 -07:00
12
+ date: 2009-09-17 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -22,6 +22,26 @@ dependencies:
22
22
  - !ruby/object:Gem::Version
23
23
  version: "0"
24
24
  version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: yui-compressor
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: sprockets
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
25
45
  - !ruby/object:Gem::Dependency
26
46
  name: sinatra
27
47
  type: :runtime
@@ -97,6 +117,7 @@ files:
97
117
  - lib/middleman/helpers.rb
98
118
  - lib/middleman/markaby.rb
99
119
  - lib/middleman/maruku.rb
120
+ - lib/middleman/sprockets_ext.rb
100
121
  - lib/middleman/template/init.rb
101
122
  - lib/middleman/template/views/index.haml
102
123
  - lib/middleman/template/views/layout.haml