forme 1.2.0 → 1.3.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.
- checksums.yaml +4 -4
- data/CHANGELOG +24 -0
- data/MIT-LICENSE +1 -1
- data/README.rdoc +37 -18
- data/Rakefile +6 -5
- data/lib/forme.rb +6 -1348
- data/lib/forme/form.rb +387 -0
- data/lib/forme/input.rb +48 -0
- data/lib/forme/raw.rb +12 -0
- data/lib/forme/tag.rb +60 -0
- data/lib/forme/transformers/error_handler.rb +18 -0
- data/lib/forme/transformers/formatter.rb +511 -0
- data/lib/forme/transformers/helper.rb +17 -0
- data/lib/forme/transformers/inputs_wrapper.rb +95 -0
- data/lib/forme/transformers/labeler.rb +78 -0
- data/lib/forme/transformers/serializer.rb +171 -0
- data/lib/forme/transformers/wrapper.rb +52 -0
- data/lib/forme/version.rb +1 -1
- data/lib/sequel/plugins/forme.rb +7 -4
- data/spec/forme_spec.rb +65 -5
- data/spec/sequel_plugin_spec.rb +18 -3
- metadata +15 -4
data/spec/forme_spec.rb
CHANGED
@@ -247,20 +247,44 @@ describe "Forme plain forms" do
|
|
247
247
|
@f.input(:date).to_s.should == '<input type="date"/>'
|
248
248
|
end
|
249
249
|
|
250
|
+
specify "should create datetime-local tag" do
|
251
|
+
@f.input(:datetime).to_s.should == '<input type="datetime-local"/>'
|
252
|
+
end
|
253
|
+
|
250
254
|
specify "should not error for input type :input" do
|
251
255
|
@f.input(:input).to_s.should == '<input type="input"/>'
|
252
256
|
end
|
253
257
|
|
254
258
|
specify "should use multiple select boxes for dates if the :as=>:select option is given" do
|
255
|
-
@f.input(:date, :name=>"foo", :id=>"bar", :as=>:select, :value=>Date.new(2011, 6, 5)).to_s.should == %{<select id="
|
259
|
+
@f.input(:date, :name=>"foo", :id=>"bar", :as=>:select, :value=>Date.new(2011, 6, 5)).to_s.should == %{<select id="bar" name="foo[year]">#{sel(1900..2050, 2011)}</select>-<select id="bar_month" name="foo[month]">#{sel(1..12, 6)}</select>-<select id="bar_day" name="foo[day]">#{sel(1..31, 5)}</select>}
|
260
|
+
end
|
261
|
+
|
262
|
+
specify "should allow ordering date select boxes via :order" do
|
263
|
+
@f.input(:date, :name=>"foo", :id=>"bar", :as=>:select, :value=>Date.new(2011, 6, 5), :order=>[:month, '/', :day, '/', :year]).to_s.should == %{<select id="bar" name="foo[month]">#{sel(1..12, 6)}</select>/<select id="bar_day" name="foo[day]">#{sel(1..31, 5)}</select>/<select id="bar_year" name="foo[year]">#{sel(1900..2050, 2011)}</select>}
|
264
|
+
end
|
265
|
+
|
266
|
+
specify "should allow only using specific date select boxes via :order" do
|
267
|
+
@f.input(:date, :name=>"foo", :id=>"bar", :as=>:select, :value=>Date.new(2011, 6, 5), :order=>[:month, :year]).to_s.should == %{<select id="bar" name="foo[month]">#{sel(1..12, 6)}</select><select id="bar_year" name="foo[year]">#{sel(1900..2050, 2011)}</select>}
|
268
|
+
end
|
269
|
+
|
270
|
+
specify "should support :select_options for dates when :as=>:select is given" do
|
271
|
+
@f.input(:date, :name=>"foo", :id=>"bar", :as=>:select, :value=>Date.new(2011, 6, 5), :select_options=>{:year=>1970..2020}).to_s.should == %{<select id="bar" name="foo[year]">#{sel(1970..2020, 2011)}</select>-<select id="bar_month" name="foo[month]">#{sel(1..12, 6)}</select>-<select id="bar_day" name="foo[day]">#{sel(1..31, 5)}</select>}
|
256
272
|
end
|
257
273
|
|
258
274
|
specify "should have explicit labeler and trtd wrapper work with multiple select boxes for dates" do
|
259
|
-
@f.input(:date, :name=>"foo", :id=>"bar", :as=>:select, :value=>Date.new(2011, 6, 5), :wrapper=>:trtd, :labeler=>:explicit, :label=>'Baz').to_s.should == %{<tr><td><label class="label-before" for="
|
275
|
+
@f.input(:date, :name=>"foo", :id=>"bar", :as=>:select, :value=>Date.new(2011, 6, 5), :wrapper=>:trtd, :labeler=>:explicit, :label=>'Baz').to_s.should == %{<tr><td><label class="label-before" for="bar">Baz</label></td><td><select id="bar" name="foo[year]">#{sel(1900..2050, 2011)}</select>-<select id="bar_month" name="foo[month]">#{sel(1..12, 6)}</select>-<select id="bar_day" name="foo[day]">#{sel(1..31, 5)}</select></td></tr>}
|
260
276
|
end
|
261
277
|
|
262
278
|
specify "should use multiple select boxes for datetimes if the :as=>:select option is given" do
|
263
|
-
@f.input(:datetime, :name=>"foo", :id=>"bar", :as=>:select, :value=>DateTime.new(2011, 6, 5, 4, 3, 2)).to_s.should == %{<select id="
|
279
|
+
@f.input(:datetime, :name=>"foo", :id=>"bar", :as=>:select, :value=>DateTime.new(2011, 6, 5, 4, 3, 2)).to_s.should == %{<select id="bar" name="foo[year]">#{sel(1900..2050, 2011)}</select>-<select id="bar_month" name="foo[month]">#{sel(1..12, 6)}</select>-<select id="bar_day" name="foo[day]">#{sel(1..31, 5)}</select> <select id="bar_hour" name="foo[hour]">#{sel(0..23, 4)}</select>:<select id="bar_minute" name="foo[minute]">#{sel(0..59, 3)}</select>:<select id="bar_second" name="foo[second]">#{sel(0..59, 2)}</select>}
|
280
|
+
end
|
281
|
+
|
282
|
+
specify "should allow ordering select boxes for datetimes via :order" do
|
283
|
+
@f.input(:datetime, :name=>"foo", :id=>"bar", :as=>:select, :value=>DateTime.new(2011, 6, 5, 4, 3, 2), :order=>[:day, '/', :month, 'T', :hour, ':', :minute]).to_s.should == %{<select id="bar" name="foo[day]">#{sel(1..31, 5)}</select>/<select id="bar_month" name="foo[month]">#{sel(1..12, 6)}</select>T<select id="bar_hour" name="foo[hour]">#{sel(0..23, 4)}</select>:<select id="bar_minute" name="foo[minute]">#{sel(0..59, 3)}</select>}
|
284
|
+
end
|
285
|
+
|
286
|
+
specify "should support :select_options for datetimes when :as=>:select option is given" do
|
287
|
+
@f.input(:datetime, :name=>"foo", :id=>"bar", :as=>:select, :value=>DateTime.new(2011, 6, 5, 10, 3, 2), :select_options=>{:year=>1970..2020, :hour=>9..17}).to_s.should == %{<select id="bar" name="foo[year]">#{sel(1970..2020, 2011)}</select>-<select id="bar_month" name="foo[month]">#{sel(1..12, 6)}</select>-<select id="bar_day" name="foo[day]">#{sel(1..31, 5)}</select> <select id="bar_hour" name="foo[hour]">#{sel(9..17, 10)}</select>:<select id="bar_minute" name="foo[minute]">#{sel(0..59, 3)}</select>:<select id="bar_second" name="foo[second]">#{sel(0..59, 2)}</select>}
|
264
288
|
end
|
265
289
|
|
266
290
|
specify "should create select tag with options" do
|
@@ -272,6 +296,14 @@ describe "Forme plain forms" do
|
|
272
296
|
@f.input(:select, :options=>[[:a, 1], [:b, 2], [:c, 3]], :selected=>2).to_s.should == '<select><option value="1">a</option><option selected="selected" value="2">b</option><option value="3">c</option></select>'
|
273
297
|
end
|
274
298
|
|
299
|
+
specify "should create select tag with option groups" do
|
300
|
+
@f.input(:select, :optgroups=>[['d', [[:a, 1], [:b, 2]]], ['e', [[:c, 3]]]], :selected=>2).to_s.should == '<select><optgroup label="d"><option value="1">a</option><option selected="selected" value="2">b</option></optgroup><optgroup label="e"><option value="3">c</option></optgroup></select>'
|
301
|
+
end
|
302
|
+
|
303
|
+
specify "should create select tag with option groups with attributes" do
|
304
|
+
@f.input(:select, :optgroups=>[[{:label=>'d', :class=>'f'}, [[:a, 1], [:b, 2]]], [{:label=>'e', :class=>'g'}, [[:c, 3]]]], :selected=>2).to_s.should == '<select><optgroup class="f" label="d"><option value="1">a</option><option selected="selected" value="2">b</option></optgroup><optgroup class="g" label="e"><option value="3">c</option></optgroup></select>'
|
305
|
+
end
|
306
|
+
|
275
307
|
specify "should create select tag with options and values with hashes" do
|
276
308
|
@f.input(:select, :options=>[[:a, {:foo=>1}], [:b, {:bar=>4, :value=>2}], [:c, {:baz=>3}]], :selected=>2).to_s.should == '<select><option foo="1">a</option><option bar="4" selected="selected" value="2">b</option><option baz="3">c</option></select>'
|
277
309
|
end
|
@@ -304,6 +336,14 @@ describe "Forme plain forms" do
|
|
304
336
|
@f.input(:select, :options=>[[:b, 2], [:c, 3]], :add_blank=>"Prompt Here", :value=>2).to_s.should == '<select><option value="">Prompt Here</option><option selected="selected" value="2">b</option><option value="3">c</option></select>'
|
305
337
|
end
|
306
338
|
|
339
|
+
specify "should support :add_blank option with :blank_position :after for select inputs" do
|
340
|
+
@f.input(:select, :options=>[[:b, 2], [:c, 3]], :add_blank=>true, :blank_position=>:after, :value=>2).to_s.should == '<select><option selected="selected" value="2">b</option><option value="3">c</option><option value=""></option></select>'
|
341
|
+
end
|
342
|
+
|
343
|
+
specify "should support :add_blank option with :blank_attr option for select inputs" do
|
344
|
+
@f.input(:select, :options=>[[:b, 2], [:c, 3]], :add_blank=>true, :blank_attr=>{:foo=>:bar}, :value=>2).to_s.should == '<select><option foo="bar" value=""></option><option selected="selected" value="2">b</option><option value="3">c</option></select>'
|
345
|
+
end
|
346
|
+
|
307
347
|
specify "should create set of radio buttons" do
|
308
348
|
@f.input(:radioset, :options=>[1, 2, 3], :selected=>2).to_s.should == '<label class="option"><input type="radio" value="1"/> 1</label><label class="option"><input checked="checked" type="radio" value="2"/> 2</label><label class="option"><input type="radio" value="3"/> 3</label>'
|
309
349
|
@f.input(:radioset, :options=>[1, 2, 3], :value=>2).to_s.should == '<label class="option"><input type="radio" value="1"/> 1</label><label class="option"><input checked="checked" type="radio" value="2"/> 2</label><label class="option"><input type="radio" value="3"/> 3</label>'
|
@@ -334,6 +374,10 @@ describe "Forme plain forms" do
|
|
334
374
|
@f.input(:radioset, :options=>[1, 2, 3], :key=>:foo, :value=>2).to_s.should == '<label class="option"><input id="foo_1" name="foo" type="radio" value="1"/> 1</label><label class="option"><input checked="checked" id="foo_2" name="foo" type="radio" value="2"/> 2</label><label class="option"><input id="foo_3" name="foo" type="radio" value="3"/> 3</label>'
|
335
375
|
end
|
336
376
|
|
377
|
+
specify "should create set of radio buttons with fieldsets and legends for :optgroups" do
|
378
|
+
@f.input(:radioset, :optgroups=>[['d', [[:a, 1], [:b, 2]]], ['e', [[:c, 3]]]], :selected=>2).to_s.should == '<fieldset><legend>d</legend><label class="option"><input type="radio" value="1"/> a</label><label class="option"><input checked="checked" type="radio" value="2"/> b</label></fieldset><fieldset><legend>e</legend><label class="option"><input type="radio" value="3"/> c</label></fieldset>'
|
379
|
+
end
|
380
|
+
|
337
381
|
specify "should create set of checkbox buttons" do
|
338
382
|
@f.input(:checkboxset, :options=>[1, 2, 3], :selected=>2).to_s.should == '<label class="option"><input type="checkbox" value="1"/> 1</label><label class="option"><input checked="checked" type="checkbox" value="2"/> 2</label><label class="option"><input type="checkbox" value="3"/> 3</label>'
|
339
383
|
@f.input(:checkboxset, :options=>[1, 2, 3], :value=>2).to_s.should == '<label class="option"><input type="checkbox" value="1"/> 1</label><label class="option"><input checked="checked" type="checkbox" value="2"/> 2</label><label class="option"><input type="checkbox" value="3"/> 3</label>'
|
@@ -376,6 +420,10 @@ describe "Forme plain forms" do
|
|
376
420
|
@f.input(:checkboxset, :options=>[1, 2, 3], :error=>'foo', :value=>2).to_s.should == '<label class="option"><input type="checkbox" value="1"/> 1</label><label class="option"><input checked="checked" type="checkbox" value="2"/> 2</label><label class="option"><input class="error" type="checkbox" value="3"/> 3</label><span class="error_message">foo</span>'
|
377
421
|
end
|
378
422
|
|
423
|
+
specify "should create set of checkbox buttons with fieldsets and legends for optgroups" do
|
424
|
+
@f.input(:checkboxset, :optgroups=>[['d', [[:a, 1], [:b, 2]]], ['e', [[:c, 3]]]], :selected=>2).to_s.should == '<fieldset><legend>d</legend><label class="option"><input type="checkbox" value="1"/> a</label><label class="option"><input checked="checked" type="checkbox" value="2"/> b</label></fieldset><fieldset><legend>e</legend><label class="option"><input type="checkbox" value="3"/> c</label></fieldset>'
|
425
|
+
end
|
426
|
+
|
379
427
|
specify "should raise an Error for empty checkbox sets" do
|
380
428
|
@f.input(:checkboxset, :options=>[], :error=>'foo', :value=>2).to_s.should == '<span class="error_message">foo</span>'
|
381
429
|
end
|
@@ -545,8 +593,8 @@ describe "Forme plain forms" do
|
|
545
593
|
|
546
594
|
specify "should format dates, times, and datetimes in ISO format" do
|
547
595
|
@f.tag(:div, :foo=>Date.new(2011, 6, 5)).to_s.should == '<div foo="2011-06-05"></div>'
|
548
|
-
@f.tag(:div, :foo=>DateTime.new(2011, 6, 5, 4, 3, 2)).to_s.should == '<div foo="2011-06-
|
549
|
-
@f.tag(:div, :foo=>Time.utc(2011, 6, 5, 4, 3, 2)).to_s.should =~ /<div foo="2011-06-
|
596
|
+
@f.tag(:div, :foo=>DateTime.new(2011, 6, 5, 4, 3, 2)).to_s.should == '<div foo="2011-06-05T04:03:02.000000"></div>'
|
597
|
+
@f.tag(:div, :foo=>Time.utc(2011, 6, 5, 4, 3, 2)).to_s.should =~ /<div foo="2011-06-05T04:03:02.000000"><\/div>/
|
550
598
|
end
|
551
599
|
|
552
600
|
specify "should format bigdecimals in standard notation" do
|
@@ -561,6 +609,18 @@ describe "Forme plain forms" do
|
|
561
609
|
@f.input(:text, :wrapper=>:li, :wrapper_attr=>{:class=>"foo"}).to_s.should == '<li class="foo"><input type="text"/></li>'
|
562
610
|
end
|
563
611
|
|
612
|
+
specify "inputs should accept a :help option to use custom helper text" do
|
613
|
+
@f.input(:text, :help=>"List type of foo").to_s.should == '<input type="text"/><span class="helper">List type of foo</span>'
|
614
|
+
end
|
615
|
+
|
616
|
+
specify "inputs should accept a :helper_attr option for custom helper attributes" do
|
617
|
+
@f.input(:text, :help=>"List type of foo", :helper_attr=>{:class=>'foo'}).to_s.should == '<input type="text"/><span class="foo helper">List type of foo</span>'
|
618
|
+
end
|
619
|
+
|
620
|
+
specify "inputs should have helper displayed inside wrapper, after error" do
|
621
|
+
@f.input(:text, :help=>"List type of foo", :error=>'bad', :wrapper=>:li).to_s.should == '<li><input class="error" type="text"/><span class="error_message">bad</span><span class="helper">List type of foo</span></li>'
|
622
|
+
end
|
623
|
+
|
564
624
|
specify "inputs should accept a :formatter option to use a custom formatter" do
|
565
625
|
@f.input(:text, :formatter=>:readonly, :value=>'1', :label=>'Foo').to_s.should == '<label>Foo: <span>1</span></label>'
|
566
626
|
@f.input(:text, :formatter=>:default, :value=>'1', :label=>'Foo').to_s.should == '<label>Foo: <input type="text" value="1"/></label>'
|
data/spec/sequel_plugin_spec.rb
CHANGED
@@ -53,12 +53,12 @@ describe "Forme Sequel::Model forms" do
|
|
53
53
|
end
|
54
54
|
|
55
55
|
specify "should use datetime inputs for Time" do
|
56
|
-
@b.input(:created_at).to_s.should =~ %r{<label>Created at: <input id="album_created_at" name="album\[created_at\]" type="datetime" value="2011-06-
|
56
|
+
@b.input(:created_at).to_s.should =~ %r{<label>Created at: <input id="album_created_at" name="album\[created_at\]" type="datetime-local" value="2011-06-05T00:00:00.000000"/></label>}
|
57
57
|
end
|
58
58
|
|
59
59
|
specify "should use datetime inputs for DateTimes" do
|
60
60
|
@ab.values[:created_at] = DateTime.new(2011, 6, 5)
|
61
|
-
@b.input(:created_at).to_s.should == '<label>Created at: <input id="album_created_at" name="album[created_at]" type="datetime" value="2011-06-
|
61
|
+
@b.input(:created_at).to_s.should == '<label>Created at: <input id="album_created_at" name="album[created_at]" type="datetime-local" value="2011-06-05T00:00:00.000000"/></label>'
|
62
62
|
end
|
63
63
|
|
64
64
|
specify "should include type as wrapper class" do
|
@@ -66,7 +66,7 @@ describe "Forme Sequel::Model forms" do
|
|
66
66
|
f = Forme::Form.new(@ab, :wrapper=>:li)
|
67
67
|
f.input(:name).to_s.should == '<li class="string"><label>Name: <input id="album_name" name="album[name]" type="text" value="b"/></label></li>'
|
68
68
|
f.input(:release_date).to_s.should == '<li class="date"><label>Release date: <input id="album_release_date" name="album[release_date]" type="date" value="2011-06-05"/></label></li>'
|
69
|
-
f.input(:created_at).to_s.should == '<li class="datetime"><label>Created at: <input id="album_created_at" name="album[created_at]" type="datetime" value="2011-06-
|
69
|
+
f.input(:created_at).to_s.should == '<li class="datetime"><label>Created at: <input id="album_created_at" name="album[created_at]" type="datetime-local" value="2011-06-05T00:00:00.000000"/></label></li>'
|
70
70
|
end
|
71
71
|
|
72
72
|
specify "should include required * in label if required" do
|
@@ -95,6 +95,10 @@ describe "Forme Sequel::Model forms" do
|
|
95
95
|
@b.input(:gold, :true_value=>"Foo", :false_value=>"Bar").to_s.should == '<label>Gold: <select id="album_gold" name="album[gold]"><option value=""></option><option value="Foo">True</option><option value="Bar">False</option></select></label>'
|
96
96
|
end
|
97
97
|
|
98
|
+
specify "should respect :add_blank option for tri-valued boolean fields" do
|
99
|
+
@b.input(:gold, :add_blank=>'NULL').to_s.should == '<label>Gold: <select id="album_gold" name="album[gold]"><option value="">NULL</option><option value="t">True</option><option selected="selected" value="f">False</option></select></label>'
|
100
|
+
end
|
101
|
+
|
98
102
|
specify "should use a select box for dual-valued boolean fields where :required => false" do
|
99
103
|
@b.input(:platinum, :required=>false).to_s.should == '<label>Platinum: <select id="album_platinum" name="album[platinum]"><option value=""></option><option value="t">True</option><option selected="selected" value="f">False</option></select></label>'
|
100
104
|
@c.input(:platinum, :required=>false).to_s.should == '<label>Platinum: <select id="album_platinum" name="album[platinum]"><option value=""></option><option selected="selected" value="t">True</option><option value="f">False</option></select></label>'
|
@@ -240,6 +244,12 @@ describe "Forme Sequel::Model forms" do
|
|
240
244
|
@c.input(:atags).to_s.should == '<label>Atags: <select id="album_atag_ids" multiple="multiple" name="album[atag_ids][]"><option value="1">s</option><option selected="selected" value="2">t</option><option value="3">u</option></select></label>'
|
241
245
|
end
|
242
246
|
|
247
|
+
specify "should handle an error message on the underlying column for pg_array_to_many associations" do
|
248
|
+
@ab.errors.add(:atag_ids, 'tis not valid')
|
249
|
+
@b.input(:atags).to_s.should == '<label>Atags: <select class="error" id="album_atag_ids" multiple="multiple" name="album[atag_ids][]"><option selected="selected" value="1">s</option><option selected="selected" value="2">t</option><option value="3">u</option></select></label><span class="error_message">tis not valid</span>'
|
250
|
+
@b.input(:atags, :as=>:checkbox).to_s.should == '<span class="label">Atags</span><label class="option"><input checked="checked" id="album_atag_ids_1" name="album[atag_ids][]" type="checkbox" value="1"/> s</label><label class="option"><input checked="checked" id="album_atag_ids_2" name="album[atag_ids][]" type="checkbox" value="2"/> t</label><label class="option"><input class="error" id="album_atag_ids_3" name="album[atag_ids][]" type="checkbox" value="3"/> u</label><span class="error_message">tis not valid</span>'
|
251
|
+
end
|
252
|
+
|
243
253
|
specify "should use a regular select box for *_to_many associations if multiple if false" do
|
244
254
|
@b.input(:tracks, :multiple=>false).to_s.should == '<label>Tracks: <select id="album_track_pks" name="album[track_pks][]"><option value="1">m</option><option value="2">n</option><option value="3">o</option></select></label>'
|
245
255
|
@c.input(:tags, :multiple=>false).to_s.should == '<label>Tags: <select id="album_tag_pks" name="album[tag_pks][]"><option value="1">s</option><option value="2">t</option><option value="3">u</option></select></label>'
|
@@ -406,6 +416,11 @@ describe "Forme Sequel::Model forms" do
|
|
406
416
|
specify "should have #subform :grid option handle :legend and :labels nil values" do
|
407
417
|
Forme.form(@ab){|f| f.subform(:artist, :inputs=>[:name], :grid=>true, :legend=>nil, :labels=>nil)}.to_s.should == '<form class="forme album" method="post"><table><input id="album_artist_attributes_id" name="album[artist_attributes][id]" type="hidden" value="1"/><tr><td class="string"><input id="album_artist_attributes_name" name="album[artist_attributes][name]" type="text" value="a"/></td></tr></table></form>'
|
408
418
|
end
|
419
|
+
|
420
|
+
specify "should have #subform :grid option handle :skip_primary_key option" do
|
421
|
+
Forme.form(@ab){|f| f.subform(:artist, :inputs=>[:name], :grid=>true, :skip_primary_key=>true)}.to_s.should == '<form class="forme album" method="post"><table><caption>Artist</caption><tr><th>Name</th></tr><tr><td class="string"><input id="album_artist_attributes_name" name="album[artist_attributes][name]" type="text" value="a"/></td></tr></table></form>'
|
422
|
+
end
|
423
|
+
|
409
424
|
end
|
410
425
|
|
411
426
|
describe "Forme Sequel plugin default input types based on column names" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: forme
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Evans
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-04-17 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: |
|
14
14
|
Forme is a forms library with the following goals:
|
@@ -31,8 +31,19 @@ files:
|
|
31
31
|
- Rakefile
|
32
32
|
- lib/forme.rb
|
33
33
|
- lib/forme/erb.rb
|
34
|
+
- lib/forme/form.rb
|
35
|
+
- lib/forme/input.rb
|
34
36
|
- lib/forme/rails.rb
|
37
|
+
- lib/forme/raw.rb
|
35
38
|
- lib/forme/sinatra.rb
|
39
|
+
- lib/forme/tag.rb
|
40
|
+
- lib/forme/transformers/error_handler.rb
|
41
|
+
- lib/forme/transformers/formatter.rb
|
42
|
+
- lib/forme/transformers/helper.rb
|
43
|
+
- lib/forme/transformers/inputs_wrapper.rb
|
44
|
+
- lib/forme/transformers/labeler.rb
|
45
|
+
- lib/forme/transformers/serializer.rb
|
46
|
+
- lib/forme/transformers/wrapper.rb
|
36
47
|
- lib/forme/version.rb
|
37
48
|
- lib/roda/plugins/forme.rb
|
38
49
|
- lib/sequel/plugins/forme.rb
|
@@ -45,7 +56,7 @@ files:
|
|
45
56
|
- spec/sequel_plugin_spec.rb
|
46
57
|
- spec/sinatra_integration_spec.rb
|
47
58
|
- spec/spec_helper.rb
|
48
|
-
homepage: http://
|
59
|
+
homepage: http://github.com/jeremyevans/forme
|
49
60
|
licenses:
|
50
61
|
- MIT
|
51
62
|
metadata: {}
|
@@ -72,7 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
72
83
|
version: '0'
|
73
84
|
requirements: []
|
74
85
|
rubyforge_project:
|
75
|
-
rubygems_version: 2.
|
86
|
+
rubygems_version: 2.4.5
|
76
87
|
signing_key:
|
77
88
|
specification_version: 4
|
78
89
|
summary: HTML forms library
|