haml-edge 2.1.1
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/EDGE_GEM_VERSION +1 -0
- data/FAQ +138 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +332 -0
- data/REVISION +1 -0
- data/Rakefile +226 -0
- data/VERSION +1 -0
- data/bin/css2sass +7 -0
- data/bin/haml +9 -0
- data/bin/html2haml +7 -0
- data/bin/sass +8 -0
- data/extra/edge_gem_watch.rb +13 -0
- data/extra/haml-mode.el +596 -0
- data/extra/sass-mode.el +200 -0
- data/init.rb +8 -0
- data/lib/haml/buffer.rb +255 -0
- data/lib/haml/engine.rb +268 -0
- data/lib/haml/error.rb +22 -0
- data/lib/haml/exec.rb +395 -0
- data/lib/haml/filters.rb +275 -0
- data/lib/haml/helpers/action_view_extensions.rb +45 -0
- data/lib/haml/helpers/action_view_mods.rb +181 -0
- data/lib/haml/helpers.rb +488 -0
- data/lib/haml/html.rb +222 -0
- data/lib/haml/precompiler.rb +904 -0
- data/lib/haml/shared.rb +45 -0
- data/lib/haml/template/patch.rb +58 -0
- data/lib/haml/template/plugin.rb +72 -0
- data/lib/haml/template.rb +42 -0
- data/lib/haml/util.rb +88 -0
- data/lib/haml/version.rb +47 -0
- data/lib/haml.rb +1044 -0
- data/lib/sass/css.rb +388 -0
- data/lib/sass/engine.rb +495 -0
- data/lib/sass/environment.rb +46 -0
- data/lib/sass/error.rb +35 -0
- data/lib/sass/plugin/merb.rb +56 -0
- data/lib/sass/plugin/rails.rb +24 -0
- data/lib/sass/plugin.rb +204 -0
- data/lib/sass/repl.rb +51 -0
- data/lib/sass/script/bool.rb +13 -0
- data/lib/sass/script/color.rb +97 -0
- data/lib/sass/script/funcall.rb +29 -0
- data/lib/sass/script/functions.rb +134 -0
- data/lib/sass/script/lexer.rb +148 -0
- data/lib/sass/script/literal.rb +82 -0
- data/lib/sass/script/number.rb +231 -0
- data/lib/sass/script/operation.rb +30 -0
- data/lib/sass/script/parser.rb +142 -0
- data/lib/sass/script/string.rb +9 -0
- data/lib/sass/script/unary_operation.rb +21 -0
- data/lib/sass/script/variable.rb +20 -0
- data/lib/sass/script.rb +38 -0
- data/lib/sass/tree/attr_node.rb +64 -0
- data/lib/sass/tree/comment_node.rb +30 -0
- data/lib/sass/tree/debug_node.rb +22 -0
- data/lib/sass/tree/directive_node.rb +50 -0
- data/lib/sass/tree/file_node.rb +27 -0
- data/lib/sass/tree/for_node.rb +29 -0
- data/lib/sass/tree/if_node.rb +27 -0
- data/lib/sass/tree/mixin_def_node.rb +18 -0
- data/lib/sass/tree/mixin_node.rb +35 -0
- data/lib/sass/tree/node.rb +99 -0
- data/lib/sass/tree/rule_node.rb +161 -0
- data/lib/sass/tree/variable_node.rb +24 -0
- data/lib/sass/tree/while_node.rb +21 -0
- data/lib/sass.rb +1062 -0
- data/rails/init.rb +1 -0
- data/test/benchmark.rb +99 -0
- data/test/haml/engine_test.rb +795 -0
- data/test/haml/helper_test.rb +228 -0
- data/test/haml/html2haml_test.rb +108 -0
- data/test/haml/markaby/standard.mab +52 -0
- data/test/haml/mocks/article.rb +6 -0
- data/test/haml/results/content_for_layout.xhtml +15 -0
- data/test/haml/results/eval_suppressed.xhtml +9 -0
- data/test/haml/results/filters.xhtml +62 -0
- data/test/haml/results/helpers.xhtml +93 -0
- data/test/haml/results/helpful.xhtml +10 -0
- data/test/haml/results/just_stuff.xhtml +68 -0
- data/test/haml/results/list.xhtml +12 -0
- data/test/haml/results/nuke_inner_whitespace.xhtml +40 -0
- data/test/haml/results/nuke_outer_whitespace.xhtml +148 -0
- data/test/haml/results/original_engine.xhtml +20 -0
- data/test/haml/results/partial_layout.xhtml +5 -0
- data/test/haml/results/partials.xhtml +21 -0
- data/test/haml/results/render_layout.xhtml +3 -0
- data/test/haml/results/silent_script.xhtml +74 -0
- data/test/haml/results/standard.xhtml +162 -0
- data/test/haml/results/tag_parsing.xhtml +23 -0
- data/test/haml/results/very_basic.xhtml +5 -0
- data/test/haml/results/whitespace_handling.xhtml +89 -0
- data/test/haml/rhtml/_av_partial_1.rhtml +12 -0
- data/test/haml/rhtml/_av_partial_2.rhtml +8 -0
- data/test/haml/rhtml/action_view.rhtml +62 -0
- data/test/haml/rhtml/standard.rhtml +54 -0
- data/test/haml/template_test.rb +204 -0
- data/test/haml/templates/_av_partial_1.haml +9 -0
- data/test/haml/templates/_av_partial_1_ugly.haml +9 -0
- data/test/haml/templates/_av_partial_2.haml +5 -0
- data/test/haml/templates/_av_partial_2_ugly.haml +5 -0
- data/test/haml/templates/_layout.erb +3 -0
- data/test/haml/templates/_layout_for_partial.haml +3 -0
- data/test/haml/templates/_partial.haml +8 -0
- data/test/haml/templates/_text_area.haml +3 -0
- data/test/haml/templates/action_view.haml +47 -0
- data/test/haml/templates/action_view_ugly.haml +47 -0
- data/test/haml/templates/breakage.haml +8 -0
- data/test/haml/templates/content_for_layout.haml +10 -0
- data/test/haml/templates/eval_suppressed.haml +11 -0
- data/test/haml/templates/filters.haml +66 -0
- data/test/haml/templates/helpers.haml +95 -0
- data/test/haml/templates/helpful.haml +11 -0
- data/test/haml/templates/just_stuff.haml +83 -0
- data/test/haml/templates/list.haml +12 -0
- data/test/haml/templates/nuke_inner_whitespace.haml +32 -0
- data/test/haml/templates/nuke_outer_whitespace.haml +144 -0
- data/test/haml/templates/original_engine.haml +17 -0
- data/test/haml/templates/partial_layout.haml +3 -0
- data/test/haml/templates/partialize.haml +1 -0
- data/test/haml/templates/partials.haml +12 -0
- data/test/haml/templates/render_layout.haml +2 -0
- data/test/haml/templates/silent_script.haml +40 -0
- data/test/haml/templates/standard.haml +42 -0
- data/test/haml/templates/standard_ugly.haml +42 -0
- data/test/haml/templates/tag_parsing.haml +21 -0
- data/test/haml/templates/very_basic.haml +4 -0
- data/test/haml/templates/whitespace_handling.haml +87 -0
- data/test/haml/util_test.rb +87 -0
- data/test/linked_rails.rb +12 -0
- data/test/sass/css2sass_test.rb +193 -0
- data/test/sass/engine_test.rb +709 -0
- data/test/sass/functions_test.rb +109 -0
- data/test/sass/more_results/more1.css +9 -0
- data/test/sass/more_results/more1_with_line_comments.css +26 -0
- data/test/sass/more_results/more_import.css +29 -0
- data/test/sass/more_templates/_more_partial.sass +2 -0
- data/test/sass/more_templates/more1.sass +23 -0
- data/test/sass/more_templates/more_import.sass +11 -0
- data/test/sass/plugin_test.rb +213 -0
- data/test/sass/results/alt.css +4 -0
- data/test/sass/results/basic.css +9 -0
- data/test/sass/results/compact.css +5 -0
- data/test/sass/results/complex.css +87 -0
- data/test/sass/results/compressed.css +1 -0
- data/test/sass/results/expanded.css +19 -0
- data/test/sass/results/import.css +29 -0
- data/test/sass/results/line_numbers.css +49 -0
- data/test/sass/results/mixins.css +95 -0
- data/test/sass/results/multiline.css +24 -0
- data/test/sass/results/nested.css +22 -0
- data/test/sass/results/parent_ref.css +13 -0
- data/test/sass/results/script.css +16 -0
- data/test/sass/results/subdir/nested_subdir/nested_subdir.css +1 -0
- data/test/sass/results/subdir/subdir.css +3 -0
- data/test/sass/results/units.css +11 -0
- data/test/sass/script_test.rb +250 -0
- data/test/sass/templates/_partial.sass +2 -0
- data/test/sass/templates/alt.sass +16 -0
- data/test/sass/templates/basic.sass +23 -0
- data/test/sass/templates/bork.sass +2 -0
- data/test/sass/templates/bork2.sass +2 -0
- data/test/sass/templates/compact.sass +17 -0
- data/test/sass/templates/complex.sass +309 -0
- data/test/sass/templates/compressed.sass +15 -0
- data/test/sass/templates/expanded.sass +17 -0
- data/test/sass/templates/import.sass +11 -0
- data/test/sass/templates/importee.sass +19 -0
- data/test/sass/templates/line_numbers.sass +13 -0
- data/test/sass/templates/mixins.sass +76 -0
- data/test/sass/templates/multiline.sass +20 -0
- data/test/sass/templates/nested.sass +25 -0
- data/test/sass/templates/parent_ref.sass +25 -0
- data/test/sass/templates/script.sass +101 -0
- data/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +2 -0
- data/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +3 -0
- data/test/sass/templates/subdir/subdir.sass +6 -0
- data/test/sass/templates/units.sass +11 -0
- data/test/test_helper.rb +21 -0
- metadata +278 -0
data/Rakefile
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
require 'rake'
|
|
3
|
+
|
|
4
|
+
# ----- Benchmarking -----
|
|
5
|
+
|
|
6
|
+
desc <<END
|
|
7
|
+
Benchmark haml against ERb.
|
|
8
|
+
TIMES=n sets the number of runs. Defaults to 1000.
|
|
9
|
+
END
|
|
10
|
+
task :benchmark do
|
|
11
|
+
sh "ruby test/benchmark.rb #{ENV['TIMES']}"
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# ----- Default: Testing ------
|
|
15
|
+
|
|
16
|
+
if ENV["RUN_CODE_RUN"] == "true"
|
|
17
|
+
task :default => :"test:rails_compatibility"
|
|
18
|
+
else
|
|
19
|
+
task :default => :test
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
require 'rake/testtask'
|
|
23
|
+
|
|
24
|
+
Rake::TestTask.new do |t|
|
|
25
|
+
t.libs << 'lib'
|
|
26
|
+
test_files = FileList['test/**/*_test.rb']
|
|
27
|
+
test_files.exclude('test/rails/*')
|
|
28
|
+
t.test_files = test_files
|
|
29
|
+
t.verbose = true
|
|
30
|
+
end
|
|
31
|
+
Rake::Task[:test].send(:add_comment, <<END)
|
|
32
|
+
To run with an alternate version of Rails, make test/rails a symlink to that version.
|
|
33
|
+
END
|
|
34
|
+
|
|
35
|
+
# ----- Packaging -----
|
|
36
|
+
|
|
37
|
+
require 'rake/gempackagetask'
|
|
38
|
+
load 'haml.gemspec'
|
|
39
|
+
|
|
40
|
+
Rake::GemPackageTask.new(HAML_GEMSPEC) do |pkg|
|
|
41
|
+
if Rake.application.top_level_tasks.include?('release')
|
|
42
|
+
pkg.need_tar_gz = true
|
|
43
|
+
pkg.need_tar_bz2 = true
|
|
44
|
+
pkg.need_zip = true
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
task :revision_file do
|
|
49
|
+
require 'lib/haml'
|
|
50
|
+
|
|
51
|
+
release = Rake.application.top_level_tasks.include?('release') || File.exist?('EDGE_GEM_VERSION')
|
|
52
|
+
if Haml.version[:rev] && !release
|
|
53
|
+
File.open('REVISION', 'w') { |f| f.puts Haml.version[:rev] }
|
|
54
|
+
elsif release
|
|
55
|
+
File.open('REVISION', 'w') { |f| f.puts "(release)" }
|
|
56
|
+
else
|
|
57
|
+
File.open('REVISION', 'w') { |f| f.puts "(unknown)" }
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
Rake::Task[:package].prerequisites.insert(0, :revision_file)
|
|
61
|
+
|
|
62
|
+
# We also need to get rid of this file after packaging.
|
|
63
|
+
at_exit { File.delete('REVISION') rescue nil }
|
|
64
|
+
|
|
65
|
+
desc "Install Haml as a gem."
|
|
66
|
+
task :install => [:package] do
|
|
67
|
+
sudo = RUBY_PLATFORM =~ /win32/ ? '' : 'sudo'
|
|
68
|
+
gem = RUBY_PLATFORM =~ /java/ ? 'jgem' : 'gem'
|
|
69
|
+
sh %{#{sudo} #{gem} install --no-ri pkg/haml-#{File.read('VERSION').strip}}
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
desc "Release a new Haml package to Rubyforge. Requires the NAME and VERSION flags."
|
|
73
|
+
task :release => [:package] do
|
|
74
|
+
name, version = ENV['NAME'], ENV['VERSION']
|
|
75
|
+
raise "Must supply NAME and VERSION for release task." unless name && version
|
|
76
|
+
sh %{rubyforge login}
|
|
77
|
+
sh %{rubyforge add_release haml haml "#{name} (v#{version})" pkg/haml-#{version}.gem}
|
|
78
|
+
sh %{rubyforge add_file haml haml "#{name} (v#{version})" pkg/haml-#{version}.tar.gz}
|
|
79
|
+
sh %{rubyforge add_file haml haml "#{name} (v#{version})" pkg/haml-#{version}.tar.bz2}
|
|
80
|
+
sh %{rubyforge add_file haml haml "#{name} (v#{version})" pkg/haml-#{version}.zip}
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
task :release_edge do
|
|
84
|
+
sh %{git checkout edge-gem}
|
|
85
|
+
sh %{git fetch origin}
|
|
86
|
+
sh %{git merge origin/edge-gem}
|
|
87
|
+
sh %{git merge origin/master}
|
|
88
|
+
|
|
89
|
+
# Get the current master branch version
|
|
90
|
+
version = File.read('VERSION').strip.split('.').map {|n| n.to_i}
|
|
91
|
+
unless version[1] % 2 == 1 && version[2] == 0
|
|
92
|
+
raise "#{version.join('.')} is not a development version"
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# Bump the edge gem version
|
|
96
|
+
edge_version = File.read('EDGE_GEM_VERSION').strip.split('.').map {|n| n.to_i}
|
|
97
|
+
if edge_version[0..1] != version[0..1]
|
|
98
|
+
# A new master branch version was released, reset the edge gem version
|
|
99
|
+
edge_version[0..1] = version[0..1]
|
|
100
|
+
edge_version[2] = 0
|
|
101
|
+
else
|
|
102
|
+
# Just bump the teeny version
|
|
103
|
+
edge_version[2] += 1
|
|
104
|
+
end
|
|
105
|
+
edge_version = edge_version.join('.')
|
|
106
|
+
File.open('EDGE_GEM_VERSION', 'w') {|f| f.puts(edge_version)}
|
|
107
|
+
sh %{git commit -m "Bump edge gem version." EDGE_GEM_VERSION}
|
|
108
|
+
sh %{git push origin edge-gem}
|
|
109
|
+
|
|
110
|
+
# Package the edge gem with the proper version
|
|
111
|
+
File.open('VERSION', 'w') {|f| f.puts(edge_version)}
|
|
112
|
+
sh %{rake package}
|
|
113
|
+
sh %{git checkout VERSION}
|
|
114
|
+
|
|
115
|
+
sh %{rubyforge login}
|
|
116
|
+
sh %{rubyforge add_release haml haml-edge "Bleeding Edge (v#{edge_version})" pkg/haml-edge-#{edge_version}.gem}
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
task :watch_for_edge_update do
|
|
120
|
+
sh %{ruby extra/edge_gem_watch.rb}
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# ----- Documentation -----
|
|
124
|
+
|
|
125
|
+
begin
|
|
126
|
+
require 'hanna/rdoctask'
|
|
127
|
+
rescue LoadError
|
|
128
|
+
require 'rake/rdoctask'
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
Rake::RDocTask.new do |rdoc|
|
|
132
|
+
rdoc.title = 'Haml/Sass'
|
|
133
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
|
134
|
+
rdoc.rdoc_files.include(*FileList.new('*') do |list|
|
|
135
|
+
list.exclude(/(^|[^.a-z])[a-z]+/)
|
|
136
|
+
list.exclude('TODO')
|
|
137
|
+
end.to_a)
|
|
138
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
139
|
+
rdoc.rdoc_files.exclude('TODO')
|
|
140
|
+
rdoc.rdoc_files.exclude('lib/haml/buffer.rb')
|
|
141
|
+
rdoc.rdoc_files.exclude('lib/sass/tree/*')
|
|
142
|
+
rdoc.rdoc_dir = 'rdoc'
|
|
143
|
+
rdoc.main = 'README.rdoc'
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
# ----- Coverage -----
|
|
147
|
+
|
|
148
|
+
begin
|
|
149
|
+
require 'rcov/rcovtask'
|
|
150
|
+
|
|
151
|
+
Rcov::RcovTask.new do |t|
|
|
152
|
+
t.test_files = FileList['test/**/*_test.rb']
|
|
153
|
+
t.rcov_opts << '-x' << '"^\/"'
|
|
154
|
+
if ENV['NON_NATIVE']
|
|
155
|
+
t.rcov_opts << "--no-rcovrt"
|
|
156
|
+
end
|
|
157
|
+
t.verbose = true
|
|
158
|
+
end
|
|
159
|
+
rescue LoadError; end
|
|
160
|
+
|
|
161
|
+
# ----- Profiling -----
|
|
162
|
+
|
|
163
|
+
begin
|
|
164
|
+
require 'ruby-prof'
|
|
165
|
+
|
|
166
|
+
desc <<END
|
|
167
|
+
Run a profile of haml.
|
|
168
|
+
ENGINE=str sets the engine to be profiled. Defaults to Haml.
|
|
169
|
+
TIMES=n sets the number of runs. Defaults to 1000.
|
|
170
|
+
FILE=str sets the file to profile.
|
|
171
|
+
Defaults to 'standard' for Haml and 'complex' for Sass.
|
|
172
|
+
OUTPUT=str sets the ruby-prof output format.
|
|
173
|
+
Can be Flat, CallInfo, or Graph. Defaults to Flat. Defaults to Flat.
|
|
174
|
+
END
|
|
175
|
+
task :profile do
|
|
176
|
+
engine = (ENV['ENGINE'] || 'haml').downcase
|
|
177
|
+
times = (ENV['TIMES'] || '1000').to_i
|
|
178
|
+
file = ENV['FILE']
|
|
179
|
+
|
|
180
|
+
if engine == 'sass'
|
|
181
|
+
require 'lib/sass'
|
|
182
|
+
|
|
183
|
+
file = File.read("#{File.dirname(__FILE__)}/test/sass/templates/#{file || 'complex'}.sass")
|
|
184
|
+
result = RubyProf.profile { times.times { Sass::Engine.new(file).render } }
|
|
185
|
+
else
|
|
186
|
+
require 'lib/haml'
|
|
187
|
+
|
|
188
|
+
file = File.read("#{File.dirname(__FILE__)}/test/haml/templates/#{file || 'standard'}.haml")
|
|
189
|
+
obj = Object.new
|
|
190
|
+
Haml::Engine.new(file).def_method(obj, :render)
|
|
191
|
+
result = RubyProf.profile { times.times { obj.render } }
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
RubyProf.const_get("#{(ENV['OUTPUT'] || 'Flat').capitalize}Printer").new(result).print
|
|
195
|
+
end
|
|
196
|
+
rescue LoadError; end
|
|
197
|
+
|
|
198
|
+
# ----- Testing Multiple Rails Versions -----
|
|
199
|
+
|
|
200
|
+
rails_versions = [
|
|
201
|
+
"v2.3.0",
|
|
202
|
+
"v2.2.2",
|
|
203
|
+
"v2.1.2",
|
|
204
|
+
"v2.0.5"
|
|
205
|
+
]
|
|
206
|
+
|
|
207
|
+
namespace :test do
|
|
208
|
+
desc "Test all supported versions of rails. This takes a while."
|
|
209
|
+
task :rails_compatibility do
|
|
210
|
+
`rm -rf test/rails`
|
|
211
|
+
puts "Checking out rails. Please wait."
|
|
212
|
+
`git clone git://github.com/rails/rails.git test/rails` rescue nil
|
|
213
|
+
begin
|
|
214
|
+
rails_versions.each do |version|
|
|
215
|
+
Dir.chdir "test/rails" do
|
|
216
|
+
`git checkout #{version}`
|
|
217
|
+
end
|
|
218
|
+
puts "Testing Rails #{version}"
|
|
219
|
+
Rake::Task['test'].reenable
|
|
220
|
+
Rake::Task['test'].execute
|
|
221
|
+
end
|
|
222
|
+
ensure
|
|
223
|
+
`rm -rf test/rails`
|
|
224
|
+
end
|
|
225
|
+
end
|
|
226
|
+
end
|
data/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.1.1
|
data/bin/css2sass
ADDED
data/bin/haml
ADDED
data/bin/html2haml
ADDED
data/bin/sass
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
require 'sinatra'
|
|
3
|
+
require 'json'
|
|
4
|
+
set :port, 3123
|
|
5
|
+
set :environment, :production
|
|
6
|
+
Dir.chdir(File.dirname(__FILE__) + "/..")
|
|
7
|
+
|
|
8
|
+
post "/" do
|
|
9
|
+
payload = JSON.parse(params["payload"])
|
|
10
|
+
|
|
11
|
+
break unless payload["ref"] == "refs/heads/master"
|
|
12
|
+
system("rake release_edge &> edge-gem-output.log")
|
|
13
|
+
end
|