mab 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. data/COPYING +19 -0
  2. data/Gemfile +10 -0
  3. data/Gemfile.lock +12 -0
  4. data/README.md +224 -0
  5. data/Rakefile +8 -0
  6. data/bench.rb +37 -0
  7. data/lib/mab/mixin.rb +58 -42
  8. data/lib/mab/version.rb +1 -1
  9. data/mab-0.0.1.gem +0 -0
  10. data/mab.gemspec +20 -0
  11. data/markaby/CHANGELOG.rdoc +106 -0
  12. data/markaby/Markaby.gemspec +109 -0
  13. data/markaby/README.rdoc +317 -0
  14. data/markaby/Rakefile +78 -0
  15. data/markaby/VERSION +1 -0
  16. data/markaby/garlic.rb +29 -0
  17. data/markaby/init.rb +6 -0
  18. data/markaby/lib/markaby.rb +30 -0
  19. data/markaby/lib/markaby/builder.rb +314 -0
  20. data/markaby/lib/markaby/builder_tags.rb +64 -0
  21. data/markaby/lib/markaby/cssproxy.rb +55 -0
  22. data/markaby/lib/markaby/kernel_method.rb +7 -0
  23. data/markaby/lib/markaby/rails.rb +75 -0
  24. data/markaby/lib/markaby/rails/current.rb +85 -0
  25. data/markaby/lib/markaby/rails/deprecated.rb +124 -0
  26. data/markaby/lib/markaby/rails/rails_builder.rb +91 -0
  27. data/markaby/lib/markaby/sinatra.rb +18 -0
  28. data/markaby/lib/markaby/tags.rb +200 -0
  29. data/markaby/lib/markaby/tilt.rb +8 -0
  30. data/markaby/spec/markaby/builder_spec.rb +118 -0
  31. data/markaby/spec/markaby/css_proxy_test.rb +47 -0
  32. data/markaby/spec/markaby/fragment_test.rb +10 -0
  33. data/markaby/spec/markaby/markaby_other_static.mab +1 -0
  34. data/markaby/spec/markaby/markaby_spec.rb +184 -0
  35. data/markaby/spec/markaby/markaby_test.rb +251 -0
  36. data/markaby/spec/markaby/rails/spec_helper.rb +29 -0
  37. data/markaby/spec/markaby/rails/views/layouts/layout.mab +11 -0
  38. data/markaby/spec/markaby/rails/views/markaby/_a_partial.mab +3 -0
  39. data/markaby/spec/markaby/rails/views/markaby/_form_for_with_body_in_erb.erb +1 -0
  40. data/markaby/spec/markaby/rails/views/markaby/_partial_child_with_locals.mab +1 -0
  41. data/markaby/spec/markaby/rails/views/markaby/access_to_helpers.mab +1 -0
  42. data/markaby/spec/markaby/rails/views/markaby/broken.mab +7 -0
  43. data/markaby/spec/markaby/rails/views/markaby/commented_out_template.mab +1 -0
  44. data/markaby/spec/markaby/rails/views/markaby/correct_template_values.mab +5 -0
  45. data/markaby/spec/markaby/rails/views/markaby/double_output.mab +8 -0
  46. data/markaby/spec/markaby/rails/views/markaby/form_for.mab +2 -0
  47. data/markaby/spec/markaby/rails/views/markaby/form_for_with_fields.mab +3 -0
  48. data/markaby/spec/markaby/rails/views/markaby/form_for_with_multiple_fields.mab +4 -0
  49. data/markaby/spec/markaby/rails/views/markaby/no_values_passed.mab +3 -0
  50. data/markaby/spec/markaby/rails/views/markaby/partial_parent.mab +1 -0
  51. data/markaby/spec/markaby/rails/views/markaby/partial_parent_with_locals.mab +7 -0
  52. data/markaby/spec/markaby/rails/views/markaby/render_erb_without_explicit_render_call.erb +1 -0
  53. data/markaby/spec/markaby/rails/views/markaby/render_explicit_but_empty_markaby_layout.mab +0 -0
  54. data/markaby/spec/markaby/rails/views/markaby/render_mab_without_explicit_render_call.mab +3 -0
  55. data/markaby/spec/markaby/rails/views/markaby/render_with_ivar.mab +3 -0
  56. data/markaby/spec/markaby/rails/views/markaby/renders_erb.rhtml +1 -0
  57. data/markaby/spec/markaby/rails/views/markaby/renders_form_for_with_erb_body.mab +3 -0
  58. data/markaby/spec/markaby/rails/views/markaby/routes.mab +1 -0
  59. data/markaby/spec/markaby/rails/views/markaby/yielding.mab +3 -0
  60. data/markaby/spec/markaby/rails/views/markaby/yielding_content_for_with_block_helper.mab +5 -0
  61. data/markaby/spec/markaby/rails/views/markaby/yielding_two.mab +7 -0
  62. data/markaby/spec/markaby/rails/views/markaby/yielding_with_content_for.mab +3 -0
  63. data/markaby/spec/markaby/rails_test.rb +380 -0
  64. data/markaby/spec/markaby/rails_version_spec.rb +37 -0
  65. data/markaby/spec/markaby/sinatra/app.rb +49 -0
  66. data/markaby/spec/markaby/sinatra/sinatra_spec.rb +67 -0
  67. data/markaby/spec/markaby/sinatra/views/helpers.mab +1 -0
  68. data/markaby/spec/markaby/sinatra/views/layout.mab +7 -0
  69. data/markaby/spec/markaby/sinatra/views/markaby_template.mab +0 -0
  70. data/markaby/spec/markaby/sinatra/views/scope_instance_variables.mab +3 -0
  71. data/markaby/spec/markaby/sinatra/views/simple_html.mab +4 -0
  72. data/markaby/spec/markaby/sinatra/views/variables.mab +3 -0
  73. data/markaby/spec/markaby/tilt/erb.erb +1 -0
  74. data/markaby/spec/markaby/tilt/locals.mab +1 -0
  75. data/markaby/spec/markaby/tilt/markaby.mab +1 -0
  76. data/markaby/spec/markaby/tilt/markaby_other_static.mab +1 -0
  77. data/markaby/spec/markaby/tilt/render_twice.mab +1 -0
  78. data/markaby/spec/markaby/tilt/scope.mab +1 -0
  79. data/markaby/spec/markaby/tilt/yielding.mab +2 -0
  80. data/markaby/spec/markaby/tilt_spec.rb +75 -0
  81. data/markaby/spec/spec.opts +2 -0
  82. data/markaby/spec/spec_helper.rb +44 -0
  83. data/test/helper.rb +4 -0
  84. data/test/test_mab_builder.rb +56 -0
  85. data/test/test_mab_indentation.rb +66 -0
  86. data/test/test_mab_kernel_method.rb +10 -0
  87. data/test/test_mab_mixin.rb +246 -0
  88. metadata +92 -6
