markaby 0.7.0 → 0.8.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/.gitignore +19 -3
- data/CHANGELOG.rdoc +4 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +22 -0
- data/Markaby.gemspec +20 -118
- data/README.rdoc +20 -96
- data/Rakefile +20 -50
- data/VERSION +1 -1
- data/lib/markaby/builder.rb +25 -4
- data/lib/markaby/builder_tags.rb +22 -2
- data/lib/markaby/kernel_method.rb +1 -0
- data/lib/markaby/tags.rb +97 -1
- data/lib/markaby/version.rb +3 -0
- data/lib/markaby.rb +2 -6
- data/spec/markaby/css_proxy_spec.rb +12 -17
- data/spec/markaby/html5_spec.rb +100 -0
- data/spec/markaby/markaby_spec.rb +10 -69
- data/spec/markaby/markaby_test_unit_spec.rb +251 -0
- data/spec/spec_helper.rb +4 -6
- metadata +85 -124
- data/garlic.rb +0 -29
- data/init.rb +0 -6
- data/lib/markaby/rails/current.rb +0 -85
- data/lib/markaby/rails/deprecated.rb +0 -124
- data/lib/markaby/rails/rails_builder.rb +0 -74
- data/lib/markaby/rails.rb +0 -75
- data/lib/markaby/sinatra.rb +0 -18
- data/lib/markaby/tilt.rb +0 -42
- data/spec/markaby/markaby_other_static.mab +0 -1
- data/spec/markaby/rails/spec_helper.rb +0 -29
- data/spec/markaby/rails/views/layouts/layout.mab +0 -11
- data/spec/markaby/rails/views/markaby/_a_partial.mab +0 -3
- data/spec/markaby/rails/views/markaby/_partial_child_with_locals.mab +0 -1
- data/spec/markaby/rails/views/markaby/access_to_helpers.mab +0 -1
- data/spec/markaby/rails/views/markaby/broken.mab +0 -7
- data/spec/markaby/rails/views/markaby/commented_out_template.mab +0 -1
- data/spec/markaby/rails/views/markaby/correct_template_values.mab +0 -5
- data/spec/markaby/rails/views/markaby/double_output.mab +0 -8
- data/spec/markaby/rails/views/markaby/form_for.mab +0 -2
- data/spec/markaby/rails/views/markaby/form_for_with_fields.mab +0 -3
- data/spec/markaby/rails/views/markaby/form_for_with_multiple_fields.mab +0 -4
- data/spec/markaby/rails/views/markaby/no_values_passed.mab +0 -3
- data/spec/markaby/rails/views/markaby/partial_parent.mab +0 -1
- data/spec/markaby/rails/views/markaby/partial_parent_with_locals.mab +0 -7
- data/spec/markaby/rails/views/markaby/render_erb_without_explicit_render_call.erb +0 -1
- data/spec/markaby/rails/views/markaby/render_explicit_but_empty_markaby_layout.mab +0 -0
- data/spec/markaby/rails/views/markaby/render_mab_without_explicit_render_call.mab +0 -3
- data/spec/markaby/rails/views/markaby/render_with_ivar.mab +0 -3
- data/spec/markaby/rails/views/markaby/renders_erb.rhtml +0 -1
- data/spec/markaby/rails/views/markaby/routes.mab +0 -1
- data/spec/markaby/rails/views/markaby/yielding.mab +0 -3
- data/spec/markaby/rails/views/markaby/yielding_content_for_with_block_helper.mab +0 -5
- data/spec/markaby/rails/views/markaby/yielding_two.mab +0 -7
- data/spec/markaby/rails/views/markaby/yielding_with_content_for.mab +0 -3
- data/spec/markaby/rails_spec.rb +0 -361
- data/spec/markaby/rails_version_spec.rb +0 -37
- data/spec/markaby/sinatra/app.rb +0 -49
- data/spec/markaby/sinatra/sinatra_spec.rb +0 -64
- data/spec/markaby/sinatra/views/helpers.mab +0 -1
- data/spec/markaby/sinatra/views/layout.mab +0 -7
- data/spec/markaby/sinatra/views/markaby_template.mab +0 -0
- data/spec/markaby/sinatra/views/scope_instance_variables.mab +0 -3
- data/spec/markaby/sinatra/views/simple_html.mab +0 -4
- data/spec/markaby/sinatra/views/variables.mab +0 -3
- data/spec/markaby/tilt/erb.erb +0 -1
- data/spec/markaby/tilt/locals.mab +0 -1
- data/spec/markaby/tilt/markaby.mab +0 -1
- data/spec/markaby/tilt/markaby_other_static.mab +0 -1
- data/spec/markaby/tilt/render_twice.mab +0 -1
- data/spec/markaby/tilt/scope.mab +0 -1
- data/spec/markaby/tilt/yielding.mab +0 -2
- data/spec/markaby/tilt_spec.rb +0 -75
- /data/{spec/spec.opts → .rspec} +0 -0
data/.gitignore
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
|
-
doc
|
|
2
|
-
coverage
|
|
3
1
|
.garlic
|
|
4
2
|
pkg
|
|
5
|
-
_site
|
|
3
|
+
_site
|
|
4
|
+
|
|
5
|
+
*.gem
|
|
6
|
+
*.rbc
|
|
7
|
+
.bundle
|
|
8
|
+
.config
|
|
9
|
+
.yardoc
|
|
10
|
+
Gemfile.lock
|
|
11
|
+
InstalledFiles
|
|
12
|
+
_yardoc
|
|
13
|
+
coverage
|
|
14
|
+
doc/
|
|
15
|
+
lib/bundler/man
|
|
16
|
+
pkg
|
|
17
|
+
rdoc
|
|
18
|
+
spec/reports
|
|
19
|
+
test/tmp
|
|
20
|
+
test/version_tmp
|
|
21
|
+
tmp
|
data/CHANGELOG.rdoc
CHANGED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
GEM
|
|
2
|
+
remote: https://rubygems.org/
|
|
3
|
+
specs:
|
|
4
|
+
builder (3.2.2)
|
|
5
|
+
diff-lcs (1.2.5)
|
|
6
|
+
rake (10.1.0)
|
|
7
|
+
rspec (2.14.1)
|
|
8
|
+
rspec-core (~> 2.14.0)
|
|
9
|
+
rspec-expectations (~> 2.14.0)
|
|
10
|
+
rspec-mocks (~> 2.14.0)
|
|
11
|
+
rspec-core (2.14.7)
|
|
12
|
+
rspec-expectations (2.14.4)
|
|
13
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
|
14
|
+
rspec-mocks (2.14.4)
|
|
15
|
+
|
|
16
|
+
PLATFORMS
|
|
17
|
+
ruby
|
|
18
|
+
|
|
19
|
+
DEPENDENCIES
|
|
20
|
+
builder
|
|
21
|
+
rake
|
|
22
|
+
rspec
|
data/Markaby.gemspec
CHANGED
|
@@ -1,122 +1,24 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'markaby/version'
|
|
5
5
|
|
|
6
|
-
Gem::Specification.new do |
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = "markaby"
|
|
8
|
+
spec.version = Markaby::VERSION
|
|
9
|
+
spec.authors = ["Scott Taylor", "judofyr", "_why"]
|
|
10
|
+
spec.email = ["scott@railsnewbie.com"]
|
|
11
|
+
spec.description = "_why's markaby templating language"
|
|
12
|
+
spec.summary = "A pure ruby based, html markup language"
|
|
13
|
+
spec.homepage = ""
|
|
14
|
+
spec.license = "MIT"
|
|
9
15
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
s.email = %q{scott@railsnewbie.com}
|
|
15
|
-
s.extra_rdoc_files = [
|
|
16
|
-
"README.rdoc"
|
|
17
|
-
]
|
|
18
|
-
s.files = [
|
|
19
|
-
".gitignore",
|
|
20
|
-
"CHANGELOG.rdoc",
|
|
21
|
-
"Markaby.gemspec",
|
|
22
|
-
"README.rdoc",
|
|
23
|
-
"Rakefile",
|
|
24
|
-
"VERSION",
|
|
25
|
-
"garlic.rb",
|
|
26
|
-
"init.rb",
|
|
27
|
-
"lib/markaby.rb",
|
|
28
|
-
"lib/markaby/builder.rb",
|
|
29
|
-
"lib/markaby/builder_tags.rb",
|
|
30
|
-
"lib/markaby/cssproxy.rb",
|
|
31
|
-
"lib/markaby/kernel_method.rb",
|
|
32
|
-
"lib/markaby/rails.rb",
|
|
33
|
-
"lib/markaby/rails/current.rb",
|
|
34
|
-
"lib/markaby/rails/deprecated.rb",
|
|
35
|
-
"lib/markaby/rails/rails_builder.rb",
|
|
36
|
-
"lib/markaby/sinatra.rb",
|
|
37
|
-
"lib/markaby/tags.rb",
|
|
38
|
-
"lib/markaby/tilt.rb",
|
|
39
|
-
"spec/markaby/builder_spec.rb",
|
|
40
|
-
"spec/markaby/css_proxy_spec.rb",
|
|
41
|
-
"spec/markaby/fragment_spec.rb",
|
|
42
|
-
"spec/markaby/markaby_other_static.mab",
|
|
43
|
-
"spec/markaby/markaby_spec.rb",
|
|
44
|
-
"spec/markaby/rails/spec_helper.rb",
|
|
45
|
-
"spec/markaby/rails/views/layouts/layout.mab",
|
|
46
|
-
"spec/markaby/rails/views/markaby/_a_partial.mab",
|
|
47
|
-
"spec/markaby/rails/views/markaby/_partial_child_with_locals.mab",
|
|
48
|
-
"spec/markaby/rails/views/markaby/access_to_helpers.mab",
|
|
49
|
-
"spec/markaby/rails/views/markaby/broken.mab",
|
|
50
|
-
"spec/markaby/rails/views/markaby/commented_out_template.mab",
|
|
51
|
-
"spec/markaby/rails/views/markaby/correct_template_values.mab",
|
|
52
|
-
"spec/markaby/rails/views/markaby/double_output.mab",
|
|
53
|
-
"spec/markaby/rails/views/markaby/form_for.mab",
|
|
54
|
-
"spec/markaby/rails/views/markaby/form_for_with_fields.mab",
|
|
55
|
-
"spec/markaby/rails/views/markaby/form_for_with_multiple_fields.mab",
|
|
56
|
-
"spec/markaby/rails/views/markaby/no_values_passed.mab",
|
|
57
|
-
"spec/markaby/rails/views/markaby/partial_parent.mab",
|
|
58
|
-
"spec/markaby/rails/views/markaby/partial_parent_with_locals.mab",
|
|
59
|
-
"spec/markaby/rails/views/markaby/render_erb_without_explicit_render_call.erb",
|
|
60
|
-
"spec/markaby/rails/views/markaby/render_explicit_but_empty_markaby_layout.mab",
|
|
61
|
-
"spec/markaby/rails/views/markaby/render_mab_without_explicit_render_call.mab",
|
|
62
|
-
"spec/markaby/rails/views/markaby/render_with_ivar.mab",
|
|
63
|
-
"spec/markaby/rails/views/markaby/renders_erb.rhtml",
|
|
64
|
-
"spec/markaby/rails/views/markaby/routes.mab",
|
|
65
|
-
"spec/markaby/rails/views/markaby/yielding.mab",
|
|
66
|
-
"spec/markaby/rails/views/markaby/yielding_content_for_with_block_helper.mab",
|
|
67
|
-
"spec/markaby/rails/views/markaby/yielding_two.mab",
|
|
68
|
-
"spec/markaby/rails/views/markaby/yielding_with_content_for.mab",
|
|
69
|
-
"spec/markaby/rails_spec.rb",
|
|
70
|
-
"spec/markaby/rails_version_spec.rb",
|
|
71
|
-
"spec/markaby/sinatra/app.rb",
|
|
72
|
-
"spec/markaby/sinatra/sinatra_spec.rb",
|
|
73
|
-
"spec/markaby/sinatra/views/helpers.mab",
|
|
74
|
-
"spec/markaby/sinatra/views/layout.mab",
|
|
75
|
-
"spec/markaby/sinatra/views/markaby_template.mab",
|
|
76
|
-
"spec/markaby/sinatra/views/scope_instance_variables.mab",
|
|
77
|
-
"spec/markaby/sinatra/views/simple_html.mab",
|
|
78
|
-
"spec/markaby/sinatra/views/variables.mab",
|
|
79
|
-
"spec/markaby/tilt/erb.erb",
|
|
80
|
-
"spec/markaby/tilt/locals.mab",
|
|
81
|
-
"spec/markaby/tilt/markaby.mab",
|
|
82
|
-
"spec/markaby/tilt/markaby_other_static.mab",
|
|
83
|
-
"spec/markaby/tilt/render_twice.mab",
|
|
84
|
-
"spec/markaby/tilt/scope.mab",
|
|
85
|
-
"spec/markaby/tilt/yielding.mab",
|
|
86
|
-
"spec/markaby/tilt_spec.rb",
|
|
87
|
-
"spec/spec.opts",
|
|
88
|
-
"spec/spec_helper.rb"
|
|
89
|
-
]
|
|
90
|
-
s.homepage = %q{http://markaby.github.com/markaby/}
|
|
91
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
|
92
|
-
s.require_paths = ["lib"]
|
|
93
|
-
s.rubygems_version = %q{1.3.7}
|
|
94
|
-
s.summary = %q{Markup as Ruby, write HTML in your native Ruby tongue}
|
|
95
|
-
s.test_files = [
|
|
96
|
-
"spec/markaby/builder_spec.rb",
|
|
97
|
-
"spec/markaby/css_proxy_spec.rb",
|
|
98
|
-
"spec/markaby/fragment_spec.rb",
|
|
99
|
-
"spec/markaby/markaby_spec.rb",
|
|
100
|
-
"spec/markaby/rails/spec_helper.rb",
|
|
101
|
-
"spec/markaby/rails_spec.rb",
|
|
102
|
-
"spec/markaby/rails_version_spec.rb",
|
|
103
|
-
"spec/markaby/sinatra/app.rb",
|
|
104
|
-
"spec/markaby/sinatra/sinatra_spec.rb",
|
|
105
|
-
"spec/markaby/tilt_spec.rb",
|
|
106
|
-
"spec/spec_helper.rb"
|
|
107
|
-
]
|
|
16
|
+
spec.files = `git ls-files`.split($/)
|
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
19
|
+
spec.require_paths = ["lib"]
|
|
108
20
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
114
|
-
s.add_runtime_dependency(%q<builder>, [">= 2.0.0"])
|
|
115
|
-
else
|
|
116
|
-
s.add_dependency(%q<builder>, [">= 2.0.0"])
|
|
117
|
-
end
|
|
118
|
-
else
|
|
119
|
-
s.add_dependency(%q<builder>, [">= 2.0.0"])
|
|
120
|
-
end
|
|
21
|
+
spec.add_dependency "builder"
|
|
22
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
|
23
|
+
spec.add_development_dependency "rake"
|
|
121
24
|
end
|
|
122
|
-
|
data/README.rdoc
CHANGED
|
@@ -5,75 +5,34 @@ It is an alternative to ERb which weaves the two languages together.
|
|
|
5
5
|
Also a replacement for templating languages which use primitive languages
|
|
6
6
|
that blend with HTML.
|
|
7
7
|
|
|
8
|
-
== Using Markaby as a Rails plugin / gem
|
|
9
|
-
|
|
10
|
-
Write Rails templates in pure Ruby. Example layout:
|
|
11
|
-
|
|
12
|
-
html do
|
|
13
|
-
head do
|
|
14
|
-
title 'Products: ' + action_name
|
|
15
|
-
stylesheet_link_tag 'scaffold'
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
body do
|
|
19
|
-
p flash[:notice], :style => "color: green"
|
|
20
|
-
|
|
21
|
-
div.signup! do
|
|
22
|
-
form_for @user do |f|
|
|
23
|
-
f.text_field :email
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
yield
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
Markaby templates end in .mab
|
|
32
|
-
|
|
33
|
-
Markaby supports many versions of rails, including the latest rails:
|
|
34
|
-
|
|
35
|
-
1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6, 2.2.0,
|
|
36
|
-
2.2.1, 2.2.2, 2.2.3, 2.3.1, 2.3.2, 2.3.2.1,
|
|
37
|
-
2.3.3, 2.3.3.1, 2.3.4, 2.3.5, 2.3.6, 2.3.7,
|
|
38
|
-
2.3.8
|
|
39
|
-
|
|
40
|
-
Rails 3.0 support is planned.
|
|
41
|
-
|
|
42
|
-
=== Install it as a plugin
|
|
43
|
-
|
|
44
|
-
script/plugin install git://github.com/markaby/markaby.git
|
|
45
|
-
|
|
46
8
|
=== Install it as a gem
|
|
47
9
|
|
|
48
10
|
gem install markaby
|
|
49
11
|
|
|
50
|
-
If you are loading it in a different way (from a gem), make sure
|
|
51
|
-
it's on the $LOAD_PATH, and add the following in
|
|
52
|
-
an initializer (config/initializers/markaby.rb will work):
|
|
53
|
-
|
|
54
|
-
require 'markaby'
|
|
55
|
-
require 'markaby/rails'
|
|
56
|
-
|
|
57
|
-
Markaby::Rails.load
|
|
58
|
-
|
|
59
|
-
Or, you could try config.gem, but that's now known as a bad idea.
|
|
60
|
-
|
|
61
|
-
|
|
62
12
|
== Using Markaby with Sinatra (1.0+)
|
|
63
13
|
|
|
64
|
-
require 'markaby/sinatra'
|
|
65
|
-
|
|
66
14
|
get '/foo' do
|
|
67
15
|
mab :my_template # my_template.mab in the sinatra view path
|
|
68
16
|
end
|
|
69
17
|
|
|
70
18
|
If you are looking for sinatra support pre 0.7, see http://github.com/sbfaulkner/sinatra-markaby
|
|
71
19
|
|
|
20
|
+
A note on Tilt - using markaby with html5 doesn't quite yet work properly. If you'd like to render a template with html 5, call this at the start of a .mab template:
|
|
21
|
+
|
|
22
|
+
enable_html5!
|
|
23
|
+
|
|
24
|
+
Or enable html 5 globally:
|
|
25
|
+
|
|
26
|
+
Markaby::Builder.class_eval do
|
|
27
|
+
@@options = Markaby::Builder::HTML5_OPTIONS
|
|
28
|
+
end
|
|
72
29
|
|
|
73
30
|
== Using Markaby with other frameworks
|
|
74
31
|
|
|
75
|
-
|
|
76
|
-
Tilt
|
|
32
|
+
Tilt has a Markaby module, so in principle, any web framework that supports
|
|
33
|
+
Tilt will also support Markaby. See the appropriate tilt documentation:
|
|
34
|
+
|
|
35
|
+
http://github.com/rtomayko/tilt
|
|
77
36
|
|
|
78
37
|
|
|
79
38
|
== Using Markaby as a Ruby class
|
|
@@ -172,15 +131,15 @@ Which results in:
|
|
|
172
131
|
== 3. Validate Your XHTML 1.0 Output
|
|
173
132
|
|
|
174
133
|
If you'd like Markaby to help you assemble valid XHTML documents,
|
|
175
|
-
you can use the <tt>xhtml_transitional</tt> or <tt>xhtml_strict</tt>
|
|
134
|
+
you can use the <tt>html5</tt>, <tt>xhtml_transitional</tt> or <tt>xhtml_strict</tt>
|
|
176
135
|
methods in place of the normal <tt>html</tt> tag.
|
|
177
136
|
|
|
178
|
-
|
|
137
|
+
html5 do
|
|
179
138
|
head { ... }
|
|
180
139
|
body { ... }
|
|
181
140
|
end
|
|
182
141
|
|
|
183
|
-
This will add the XML instruction and the doctype tag to your document.
|
|
142
|
+
This will add the XML instruction and the doctype tag to your document (for xhtml_strict and xhtml_transitional).
|
|
184
143
|
Also, a character set meta tag will be placed inside your <tt>head</tt>
|
|
185
144
|
tag.
|
|
186
145
|
|
|
@@ -261,45 +220,6 @@ won't work with this technique.
|
|
|
261
220
|
end
|
|
262
221
|
end
|
|
263
222
|
|
|
264
|
-
= A Note About Rails Helpers
|
|
265
|
-
|
|
266
|
-
When used in Rails templates, the Rails helper object is passed into
|
|
267
|
-
Markaby::Builder. When you call helper methods inside Markaby, the output
|
|
268
|
-
from those methods will be output to the stream. This is incredibly
|
|
269
|
-
handy, since most Rails helpers output HTML tags.
|
|
270
|
-
|
|
271
|
-
head do
|
|
272
|
-
javascript_include_tag 'prototype'
|
|
273
|
-
autodiscovery_link_tag
|
|
274
|
-
end
|
|
275
|
-
|
|
276
|
-
However, some methods are designed to give back a String which you can use
|
|
277
|
-
elsewhere. That's okay! Every method returns a Fragment object, which can
|
|
278
|
-
be used as a string.
|
|
279
|
-
|
|
280
|
-
p { "Total is: #{number_to_human_size @file_bytes}" }
|
|
281
|
-
|
|
282
|
-
Also see the Quick Tour above, specifically the stuff about auto-stringification.
|
|
283
|
-
|
|
284
|
-
If for any reason you have trouble with fragments, you can just
|
|
285
|
-
call the <tt>@helpers</tt> object with the method and you'll get
|
|
286
|
-
the String back and nothing will be output.
|
|
287
|
-
|
|
288
|
-
p { "Total is: #{@helpers.number_to_human_size @file_bytes}" }
|
|
289
|
-
|
|
290
|
-
Conversely, you may call instance variables from your controller by using
|
|
291
|
-
a method and its value will be returned, nothing will be output.
|
|
292
|
-
|
|
293
|
-
# Inside imaginary ProductController
|
|
294
|
-
def list
|
|
295
|
-
@products = Product.find :all
|
|
296
|
-
end
|
|
297
|
-
|
|
298
|
-
# Inside app/views/product/list.mab
|
|
299
|
-
products.each do |product|
|
|
300
|
-
p product.title
|
|
301
|
-
end
|
|
302
|
-
|
|
303
223
|
= Credits
|
|
304
224
|
|
|
305
225
|
Markaby is a work of immense hope by Tim Fletcher and why the lucky stiff.
|
|
@@ -309,3 +229,7 @@ Thankyou for giving it a whirl.
|
|
|
309
229
|
Markaby is inspired by the HTML library within cgi.rb. Hopefully it will
|
|
310
230
|
turn around and take some cues.
|
|
311
231
|
|
|
232
|
+
== Patches from contributors:
|
|
233
|
+
|
|
234
|
+
aredridel (Aria Stewart - aredridel@nbtsc.org)
|
|
235
|
+
- Make exceptions inherit from StandardError (f259c0)
|
data/Rakefile
CHANGED
|
@@ -1,42 +1,12 @@
|
|
|
1
1
|
require 'rake'
|
|
2
|
-
require
|
|
2
|
+
require "bundler/gem_tasks"
|
|
3
|
+
require 'rspec/core/rake_task'
|
|
3
4
|
require 'rake/clean'
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
require 'hanna/rdoctask'
|
|
7
|
-
|
|
8
|
-
Rake::RDocTask.new do |rdoc|
|
|
9
|
-
rdoc.rdoc_dir = 'doc/rdoc'
|
|
10
|
-
rdoc.options << '--line-numbers'
|
|
11
|
-
rdoc.rdoc_files.add(['README.rdoc', 'CHANGELOG.rdoc', 'lib/**/*.rb'])
|
|
12
|
-
end
|
|
13
|
-
rescue LoadError
|
|
14
|
-
puts "Could not load hanna-rdoc. Please install with mislav-hanna package"
|
|
15
|
-
end
|
|
16
|
-
|
|
6
|
+
RSpec::Core::RakeTask.new(:spec)
|
|
17
7
|
task :default => :spec
|
|
18
8
|
|
|
19
|
-
|
|
20
|
-
Spec::Rake::SpecTask.new do |t|
|
|
21
|
-
t.warning = false
|
|
22
|
-
t.spec_opts = ["--color"]
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
begin
|
|
26
|
-
require 'jeweler'
|
|
27
|
-
|
|
28
|
-
Jeweler::Tasks.new do |gemspec|
|
|
29
|
-
gemspec.name = "markaby"
|
|
30
|
-
gemspec.summary = "Markup as Ruby, write HTML in your native Ruby tongue"
|
|
31
|
-
gemspec.description = "Tim Fletcher and _why's ruby driven HTML templating system"
|
|
32
|
-
gemspec.email = "scott@railsnewbie.com"
|
|
33
|
-
gemspec.homepage = "http://markaby.github.com/markaby/"
|
|
34
|
-
gemspec.authors = ["_why", "Tim Fletcher", "John Barton", "spox", "smtlaissezfaire"]
|
|
35
|
-
gemspec.add_dependency 'builder', '>=2.0.0'
|
|
36
|
-
end
|
|
37
|
-
rescue LoadError
|
|
38
|
-
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
|
39
|
-
end
|
|
9
|
+
Bundler::GemHelper.install_tasks
|
|
40
10
|
|
|
41
11
|
desc "List any Markaby specific warnings"
|
|
42
12
|
task :warnings do
|
|
@@ -59,19 +29,19 @@ namespace :gemspec do
|
|
|
59
29
|
end
|
|
60
30
|
end
|
|
61
31
|
|
|
62
|
-
namespace :release do
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
task :release => "release:patch"
|
|
32
|
+
# namespace :release do
|
|
33
|
+
# task :patch => [:spec, "version:bump:patch", :update_gemspec, :rerdoc, :tag_release, :build, :push_tags]
|
|
34
|
+
#
|
|
35
|
+
# task :update_gemspec => ["gemspec:generate", "gemspec:validate", "gemspec:commit"]
|
|
36
|
+
# task :tag_release do
|
|
37
|
+
# require File.dirname(__FILE__) + "/lib/markaby"
|
|
38
|
+
# version = "v#{Markaby::VERSION}"
|
|
39
|
+
# sh "git tag #{version}"
|
|
40
|
+
# end
|
|
41
|
+
#
|
|
42
|
+
# task :push_tags do
|
|
43
|
+
# sh "git push --tags"
|
|
44
|
+
# end
|
|
45
|
+
# end
|
|
46
|
+
#
|
|
47
|
+
# task :release => "release:patch"
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.7.
|
|
1
|
+
0.7.2
|
data/lib/markaby/builder.rb
CHANGED
|
@@ -28,7 +28,7 @@ module Markaby
|
|
|
28
28
|
:indent => 0,
|
|
29
29
|
:output_helpers => true,
|
|
30
30
|
:output_xml_instruction => true,
|
|
31
|
-
:output_meta_tag =>
|
|
31
|
+
:output_meta_tag => 'xhtml',
|
|
32
32
|
:auto_validation => true,
|
|
33
33
|
:tagset => Markaby::XHTMLTransitional,
|
|
34
34
|
:root_attributes => {
|
|
@@ -38,12 +38,26 @@ module Markaby
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
HTML5_OPTIONS = {
|
|
42
|
+
:indent => 0,
|
|
43
|
+
:output_helpers => true,
|
|
44
|
+
:output_xml_instruction => false,
|
|
45
|
+
:output_meta_tag => 'html5',
|
|
46
|
+
:auto_validation => true,
|
|
47
|
+
:tagset => Markaby::HTML5,
|
|
48
|
+
:root_attributes => {}
|
|
49
|
+
}
|
|
50
|
+
|
|
41
51
|
@@options = DEFAULT_OPTIONS.dup
|
|
42
52
|
|
|
43
53
|
def self.restore_defaults!
|
|
44
54
|
@@options = DEFAULT_OPTIONS.dup
|
|
45
55
|
end
|
|
46
56
|
|
|
57
|
+
def self.set_html5_options!
|
|
58
|
+
@@options = HTML5_OPTIONS.dup
|
|
59
|
+
end
|
|
60
|
+
|
|
47
61
|
def self.set(option, value)
|
|
48
62
|
@@options[option] = value
|
|
49
63
|
end
|
|
@@ -178,6 +192,13 @@ module Markaby
|
|
|
178
192
|
raise InvalidXhtmlError, "id `#{ele_id}' already used (id's must be unique)."
|
|
179
193
|
end
|
|
180
194
|
end
|
|
195
|
+
if AttrsBoolean.include? atname
|
|
196
|
+
if v
|
|
197
|
+
attrs[k] = atname.to_s
|
|
198
|
+
else
|
|
199
|
+
attrs.delete k
|
|
200
|
+
end
|
|
201
|
+
end
|
|
181
202
|
end
|
|
182
203
|
end
|
|
183
204
|
end
|
|
@@ -187,7 +208,7 @@ module Markaby
|
|
|
187
208
|
block = proc { text(str) }
|
|
188
209
|
end
|
|
189
210
|
|
|
190
|
-
f = fragment { @builder.
|
|
211
|
+
f = fragment { @builder.tag!(tag, *args, &block) }
|
|
191
212
|
@used_ids[ele_id] = f if ele_id
|
|
192
213
|
f
|
|
193
214
|
end
|
|
@@ -276,8 +297,8 @@ module Markaby
|
|
|
276
297
|
@transformed_stream = false
|
|
277
298
|
end
|
|
278
299
|
|
|
279
|
-
|
|
280
|
-
undef_method
|
|
300
|
+
[:to_s, :inspect, :==].each do |method|
|
|
301
|
+
undef_method method if method_defined?(method)
|
|
281
302
|
end
|
|
282
303
|
|
|
283
304
|
private
|
data/lib/markaby/builder_tags.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module Markaby
|
|
2
2
|
module BuilderTags
|
|
3
|
-
(
|
|
3
|
+
(HTML5.tags - [:head]).each do |k|
|
|
4
4
|
class_eval <<-CODE, __FILE__, __LINE__
|
|
5
5
|
def #{k}(*args, &block)
|
|
6
6
|
html_tag(#{k.inspect}, *args, &block)
|
|
@@ -28,7 +28,8 @@ module Markaby
|
|
|
28
28
|
# set to <tt>text/html; charset=utf-8</tt>.
|
|
29
29
|
def head(*args, &block)
|
|
30
30
|
tag!(:head, *args) do
|
|
31
|
-
tag!(:meta, "http-equiv" => "Content-Type", "content" => "text/html; charset=utf-8") if @output_meta_tag
|
|
31
|
+
tag!(:meta, "http-equiv" => "Content-Type", "content" => "text/html; charset=utf-8") if @output_meta_tag == 'xhtml'
|
|
32
|
+
tag!(:meta, "charset" => "utf-8") if @output_meta_tag == 'html5'
|
|
32
33
|
instance_eval(&block)
|
|
33
34
|
end
|
|
34
35
|
end
|
|
@@ -53,6 +54,20 @@ module Markaby
|
|
|
53
54
|
xhtml_html(attrs, &block)
|
|
54
55
|
end
|
|
55
56
|
|
|
57
|
+
# Builds an html tag with HTML5 doctype instead.
|
|
58
|
+
def html5(attrs = {}, &block)
|
|
59
|
+
enable_html5!
|
|
60
|
+
html5_html(attrs, &block)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def enable_html5!
|
|
64
|
+
self.tagset = Markaby::HTML5
|
|
65
|
+
|
|
66
|
+
Markaby::Builder::HTML5_OPTIONS.each do |k, v|
|
|
67
|
+
self.instance_variable_set("@#{k}".to_sym, v)
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
56
71
|
private
|
|
57
72
|
|
|
58
73
|
def xhtml_html(attrs = {}, &block)
|
|
@@ -60,5 +75,10 @@ module Markaby
|
|
|
60
75
|
declare!(:DOCTYPE, :html, :PUBLIC, *tagset.doctype)
|
|
61
76
|
tag!(:html, @root_attributes.merge(attrs), &block)
|
|
62
77
|
end
|
|
78
|
+
|
|
79
|
+
def html5_html(attrs = {}, &block)
|
|
80
|
+
declare!(:DOCTYPE, :html)
|
|
81
|
+
tag!(:html, @root_attributes.merge(attrs), &block)
|
|
82
|
+
end
|
|
63
83
|
end
|
|
64
84
|
end
|