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 +2 -0
- data/VERSION +1 -1
- data/bin/mm-build +47 -5
- data/bin/mm-init +0 -2
- data/lib/middleman.rb +4 -2
- data/lib/middleman/sprockets_ext.rb +29 -0
- data/middleman.gemspec +9 -2
- data/spec/builder_spec.rb +1 -1
- data/spec/fixtures/sample/init.rb +1 -1
- data/spec/spec_helper.rb +1 -0
- metadata +23 -2
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.
|
|
1
|
+
0.5.0
|
data/bin/mm-build
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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))
|
data/bin/mm-init
CHANGED
data/lib/middleman.rb
CHANGED
|
@@ -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
|
-
|
|
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
|
data/middleman.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = %q{middleman}
|
|
8
|
-
s.version = "0.
|
|
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-
|
|
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"])
|
data/spec/builder_spec.rb
CHANGED
|
@@ -18,7 +18,7 @@ describe "Builder" do
|
|
|
18
18
|
FileUtils.rm_rf(File.join(@root_dir, "build"))
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
|
|
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")
|
data/spec/spec_helper.rb
CHANGED
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
|
+
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-
|
|
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
|