@@ -0,0 +1,10 @@
1
+ require 'helper'
2
+
3
+ class TestMabKernelMethod < MiniTest::Unit::TestCase
4
+ def test_kernel_method
5
+ require 'mab/kernel_method'
6
+ @a = 1
7
+ assert_equal "<p>\n <p>3</p>\n</p>", mab { p { p { @a + 2 } } }
8
+ end
9
+ end
10
+
@@ -0,0 +1,246 @@
1
+ require 'helper'
2
+
3
+ class TestMabMixin < MiniTest::Unit::TestCase
4
+ def setup
5
+ super
6
+ @obj = Object.new
7
+ end
8
+
9
+ def test_tag
10
+ @obj.extend Mab::Mixin
11
+
12
+ assert_equal '<br>', @obj.mab {
13
+ tag! :br
14
+ }
15
+
16
+ assert_equal '<br></br>', @obj.mab {
17
+ tag! :br, nil
18
+ }
19
+
20
+ assert_equal '<p>Hello</p>', @obj.mab {
21
+ tag! :p, 'Hello'
22
+ }
23
+
24
+ assert_equal '<p class="intro">Hello</p>', @obj.mab {
25
+ tag! :p, 'Hello', :class => "intro"
26
+ }
27
+
28
+ assert_equal '<p><br></p>', @obj.mab {
29
+ tag! :p do
30
+ tag! :br
31
+ end
32
+ }
33
+
34
+ assert_equal '<br class="intro">', @obj.mab {
35
+ tag! :br, :class => 'intro'
36
+ }
37
+
38
+ assert_equal '<br>', @obj.mab {
39
+ tag! :br, :class => nil
40
+ }
41
+
42
+ assert_raises Mab::Mixin::Error do
43
+ @obj.mab do
44
+ tag! :p, "content" do
45
+ "and block"
46
+ end
47
+ end
48
+ end
49
+ end
50
+
51
+ def test_multile_attrs
52
+ @obj.extend Mab::Mixin
53
+
54
+ assert_equal '<br class="intro" id="yay">', @obj.mab {
55
+ tag! :br, { :class => "intro" }, { :id => "yay" }
56
+ }
57
+ end
58
+
59
+ def test_escaping
60
+ @obj.extend Mab::Mixin
61
+
62
+ assert_equal '<p>&amp;</p>', @obj.mab {
63
+ tag! :p, '&'
64
+ }
65
+
66
+ assert_equal '<p>&</p>', @obj.mab {
67
+ tag! :p do '&' end
68
+ }
69
+
70
+ assert_equal '&amp;', @obj.mab { text '&' }
71
+ end
72
+
73
+ def test_chaining
74
+ @obj.extend Mab::Mixin
75
+
76
+ assert_equal '<p class="intro" id="first">Hello</p>', @obj.mab {
77
+ tag!(:p).intro.first!('Hello')
78
+ }
79
+
80
+ assert_raises(Mab::Mixin::Error) do
81
+ @obj.mab do
82
+ tag!(:p).intro('Hello').first!('Hello')
83
+ end
84
+ end
85
+
86
+ assert_raises(Mab::Mixin::Error) do
87
+ @obj.mab do
88
+ tag!(:p).intro(:class => 'bar').first!('Hello')
89
+ end
90
+ end
91
+ end
92
+
93
+ def test_html5_chaining
94
+ @obj.extend Mab::Mixin::HTML5
95
+
96
+ assert_equal '<p class="intro" id="first">Hello</p>', @obj.mab {
97
+ p.intro.first!('Hello')
98
+ }
99
+ end
100
+
101
+ def test_mab_done
102
+ @obj.extend Mab::Mixin
103
+ def @obj.mab_done(tag)
104
+ tag.attributes = { :nope => 123 }
105
+ end
106
+
107
+ assert_equal '<p nope="123"><br nope="123"></p>', @obj.mab {
108
+ tag! :p, :hello => :world do
109
+ tag!(:br).klass(:hello => :world)
110
+ end
111
+ }
112
+ end
113
+
114
+ def test_mab_done_ignore_block
115
+ @obj.extend Mab::Mixin
116
+ def @obj.mab_done(tag)
117
+ tag.block = nil
118
+ tag.content = ''
119
+ end
120
+
121
+ assert_equal '<p></p>', @obj.mab {
122
+ tag! :p do
123
+ tag!(:br).klass(:hello => :world)
124
+ end
125
+ }
126
+ end
127
+
128
+ def test_mab_done_wrap_block
129
+ @obj.extend Mab::Mixin
130
+ def @obj.mab_done(tag)
131
+ tag.block do |blk|
132
+ tag! :p, 'nice'
133
+ blk.call
134
+ end if tag.name == :body
135
+ end
136
+
137
+ assert_equal "<body><p>nice</p><br></body>", @obj.mab {
138
+ tag! :body do
139
+ tag! :br
140
+ end
141
+ }
142
+ end
143
+
144
+ def test_mab_insert
145
+ @obj.extend Mab::Mixin
146
+ def @obj.mab_insert(tag)
147
+ tag.name = :nope if tag.respond_to?(:name=)
148
+ super
149
+ end
150
+
151
+ assert_equal '<nope>', @obj.mab {
152
+ tag! :br
153
+ }
154
+ end
155
+
156
+ def test_stringification
157
+ @obj.extend Mab::Mixin
158
+
159
+ assert_equal '<h1>My name is: <span>Bob</span></h1>', @obj.mab {
160
+ tag!(:h1) do
161
+ "My name is: #{tag!(:span, 'Bob')}"
162
+ end
163
+ }
164
+
165
+ assert_equal '<h1><div><span>Hello</span> | <span>Hello</span></div></h1>', @obj.mab {
166
+ tag!(:h1) do
167
+ s = tag!(:span, 'Hello')
168
+ tag!(:div) do
169
+ [s, s].join(' | ')
170
+ end
171
+ end
172
+ }
173
+ end
174
+
175
+ def test_xml
176
+ @obj.extend Mab::Mixin
177
+ @obj.mab_options[:xml] = true
178
+
179
+ assert_equal '<br /><br></br><br>hello</br>', @obj.mab {
180
+ tag! :br
181
+ tag! :br, ''
182
+ tag! :br, 'hello'
183
+ }
184
+ end
185
+
186
+ def test_html5
187
+ @obj.extend Mab::Mixin::HTML5
188
+ assert_equal '<!DOCTYPE html><html><body><p></p><br></body></html>', @obj.mab {
189
+ doctype!
190
+ html do
191
+ body do
192
+ p
193
+ br
194
+ end
195
+ end
196
+ }
197
+
198
+ assert_raises Mab::Mixin::Error do
199
+ @obj.mab { br { } }
200
+ end
201
+
202
+ assert_raises Mab::Mixin::Error do
203
+ @obj.mab { br "hello" }
204
+ end
205
+
206
+ assert_raises Mab::Mixin::Error do
207
+ @obj.mab { br.klass "hello" }
208
+ end
209
+
210
+ assert_includes [
211
+ '<input class="text" value="name">',
212
+ '<input value="name" class="text">',
213
+ ], @obj.mab {
214
+ input.text :value => 'name'
215
+ }
216
+ end
217
+
218
+ def test_xhtml5
219
+ @obj.extend Mab::Mixin::XHTML5
220
+ assert_equal '<!DOCTYPE html><html><body><p></p><br /></body></html>', @obj.mab {
221
+ doctype!
222
+ html do
223
+ body do
224
+ p
225
+ br
226
+ end
227
+ end
228
+ }
229
+
230
+ assert_raises Mab::Mixin::Error do
231
+ @obj.mab { br { } }
232
+ end
233
+
234
+ assert_raises Mab::Mixin::Error do
235
+ @obj.mab { br "hello" }
236
+ end
237
+ end
238
+
239
+ def test_core_xml
240
+ @obj.extend Mab::Mixin::XML
241
+ assert_equal '<br />', @obj.mab {
242
+ tag! :br
243
+ }
244
+ end
245
+ end
246
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mab
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-25 00:00:00.000000000 Z
12
+ date: 2012-09-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70107192708940 !ruby/object:Gem::Requirement
16
+ requirement: &70117518819120 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70107192708940
24
+ version_requirements: *70117518819120
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: minitest
27
- requirement: &70107192708280 !ruby/object:Gem::Requirement
27
+ requirement: &70117518828900 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70107192708280
35
+ version_requirements: *70117518828900
36
36
  description:
