ProMotion-form 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -9
- data/lib/ProMotion/form/form.rb +3 -80
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 81b4b3d375ca469f74c535c14dacef688d57ee6d
|
4
|
+
data.tar.gz: eec689e725e021133138431980aa7f8c7120b34e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a0e009a06a0a400f591d1eb8a46dc6579b367fdff285458af0782a555ad8c293b64d7d684906050d1201458f4b3d5f0a7fbb5e16e58802509b0cff2bf6beab09
|
7
|
+
data.tar.gz: c6f4fef2bf42a1e8f27749a4947840a2ee7df345b4e27c21d7064cfe395ff20a9a84f0382a894a55f6fe36fb96d7c126bbf311140a3bf0c7f25e32204904e36b
|
data/README.md
CHANGED
@@ -33,6 +33,7 @@ class MyFormScreen < PM::FormScreen
|
|
33
33
|
def form_data
|
34
34
|
[{
|
35
35
|
title: "Account Information",
|
36
|
+
footer: "Some help text",
|
36
37
|
cells: [{
|
37
38
|
name: "email",
|
38
39
|
title: "ID",
|
@@ -50,9 +51,9 @@ class MyFormScreen < PM::FormScreen
|
|
50
51
|
end
|
51
52
|
```
|
52
53
|
|
53
|
-
###
|
54
|
+
### What about Formotion?
|
54
55
|
|
55
|
-
We
|
56
|
+
We have used and like Formotion for some form-heavy apps, but it's a rather bulky gem. ProMotion-form works better with ProMotion and is a lot smaller.
|
56
57
|
|
57
58
|
---
|
58
59
|
|
@@ -69,6 +70,7 @@ class AccountScreen < PM::FormScreen
|
|
69
70
|
def form_data
|
70
71
|
[{
|
71
72
|
title: "Account Information",
|
73
|
+
footer: "Help text here",
|
72
74
|
cells: [{
|
73
75
|
name: "email",
|
74
76
|
title: "ID",
|
@@ -94,18 +96,18 @@ class AccountScreen < PM::FormScreen
|
|
94
96
|
end
|
95
97
|
```
|
96
98
|
|
97
|
-
All possible properties:
|
99
|
+
All possible form field properties:
|
98
100
|
|
99
101
|
```ruby
|
100
102
|
{
|
101
103
|
label: "Name", # or title:
|
102
104
|
name: :name, # required
|
103
|
-
type: :string, # :default is default...
|
104
|
-
options: [ "Water", "Fire", "Wind" ], # for
|
105
|
+
type: :string, # :default is default...like a button
|
106
|
+
options: [ "Water", "Fire", "Wind" ], # for a subform select (`type` can be anything)
|
105
107
|
placeholder: "Your name",
|
106
|
-
default: "Jamon",
|
108
|
+
default: "Jamon", # Coming soon
|
107
109
|
value: "Jamon Holmgren",
|
108
|
-
action: :"my_action:" # use symbol literal with trailing colon
|
110
|
+
action: :"my_action:" # use symbol literal with trailing colon due to Obj-C semantics
|
109
111
|
}
|
110
112
|
```
|
111
113
|
|
@@ -117,11 +119,11 @@ All possible properties:
|
|
117
119
|
* `:longtext`
|
118
120
|
* `:url`
|
119
121
|
* `:email`
|
120
|
-
* `:phone`
|
122
|
+
* `:phone` - Coming soon
|
121
123
|
* `:password`
|
122
124
|
* `:number`
|
123
125
|
* `:integer`
|
124
|
-
* `:unsigned`
|
126
|
+
* `:unsigned` - Coming soon
|
125
127
|
* `:float`
|
126
128
|
* `:bitfield`
|
127
129
|
* `:boolean`
|
data/lib/ProMotion/form/form.rb
CHANGED
@@ -26,8 +26,9 @@ module ProMotion
|
|
26
26
|
header = nil
|
27
27
|
form_data.map do |section|
|
28
28
|
header = section[:title]
|
29
|
+
footer = section[:footer]
|
29
30
|
Array(section[:cells]).map do |input|
|
30
|
-
input_data(input, header).tap{|i| header = nil }
|
31
|
+
input_data(input, header, footer).tap{|i| header = nil; footer = nil }
|
31
32
|
end
|
32
33
|
end.flatten
|
33
34
|
end
|
@@ -45,7 +46,7 @@ module ProMotion
|
|
45
46
|
fields.map{ |f| f.dup.tap{|f2| f2.delete(:value) } }
|
46
47
|
end
|
47
48
|
|
48
|
-
def input_data(input, header)
|
49
|
+
def input_data(input, header, footer)
|
49
50
|
data = {}
|
50
51
|
data[:header] = header if header
|
51
52
|
data[:key] = input.fetch(:name)
|
@@ -58,84 +59,6 @@ module ProMotion
|
|
58
59
|
data[:action] = input[:action] if input[:action]
|
59
60
|
data
|
60
61
|
end
|
61
|
-
|
62
|
-
def example_fields
|
63
|
-
[
|
64
|
-
{
|
65
|
-
key: "email",
|
66
|
-
header: "Account",
|
67
|
-
type: :email
|
68
|
-
},
|
69
|
-
{
|
70
|
-
key: "password",
|
71
|
-
type: :password
|
72
|
-
},
|
73
|
-
"repeatPassword",
|
74
|
-
{
|
75
|
-
key: "name",
|
76
|
-
header: "Details",
|
77
|
-
# "textField.autocapitalizationType" => UITextAutocapitalizationTypeWords
|
78
|
-
},
|
79
|
-
{
|
80
|
-
key: "gender",
|
81
|
-
options: [ "Male", "Female", "It's Complicated" ]
|
82
|
-
},
|
83
|
-
"dateOfBirth",
|
84
|
-
"profilePhoto",
|
85
|
-
"phone",
|
86
|
-
{
|
87
|
-
key: "country",
|
88
|
-
options: [ "us", "ca", "gb", "sa", "be"],
|
89
|
-
# default: "us",
|
90
|
-
# valueTransformer: ISO3166CountryValueTransformer.alloc.init
|
91
|
-
},
|
92
|
-
{
|
93
|
-
key: "language",
|
94
|
-
options: [ "English", "Spanish", "French", "Dutch" ],
|
95
|
-
# default: "English",
|
96
|
-
# cell: FXFormOptionPickerCell
|
97
|
-
},
|
98
|
-
{
|
99
|
-
key: "interests",
|
100
|
-
# default: "Videogames",
|
101
|
-
options: [ "Videogames", "Animals", "Cooking" ]
|
102
|
-
},
|
103
|
-
{
|
104
|
-
key: "otherInterests",
|
105
|
-
type: :bitfield,
|
106
|
-
# default: "InterestComputers",
|
107
|
-
options: [ "Computers", "Socializing", "Sports" ]
|
108
|
-
},
|
109
|
-
{
|
110
|
-
key: "about",
|
111
|
-
type: :longtext,
|
112
|
-
placeholder: "Text..."
|
113
|
-
},
|
114
|
-
{
|
115
|
-
header: "Plan",
|
116
|
-
key: "plan",
|
117
|
-
title: "",
|
118
|
-
placeholder: "Free",
|
119
|
-
options: [ "Micro", "Normal", "Maxi" ],
|
120
|
-
# cell: FXFormOptionSegmentsCell
|
121
|
-
},
|
122
|
-
{
|
123
|
-
key: "termsAndConditions",
|
124
|
-
header: "Legal"
|
125
|
-
},
|
126
|
-
"privacyPolicy",
|
127
|
-
{
|
128
|
-
key: "agreedToTerms",
|
129
|
-
title: "I Agree To These Terms",
|
130
|
-
type: :option
|
131
|
-
},
|
132
|
-
{
|
133
|
-
title: "Submit",
|
134
|
-
header: "",
|
135
|
-
action: "submitRegistrationForm:"
|
136
|
-
},
|
137
|
-
]
|
138
|
-
end
|
139
62
|
end
|
140
63
|
end
|
141
64
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ProMotion-form
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jamon Holmgren
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ProMotion
|