forme 0.6.0 → 0.7.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.
@@ -1,4 +1,5 @@
1
1
  require File.join(File.dirname(File.expand_path(__FILE__)), 'spec_helper.rb')
2
+ require File.join(File.dirname(File.expand_path(__FILE__)), 'sequel_helper.rb')
2
3
 
3
4
  require 'rubygems'
4
5
  require 'sinatra/base'
@@ -6,7 +7,7 @@ require 'forme/sinatra'
6
7
  require(ENV['ERUBIS'] ? 'erubis' : 'erb')
7
8
 
8
9
  class FormeSinatraTest < Sinatra::Base
9
- helpers(ENV['ERUBIS'] ? Forme::Sinatra::Erubis : Forme::Sinatra::ERB)
10
+ helpers(Forme::Sinatra::ERB)
10
11
  disable :show_exceptions
11
12
  enable :raise_errors
12
13
 
@@ -16,6 +17,27 @@ class FormeSinatraTest < Sinatra::Base
16
17
  <p>FBB</p>
17
18
  <%= f.input(:first) %>
18
19
  <%= f.input(:last) %>
20
+ <%= f.button('Save') %>
21
+ <% end %>
22
+ END
23
+ end
24
+
25
+ get '/inputs_block' do
26
+ erb <<END
27
+ <% form([:foo, :bar], :action=>'/baz') do |f| %>
28
+ <% f.inputs(:legend=>'FBB') do %>
29
+ <%= f.input(:last) %>
30
+ <% end %>
31
+ <% end %>
32
+ END
33
+ end
34
+
35
+ get '/inputs_block_wrapper' do
36
+ erb <<END
37
+ <% form([:foo, :bar], {:action=>'/baz'}, :inputs_wrapper=>:fieldset_ol) do |f| %>
38
+ <% f.inputs(:legend=>'FBB') do %>
39
+ <%= f.input(:last) %>
40
+ <% end %>
19
41
  <% end %>
20
42
  END
21
43
  end
@@ -33,6 +55,59 @@ END
33
55
  END
34
56
  end
35
57
 
58
+ get '/nest_sep' do
59
+ @nest = <<END
60
+ n1
61
+ <% f.tag(:div) do %>
62
+ n2
63
+ <%= f.input(:first) %>
64
+ <%= f.input(:last) %>
65
+ n3
66
+ <% end %>
67
+ n4
68
+ <%= f.inputs([:first, :last], :legend=>'Foo') %>
69
+ n5
70
+ END
71
+ erb <<END
72
+ 0
73
+ <% form([:foo, :bar], :action=>'/baz') do |f| %>
74
+ 1
75
+ <%= f.tag(:p, {}, 'FBB') %>
76
+ 2
77
+ <%= erb(@nest, :locals=>{:f=>f}) %>
78
+ 3
79
+ <% end %>
80
+ 4
81
+ END
82
+ end
83
+
84
+ get '/nest_seq' do
85
+ @album = Album.load(:name=>'N', :copies_sold=>2, :id=>1)
86
+ @album.associations[:artist] = Artist.load(:name=>'A', :id=>2)
87
+ @nest = <<END
88
+ n1
89
+ <% f.subform(:artist) do %>
90
+ n2
91
+ <%= f.input(:name2) %>
92
+ n3
93
+ <% end %>
94
+ n4
95
+ <%= f.subform(:artist, :inputs=>[:name3], :legend=>'Bar') %>
96
+ n5
97
+ END
98
+ erb <<END
99
+ 0
100
+ <% form(@album, :action=>'/baz') do |f| %>
101
+ 1
102
+ <%= f.subform(:artist, :inputs=>[:name], :legend=>'Foo') %>
103
+ 2
104
+ <%= erb(@nest, :locals=>{:f=>f}) %>
105
+ 3
106
+ <% end %>
107
+ 4
108
+ END
109
+ end
110
+
36
111
  get '/hash' do
37
112
  erb "<% form({:action=>'/baz'}, :obj=>[:foo]) do |f| %> <%= f.input(:first) %> <% end %>"
38
113
  end
@@ -70,14 +145,31 @@ describe "Forme Sinatra ERB integration" do
70
145
  def o.puts(*) end
71
146
  @rack = {'rack.input'=>'', 'REQUEST_METHOD'=>'GET', 'rack.errors'=>o}
72
147
  end
148
+
73
149
  specify "#form should add start and end tags and yield Forme::Form instance" do
74
- sin_get('/').should == '<form action="/baz"> <p>FBB</p> <input id="first" name="first" type="text" value="foo"/> <input id="last" name="last" type="text" value="bar"/> </form>'
150
+ sin_get('/').should == '<form action="/baz"> <p>FBB</p> <input id="first" name="first" type="text" value="foo"/> <input id="last" name="last" type="text" value="bar"/> <input type="submit" value="Save"/> </form>'
151
+ end
152
+
153
+ specify "#form should have inputs work with a block" do
154
+ sin_get('/inputs_block').should == '<form action="/baz"><fieldset class="inputs"><legend>FBB</legend> <input id="last" name="last" type="text" value="bar"/> </fieldset></form>'
155
+ end
156
+
157
+ specify "#form should have inputs with fieldset_ol wrapper work with block" do
158
+ sin_get('/inputs_block_wrapper').should == '<form action="/baz"><fieldset class="inputs"><legend>FBB</legend><ol> <input id="last" name="last" type="text" value="bar"/> </ol></fieldset></form>'
75
159
  end
76
160
 
77
161
  specify "#form should add start and end tags and yield Forme::Form instance" do
78
162
  sin_get('/nest').should == '<form action="/baz"> <p>FBB</p> <div> <input id="first" name="first" type="text" value="foo"/> <input id="last" name="last" type="text" value="bar"/> </div> </form>'
79
163
  end
80
164
 
165
+ specify "#form should correctly handle situation where multiple templates are used with same form object" do
166
+ sin_get('/nest_sep').should == "0 <form action=\"/baz\"> 1 <p>FBB</p> 2 n1 <div> n2 <input id=\"first\" name=\"first\" type=\"text\" value=\"foo\"/> <input id=\"last\" name=\"last\" type=\"text\" value=\"bar\"/> n3 </div> n4 <fieldset class=\"inputs\"><legend>Foo</legend><input id=\"first\" name=\"first\" type=\"text\" value=\"foo\"/><input id=\"last\" name=\"last\" type=\"text\" value=\"bar\"/></fieldset> n5 3 </form>4"
167
+ end
168
+
169
+ specify "#form should correctly handle situation Sequel integration with subforms where multiple templates are used with same form object" do
170
+ sin_get('/nest_seq').should == "0 <form action=\"/baz\" class=\"forme album\" method=\"post\"> 1 <input id=\"album_artist_attributes_id\" name=\"album[artist_attributes][id]\" type=\"hidden\" value=\"2\"/><fieldset class=\"inputs\"><legend>Foo</legend><label>Name: <input id=\"album_artist_attributes_name\" name=\"album[artist_attributes][name]\" type=\"text\" value=\"A\"/></label></fieldset> 2 n1 <input id=\"album_artist_attributes_id\" name=\"album[artist_attributes][id]\" type=\"hidden\" value=\"2\"/> n2 <label>Name2: <input id=\"album_artist_attributes_name2\" name=\"album[artist_attributes][name2]\" type=\"text\" value=\"A2\"/></label> n3 n4 <input id=\"album_artist_attributes_id\" name=\"album[artist_attributes][id]\" type=\"hidden\" value=\"2\"/><fieldset class=\"inputs\"><legend>Bar</legend><label>Name3: <input id=\"album_artist_attributes_name3\" name=\"album[artist_attributes][name3]\" type=\"text\" value=\"A3\"/></label></fieldset> n5 3 </form>4"
171
+ end
172
+
81
173
  specify "#form should accept two hashes instead of requiring obj as first argument" do
82
174
  sin_get('/hash').should == '<form action="/baz"> <input id="first" name="first" type="text" value="foo"/> </form>'
83
175
  end
metadata CHANGED
@@ -1,42 +1,36 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: forme
3
- version: !ruby/object:Gem::Version
4
- hash: 7
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 6
9
- - 0
10
- version: 0.6.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.7.0
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Jeremy Evans
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-08-01 00:00:00 -07:00
19
- default_executable:
12
+ date: 2012-05-02 00:00:00.000000000 Z
20
13
  dependencies: []
14
+ description: ! 'Forme is a forms library with the following goals:
15
+
21
16
 
22
- description: |
23
- Forme is a forms library with the following goals:
24
-
25
17
  1) Have no external dependencies
18
+
26
19
  2) Have a simple API
20
+
27
21
  3) Support forms both with and without related objects
22
+
28
23
  4) Allow compiling down to different types of output
29
24
 
25
+ '
30
26
  email: code@jeremyevans.net
31
27
  executables: []
32
-
33
28
  extensions: []
34
-
35
- extra_rdoc_files:
29
+ extra_rdoc_files:
36
30
  - README.rdoc
37
31
  - CHANGELOG
38
32
  - MIT-LICENSE
39
- files:
33
+ files:
40
34
  - MIT-LICENSE
41
35
  - CHANGELOG
42
36
  - README.rdoc
@@ -45,49 +39,42 @@ files:
45
39
  - spec/spec_helper.rb
46
40
  - spec/sequel_plugin_spec.rb
47
41
  - spec/sinatra_integration_spec.rb
42
+ - spec/sequel_helper.rb
43
+ - spec/rails_integration_spec.rb
48
44
  - lib/forme.rb
49
45
  - lib/forme/version.rb
50
46
  - lib/forme/sinatra.rb
47
+ - lib/forme/rails.rb
51
48
  - lib/sequel/plugins/forme.rb
52
- has_rdoc: true
53
49
  homepage: http://gihub.com/jeremyevans/forme
54
50
  licenses: []
55
-
56
51
  post_install_message:
57
- rdoc_options:
52
+ rdoc_options:
58
53
  - --quiet
59
54
  - --line-numbers
60
55
  - --inline-source
61
56
  - --title
62
- - "Forme: HTML forms library"
57
+ - ! 'Forme: HTML forms library'
63
58
  - --main
64
59
  - README.rdoc
65
- require_paths:
60
+ require_paths:
66
61
  - lib
67
- required_ruby_version: !ruby/object:Gem::Requirement
62
+ required_ruby_version: !ruby/object:Gem::Requirement
68
63
  none: false
69
- requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- hash: 3
73
- segments:
74
- - 0
75
- version: "0"
76
- required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
69
  none: false
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- hash: 3
82
- segments:
83
- - 0
84
- version: "0"
70
+ requirements:
71
+ - - ! '>='
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
85
74
  requirements: []
86
-
87
75
  rubyforge_project:
88
- rubygems_version: 1.3.7
76
+ rubygems_version: 1.8.11
89
77
  signing_key:
90
78
  specification_version: 3
91
79
  summary: HTML forms library
92
80
  test_files: []
93
-