padrino-helpers 0.1.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.
Files changed (48) hide show
  1. data/.document +5 -0
  2. data/.gitignore +21 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +7 -0
  5. data/Rakefile +58 -0
  6. data/VERSION +1 -0
  7. data/lib/padrino-helpers.rb +16 -0
  8. data/lib/padrino-helpers/asset_tag_helpers.rb +97 -0
  9. data/lib/padrino-helpers/form_builder/abstract_form_builder.rb +139 -0
  10. data/lib/padrino-helpers/form_builder/standard_form_builder.rb +37 -0
  11. data/lib/padrino-helpers/form_helpers.rb +194 -0
  12. data/lib/padrino-helpers/format_helpers.rb +74 -0
  13. data/lib/padrino-helpers/output_helpers.rb +98 -0
  14. data/lib/padrino-helpers/render_helpers.rb +63 -0
  15. data/lib/padrino-helpers/tag_helpers.rb +42 -0
  16. data/test/active_support_helpers.rb +7 -0
  17. data/test/fixtures/markup_app/app.rb +61 -0
  18. data/test/fixtures/markup_app/views/capture_concat.erb +14 -0
  19. data/test/fixtures/markup_app/views/capture_concat.haml +13 -0
  20. data/test/fixtures/markup_app/views/content_for.erb +11 -0
  21. data/test/fixtures/markup_app/views/content_for.haml +9 -0
  22. data/test/fixtures/markup_app/views/content_tag.erb +11 -0
  23. data/test/fixtures/markup_app/views/content_tag.haml +9 -0
  24. data/test/fixtures/markup_app/views/fields_for.erb +8 -0
  25. data/test/fixtures/markup_app/views/fields_for.haml +6 -0
  26. data/test/fixtures/markup_app/views/form_for.erb +56 -0
  27. data/test/fixtures/markup_app/views/form_for.haml +47 -0
  28. data/test/fixtures/markup_app/views/form_tag.erb +57 -0
  29. data/test/fixtures/markup_app/views/form_tag.haml +45 -0
  30. data/test/fixtures/markup_app/views/link_to.erb +5 -0
  31. data/test/fixtures/markup_app/views/link_to.haml +4 -0
  32. data/test/fixtures/markup_app/views/mail_to.erb +3 -0
  33. data/test/fixtures/markup_app/views/mail_to.haml +3 -0
  34. data/test/fixtures/render_app/app.rb +53 -0
  35. data/test/fixtures/render_app/views/erb/test.erb +1 -0
  36. data/test/fixtures/render_app/views/haml/test.haml +1 -0
  37. data/test/fixtures/render_app/views/template/_user.haml +7 -0
  38. data/test/fixtures/render_app/views/template/haml_template.haml +1 -0
  39. data/test/fixtures/render_app/views/template/some_template.haml +2 -0
  40. data/test/helper.rb +73 -0
  41. data/test/test_asset_tag_helpers.rb +127 -0
  42. data/test/test_form_builder.rb +611 -0
  43. data/test/test_form_helpers.rb +406 -0
  44. data/test/test_format_helpers.rb +96 -0
  45. data/test/test_output_helpers.rb +63 -0
  46. data/test/test_render_helpers.rb +78 -0
  47. data/test/test_tag_helpers.rb +73 -0
  48. metadata +174 -0
@@ -0,0 +1,63 @@
1
+ require File.dirname(__FILE__) + '/helper'
2
+ require File.dirname(__FILE__) + '/fixtures/markup_app/app'
3
+
4
+ class TestOutputHelpers < Test::Unit::TestCase
5
+ def app
6
+ MarkupDemo.tap { |app| app.set :environment, :test }
7
+ end
8
+
9
+ context 'for #content_for method' do
10
+ should 'work for erb templates' do
11
+ visit '/erb/content_for'
12
+ assert_have_selector '.demo h1', :content => "This is content yielded from a content_for"
13
+ assert_have_selector '.demo2 h1', :content => "This is content yielded with name Johnny Smith"
14
+ end
15
+
16
+ should "work for haml templates" do
17
+ visit '/haml/content_for'
18
+ assert_have_selector '.demo h1', :content => "This is content yielded from a content_for"
19
+ assert_have_selector '.demo2 h1', :content => "This is content yielded with name Johnny Smith"
20
+ end
21
+ end
22
+
23
+ context 'for #capture_html method' do
24
+ should "work for erb templates" do
25
+ visit '/erb/capture_concat'
26
+ assert_have_selector 'p span', :content => "Captured Line 1"
27
+ assert_have_selector 'p span', :content => "Captured Line 2"
28
+ end
29
+
30
+ should "work for haml templates" do
31
+ visit '/haml/capture_concat'
32
+ assert_have_selector 'p span', :content => "Captured Line 1"
33
+ assert_have_selector 'p span', :content => "Captured Line 2"
34
+ end
35
+ end
36
+
37
+ context 'for #concat_content method' do
38
+ should "work for erb templates" do
39
+ visit '/erb/capture_concat'
40
+ assert_have_selector 'p', :content => "Concat Line 3", :count => 1
41
+ end
42
+
43
+ should "work for haml templates" do
44
+ visit '/haml/capture_concat'
45
+ assert_have_selector 'p', :content => "Concat Line 3", :count => 1
46
+ end
47
+ end
48
+
49
+ context 'for #block_is_template?' do
50
+ should "work for erb templates" do
51
+ visit '/erb/capture_concat'
52
+ assert_have_selector 'p', :content => "The erb block passed in is a template", :class => 'is_template'
53
+ # TODO Get ERB template detection working (fix block_is_erb? method)
54
+ # assert_have_no_selector 'p', :content => "The ruby block passed in is a template", :class => 'is_template'
55
+ end
56
+
57
+ should "work for haml templates" do
58
+ visit '/haml/capture_concat'
59
+ assert_have_selector 'p', :content => "The haml block passed in is a template", :class => 'is_template'
60
+ assert_have_no_selector 'p', :content => "The ruby block passed in is a template", :class => 'is_template'
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,78 @@
1
+ require File.dirname(__FILE__) + '/helper'
2
+ require File.dirname(__FILE__) + '/fixtures/render_app/app'
3
+
4
+ class TestRenderHelpers < Test::Unit::TestCase
5
+ def app
6
+ RenderDemo.tap { |app| app.set :environment, :test }
7
+ end
8
+
9
+ context 'for #haml_template method' do
10
+ setup { visit '/render_haml' }
11
+ should('render template properly') do
12
+ assert_have_selector "h1", :content => "This is a haml template!"
13
+ end
14
+ end
15
+
16
+ context 'for #erb_template method' do
17
+ setup { visit '/render_erb' }
18
+ should('render template properly') do
19
+ assert_have_selector "h1", :content => "This is a erb template!"
20
+ end
21
+ end
22
+
23
+ context 'for #render_template method with explicit engine' do
24
+ setup { visit '/render_template/haml' }
25
+ should('render template properly') do
26
+ assert_have_selector "h1", :content => "This is a haml template sent from render_template!"
27
+ end
28
+ end
29
+
30
+ context 'for #render_template method without explicit engine' do
31
+ setup { visit '/render_template' }
32
+ should('render template properly') do
33
+ assert_have_selector "h1", :content => "This is a haml template which was detected!"
34
+ end
35
+ end
36
+
37
+ context 'for #partial method and object' do
38
+ setup { visit '/partial/object' }
39
+ should "render partial html with object" do
40
+ assert_have_selector "h1", :content => "User name is John"
41
+ end
42
+ should "have no counter index for single item" do
43
+ assert_have_no_selector "p", :content => "My counter is 1", :count => 1
44
+ end
45
+ should "include extra locals information" do
46
+ assert_have_selector 'p', :content => "Extra is bar"
47
+ end
48
+ end
49
+
50
+ context 'for #partial method and collection' do
51
+ setup { visit '/partial/collection' }
52
+ should "render partial html with collection" do
53
+ assert_have_selector "h1", :content => "User name is John"
54
+ assert_have_selector "h1", :content => "User name is Billy"
55
+ end
56
+ should "include counter which contains item index" do
57
+ assert_have_selector "p", :content => "My counter is 1"
58
+ assert_have_selector "p", :content => "My counter is 2"
59
+ end
60
+ should "include extra locals information" do
61
+ assert_have_selector 'p', :content => "Extra is bar"
62
+ end
63
+ end
64
+
65
+ context 'for #partial method and locals' do
66
+ setup { visit '/partial/locals' }
67
+ should "render partial html with locals" do
68
+ assert_have_selector "h1", :content => "User name is John"
69
+ end
70
+ should "have no counter index for single item" do
71
+ assert_have_no_selector "p", :content => "My counter is 1", :count => 1
72
+ end
73
+ should "include extra locals information" do
74
+ assert_have_selector 'p', :content => "Extra is bar"
75
+ end
76
+ end
77
+
78
+ end
@@ -0,0 +1,73 @@
1
+ require File.dirname(__FILE__) + '/helper'
2
+ require File.dirname(__FILE__) + '/fixtures/markup_app/app'
3
+
4
+ class TestTagHelpers < Test::Unit::TestCase
5
+ def app
6
+ MarkupDemo.tap { |app| app.set :environment, :test }
7
+ end
8
+
9
+ context 'for #tag method' do
10
+ should("support tags with no content no attributes") do
11
+ assert_has_tag(:br) { tag(:br) }
12
+ end
13
+ should("support tags with no content with attributes") do
14
+ actual_html = tag(:br, :style => 'clear:both', :class => 'yellow')
15
+ assert_has_tag(:br, :class => 'yellow', :style=>'clear:both') { actual_html }
16
+ end
17
+ should "support selected attribute by using 'selected' if true" do
18
+ actual_html = tag(:option, :selected => true)
19
+ assert_has_tag('option', :selected => 'selected') { actual_html }
20
+ end
21
+ should "support tags with content no attributes" do
22
+ assert_has_tag(:p, :content => "Demo String") { tag(:p, :content => "Demo String") }
23
+ end
24
+ should "support tags with content and attributes" do
25
+ actual_html = tag(:p, :content => "Demo", :class => 'large', :id => 'intro')
26
+ assert_has_tag('p#intro.large', :content => "Demo") { actual_html }
27
+ end
28
+ end
29
+
30
+ context 'for #content_tag method' do
31
+ should "support tags with content as parameter" do
32
+ actual_html = content_tag(:p, "Demo", :class => 'large', :id => 'thing')
33
+ assert_has_tag('p.large#thing', :content => "Demo") { actual_html }
34
+ end
35
+ should "support tags with content as block" do
36
+ actual_html = content_tag(:p, :class => 'large', :id => 'star') { "Demo" }
37
+ assert_has_tag('p.large#star', :content => "Demo") { actual_html }
38
+ end
39
+ should "support tags with erb" do
40
+ visit '/erb/content_tag'
41
+ assert_have_selector :p, :content => "Test 1", :class => 'test', :id => 'test1'
42
+ assert_have_selector :p, :content => "Test 2"
43
+ assert_have_selector :p, :content => "Test 3"
44
+ assert_have_selector :p, :content => "Test 4"
45
+ end
46
+ should "support tags with haml" do
47
+ visit '/haml/content_tag'
48
+ assert_have_selector :p, :content => "Test 1", :class => 'test', :id => 'test1'
49
+ assert_have_selector :p, :content => "Test 2"
50
+ assert_have_selector :p, :content => "Test 3", :class => 'test', :id => 'test3'
51
+ assert_have_selector :p, :content => "Test 4"
52
+ end
53
+ end
54
+
55
+ context 'for #input_tag method' do
56
+ should "support field with type" do
57
+ assert_has_tag('input[type=text]') { input_tag(:text) }
58
+ end
59
+ should "support field with type and options" do
60
+ actual_html = input_tag(:text, :class => "first", :id => 'texter')
61
+ assert_has_tag('input.first#texter[type=text]') { actual_html }
62
+ end
63
+ should "support checked attribute by using 'checked' if true" do
64
+ actual_html = input_tag(:checkbox, :checked => true)
65
+ assert_has_tag('input[type=checkbox]', :checked => 'checked') { actual_html }
66
+ end
67
+ should "support disabled attribute by using 'disabled' if true" do
68
+ actual_html = input_tag(:checkbox, :disabled => true)
69
+ assert_has_tag('input[type=checkbox]', :disabled => 'disabled') { actual_html }
70
+ end
71
+ end
72
+
73
+ end
metadata ADDED
@@ -0,0 +1,174 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: padrino-helpers
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Padrino Team
8
+ - Nathan Esquenazi
9
+ - Davide D'Agostino
10
+ - Arthur Chiu
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+
15
+ date: 2009-11-16 00:00:00 -08:00
16
+ default_executable:
17
+ dependencies:
18
+ - !ruby/object:Gem::Dependency
19
+ name: sinatra
20
+ type: :runtime
21
+ version_requirement:
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 0.9.2
27
+ version:
28
+ - !ruby/object:Gem::Dependency
29
+ name: haml
30
+ type: :development
31
+ version_requirement:
32
+ version_requirements: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 2.2.1
37
+ version:
38
+ - !ruby/object:Gem::Dependency
39
+ name: shoulda
40
+ type: :development
41
+ version_requirement:
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: "0"
47
+ version:
48
+ - !ruby/object:Gem::Dependency
49
+ name: mocha
50
+ type: :development
51
+ version_requirement:
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 0.9.7
57
+ version:
58
+ - !ruby/object:Gem::Dependency
59
+ name: rack-test
60
+ type: :development
61
+ version_requirement:
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 0.5.0
67
+ version:
68
+ - !ruby/object:Gem::Dependency
69
+ name: webrat
70
+ type: :development
71
+ version_requirement:
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: 0.5.1
77
+ version:
78
+ description: Tag helpers, asset helpers, form helpers, form builders and many more helpers for padrino
79
+ email: nesquena@gmail.com
80
+ executables: []
81
+
82
+ extensions: []
83
+
84
+ extra_rdoc_files:
85
+ - LICENSE
86
+ - README.rdoc
87
+ files:
88
+ - .document
89
+ - .gitignore
90
+ - LICENSE
91
+ - README.rdoc
92
+ - Rakefile
93
+ - VERSION
94
+ - lib/padrino-helpers.rb
95
+ - lib/padrino-helpers/asset_tag_helpers.rb
96
+ - lib/padrino-helpers/form_builder/abstract_form_builder.rb
97
+ - lib/padrino-helpers/form_builder/standard_form_builder.rb
98
+ - lib/padrino-helpers/form_helpers.rb
99
+ - lib/padrino-helpers/format_helpers.rb
100
+ - lib/padrino-helpers/output_helpers.rb
101
+ - lib/padrino-helpers/render_helpers.rb
102
+ - lib/padrino-helpers/tag_helpers.rb
103
+ - test/active_support_helpers.rb
104
+ - test/fixtures/markup_app/app.rb
105
+ - test/fixtures/markup_app/views/capture_concat.erb
106
+ - test/fixtures/markup_app/views/capture_concat.haml
107
+ - test/fixtures/markup_app/views/content_for.erb
108
+ - test/fixtures/markup_app/views/content_for.haml
109
+ - test/fixtures/markup_app/views/content_tag.erb
110
+ - test/fixtures/markup_app/views/content_tag.haml
111
+ - test/fixtures/markup_app/views/fields_for.erb
112
+ - test/fixtures/markup_app/views/fields_for.haml
113
+ - test/fixtures/markup_app/views/form_for.erb
114
+ - test/fixtures/markup_app/views/form_for.haml
115
+ - test/fixtures/markup_app/views/form_tag.erb
116
+ - test/fixtures/markup_app/views/form_tag.haml
117
+ - test/fixtures/markup_app/views/link_to.erb
118
+ - test/fixtures/markup_app/views/link_to.haml
119
+ - test/fixtures/markup_app/views/mail_to.erb
120
+ - test/fixtures/markup_app/views/mail_to.haml
121
+ - test/fixtures/render_app/app.rb
122
+ - test/fixtures/render_app/views/erb/test.erb
123
+ - test/fixtures/render_app/views/haml/test.haml
124
+ - test/fixtures/render_app/views/template/_user.haml
125
+ - test/fixtures/render_app/views/template/haml_template.haml
126
+ - test/fixtures/render_app/views/template/some_template.haml
127
+ - test/helper.rb
128
+ - test/test_asset_tag_helpers.rb
129
+ - test/test_form_builder.rb
130
+ - test/test_form_helpers.rb
131
+ - test/test_format_helpers.rb
132
+ - test/test_output_helpers.rb
133
+ - test/test_render_helpers.rb
134
+ - test/test_tag_helpers.rb
135
+ has_rdoc: true
136
+ homepage: http://github.com/padrino/padrino-helpers
137
+ licenses: []
138
+
139
+ post_install_message:
140
+ rdoc_options:
141
+ - --charset=UTF-8
142
+ require_paths:
143
+ - lib
144
+ required_ruby_version: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: "0"
149
+ version:
150
+ required_rubygems_version: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: "0"
155
+ version:
156
+ requirements: []
157
+
158
+ rubyforge_project:
159
+ rubygems_version: 1.3.5
160
+ signing_key:
161
+ specification_version: 3
162
+ summary: Helpers for padrino
163
+ test_files:
164
+ - test/active_support_helpers.rb
165
+ - test/fixtures/markup_app/app.rb
166
+ - test/fixtures/render_app/app.rb
167
+ - test/helper.rb
168
+ - test/test_asset_tag_helpers.rb
169
+ - test/test_form_builder.rb
170
+ - test/test_form_helpers.rb
171
+ - test/test_format_helpers.rb
172
+ - test/test_output_helpers.rb
173
+ - test/test_render_helpers.rb
174
+ - test/test_tag_helpers.rb