37
37
  email:
38
38
  - judofyr@gmail.com
@@ -40,12 +40,97 @@ executables: []
40
40
  extensions: []
41
41
  extra_rdoc_files: []
42
42
  files:
43
+ - bench.rb
44
+ - COPYING
45
+ - Gemfile
46
+ - Gemfile.lock
43
47
  - lib/mab/builder.rb
44
48
  - lib/mab/indentation.rb
45
49
  - lib/mab/kernel_method.rb
46
50
  - lib/mab/mixin.rb
47
51
  - lib/mab/version.rb
48
52
  - lib/mab.rb
53
+ - mab-0.0.1.gem
54
+ - mab.gemspec
55
+ - markaby/CHANGELOG.rdoc
56
+ - markaby/garlic.rb
57
+ - markaby/init.rb
58
+ - markaby/lib/markaby/builder.rb
59
+ - markaby/lib/markaby/builder_tags.rb
60
+ - markaby/lib/markaby/cssproxy.rb
61
+ - markaby/lib/markaby/kernel_method.rb
62
+ - markaby/lib/markaby/rails/current.rb
63
+ - markaby/lib/markaby/rails/deprecated.rb
64
+ - markaby/lib/markaby/rails/rails_builder.rb
65
+ - markaby/lib/markaby/rails.rb
66
+ - markaby/lib/markaby/sinatra.rb
67
+ - markaby/lib/markaby/tags.rb
68
+ - markaby/lib/markaby/tilt.rb
69
+ - markaby/lib/markaby.rb
70
+ - markaby/Markaby.gemspec
71
+ - markaby/Rakefile
72
+ - markaby/README.rdoc
73
+ - markaby/spec/markaby/builder_spec.rb
74
+ - markaby/spec/markaby/css_proxy_test.rb
75
+ - markaby/spec/markaby/fragment_test.rb
76
+ - markaby/spec/markaby/markaby_other_static.mab
77
+ - markaby/spec/markaby/markaby_spec.rb
78
+ - markaby/spec/markaby/markaby_test.rb
79
+ - markaby/spec/markaby/rails/spec_helper.rb
80
+ - markaby/spec/markaby/rails/views/layouts/layout.mab
81
+ - markaby/spec/markaby/rails/views/markaby/_a_partial.mab
82
+ - markaby/spec/markaby/rails/views/markaby/_form_for_with_body_in_erb.erb
83
+ - markaby/spec/markaby/rails/views/markaby/_partial_child_with_locals.mab
84
+ - markaby/spec/markaby/rails/views/markaby/access_to_helpers.mab
85
+ - markaby/spec/markaby/rails/views/markaby/broken.mab
86
+ - markaby/spec/markaby/rails/views/markaby/commented_out_template.mab
87
+ - markaby/spec/markaby/rails/views/markaby/correct_template_values.mab
88
+ - markaby/spec/markaby/rails/views/markaby/double_output.mab
89
+ - markaby/spec/markaby/rails/views/markaby/form_for.mab
90
+ - markaby/spec/markaby/rails/views/markaby/form_for_with_fields.mab
91
+ - markaby/spec/markaby/rails/views/markaby/form_for_with_multiple_fields.mab
92
+ - markaby/spec/markaby/rails/views/markaby/no_values_passed.mab
93
+ - markaby/spec/markaby/rails/views/markaby/partial_parent.mab
94
+ - markaby/spec/markaby/rails/views/markaby/partial_parent_with_locals.mab
95
+ - markaby/spec/markaby/rails/views/markaby/render_erb_without_explicit_render_call.erb
96
+ - markaby/spec/markaby/rails/views/markaby/render_explicit_but_empty_markaby_layout.mab
97
+ - markaby/spec/markaby/rails/views/markaby/render_mab_without_explicit_render_call.mab
98
+ - markaby/spec/markaby/rails/views/markaby/render_with_ivar.mab
99
+ - markaby/spec/markaby/rails/views/markaby/renders_erb.rhtml
100
+ - markaby/spec/markaby/rails/views/markaby/renders_form_for_with_erb_body.mab
101
+ - markaby/spec/markaby/rails/views/markaby/routes.mab
102
+ - markaby/spec/markaby/rails/views/markaby/yielding.mab
103
+ - markaby/spec/markaby/rails/views/markaby/yielding_content_for_with_block_helper.mab
104
+ - markaby/spec/markaby/rails/views/markaby/yielding_two.mab
105
+ - markaby/spec/markaby/rails/views/markaby/yielding_with_content_for.mab
106
+ - markaby/spec/markaby/rails_test.rb
107
+ - markaby/spec/markaby/rails_version_spec.rb
108
+ - markaby/spec/markaby/sinatra/app.rb
109
+ - markaby/spec/markaby/sinatra/sinatra_spec.rb
110
+ - markaby/spec/markaby/sinatra/views/helpers.mab
111
+ - markaby/spec/markaby/sinatra/views/layout.mab
112
+ - markaby/spec/markaby/sinatra/views/markaby_template.mab
113
+ - markaby/spec/markaby/sinatra/views/scope_instance_variables.mab
114
+ - markaby/spec/markaby/sinatra/views/simple_html.mab
115
+ - markaby/spec/markaby/sinatra/views/variables.mab
116
+ - markaby/spec/markaby/tilt/erb.erb
117
+ - markaby/spec/markaby/tilt/locals.mab
118
+ - markaby/spec/markaby/tilt/markaby.mab
119
+ - markaby/spec/markaby/tilt/markaby_other_static.mab
120
+ - markaby/spec/markaby/tilt/render_twice.mab
121
+ - markaby/spec/markaby/tilt/scope.mab
122
+ - markaby/spec/markaby/tilt/yielding.mab
123
+ - markaby/spec/markaby/tilt_spec.rb
124
+ - markaby/spec/spec.opts
125
+ - markaby/spec/spec_helper.rb
126
+ - markaby/VERSION
127
+ - Rakefile
128
+ - README.md
129
+ - test/helper.rb
130
+ - test/test_mab_builder.rb
131
+ - test/test_mab_indentation.rb
132
+ - test/test_mab_kernel_method.rb
133
+ - test/test_mab_mixin.rb
49
134
  homepage:
50
135
  licenses: []
51
136
  post_install_message:
@@ -71,3 +156,4 @@ signing_key:
71
156
  specification_version: 3
72
157
  summary: Markup as Ruby
73
158
  test_files: []
159
+ has_rdoc: