mab 0.0.1 → 0.0.2

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.
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: