formula 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +11 -0
- data/lib/formula.rb +53 -1
- metadata +3 -3
data/README.rdoc
CHANGED
@@ -11,6 +11,17 @@ Formula is a Rails form generator that generates simple clean markup. The projec
|
|
11
11
|
<%= f.input :email %>
|
12
12
|
<%= f.input :password %>
|
13
13
|
|
14
|
+
<%= f.input :email, :label => "Email:", :hint => "We promise never to bother you." %>
|
15
|
+
<%= f.input :password, :label => "Password:", :hint => "Must be at least six characters." %>
|
16
|
+
|
17
|
+
<%= f.input :url, :class => 'grid-04' %>
|
18
|
+
<%= f.input :phone, :class => 'grid-04' %>
|
19
|
+
<%= f.input :email, :class => 'grid-04' %>
|
20
|
+
|
21
|
+
<%= f.input :credit_card_number, :label => 'Number:', :class => 'grid-08' %>
|
22
|
+
<%= f.input :credit_card_verification, :label => 'CVV:', :class => 'grid-02' %>
|
23
|
+
<%= f.input :credit_card_expiration, :label => 'Expiration:', :class => 'grid-02' %>
|
24
|
+
|
14
25
|
== Copyright
|
15
26
|
|
16
27
|
Copyright (c) 2010 Kevin Sylvestre. See LICENSE for details.
|
data/lib/formula.rb
CHANGED
@@ -2,9 +2,59 @@ module Formula
|
|
2
2
|
|
3
3
|
require 'formula/railtie' if defined?(Rails)
|
4
4
|
|
5
|
+
mattr_accessor :container_tag
|
6
|
+
@@container_tag = :div
|
7
|
+
|
8
|
+
mattr_accessor :hints_tag
|
9
|
+
@@hints_tag = :div
|
10
|
+
|
11
|
+
mattr_accessor :errors_tag
|
12
|
+
@@errors_tag = :div
|
13
|
+
|
14
|
+
mattr_accessor :default_input_size
|
15
|
+
@@default_input_size = 50
|
16
|
+
|
17
|
+
mattr_accessor :default_textarea_cols
|
18
|
+
@@default_textarea_cols = 50
|
19
|
+
|
20
|
+
mattr_accessor :default_textarea_rows
|
21
|
+
@@default_textarea_rows = 3
|
22
|
+
|
5
23
|
class FormulaFormBuilder < ActionView::Helpers::FormBuilder
|
24
|
+
|
25
|
+
def as(method, options = {})
|
26
|
+
type = @object.column_for_attribute(method)
|
27
|
+
|
28
|
+
case type
|
29
|
+
when :string then
|
30
|
+
return :url if method.to_s =~ /url/
|
31
|
+
return :email if method.to_s =~ /email/
|
32
|
+
return :phone if method.to_s =~ /phone/
|
33
|
+
return :password if method.to_s =~ /password/
|
34
|
+
when :integer then
|
35
|
+
return :number
|
36
|
+
when :float then
|
37
|
+
return :number
|
38
|
+
when :decimal then
|
39
|
+
return :number
|
40
|
+
end
|
41
|
+
|
42
|
+
return :text
|
43
|
+
end
|
6
44
|
|
7
45
|
def input(method, options = {}, &block)
|
46
|
+
options[:as] ||= as(method, options)
|
47
|
+
options[:errors] ||= @object.errors[method]
|
48
|
+
|
49
|
+
components = []
|
50
|
+
|
51
|
+
components << label(:method, options[:label])
|
52
|
+
components << @template.content_tag(::Formula.hints_tag, options[:hint], :class => 'hints') if options[:hints]
|
53
|
+
components << @template.content_tag(::Formula.errors_tag, options[:errors], :class => 'errors') if options[:errors]
|
54
|
+
|
55
|
+
@template.content_tag(::Formula.container_tag, :class => options[:class]) do
|
56
|
+
components.join
|
57
|
+
end
|
8
58
|
end
|
9
59
|
|
10
60
|
def association(method, options = {}, &block)
|
@@ -32,7 +82,9 @@ module Formula
|
|
32
82
|
options[:builder] ||= @@builder
|
33
83
|
fields_for(record_or_name_or_array, *(args << options), &block)
|
34
84
|
end
|
35
|
-
|
85
|
+
|
86
|
+
alias :formula_for :formula_form_for
|
87
|
+
alias :fieldula_for :formula_fields_for
|
36
88
|
end
|
37
89
|
|
38
90
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 4
|
9
|
+
version: 0.0.4
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Kevin Sylvestre
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-11-
|
17
|
+
date: 2010-11-09 00:00:00 -05:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|