middleman 0.4.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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