ProMotion-form 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: fdb34e3528a33aab68173408ba3e7c2f5b2735db
4
+ data.tar.gz: 1f345f26ddb88c497cd0137e37d1f093b4c57894
5
+ SHA512:
6
+ metadata.gz: 00841a64207cb44d75860a80c5555ceef8eadb1a23391a33cc1a3e72dc1e091f308c06a1519da02e438d89f5fca67e59e413db95c256a74077b44af42e04d029
7
+ data.tar.gz: bc8a5cc57d688f114271720fc070045a70ae5e30230233442a71a6733906c88356dc824f575062a41162e6fb2189aebfbaa205f7ad31a77700ae6d3500d72660
data/README.md ADDED
@@ -0,0 +1,88 @@
1
+ # ProMotion-form
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/ProMotion-form.svg)](http://badge.fury.io/rb/ProMotion-form) [![Build Status](https://travis-ci.org/clearsightstudio/ProMotion-form.svg)](https://travis-ci.org/clearsightstudio/ProMotion-form) [![Code Climate](https://codeclimate.com/github/clearsightstudio/ProMotion-form.png)](https://codeclimate.com/github/clearsightstudio/ProMotion-form)
4
+
5
+ ProMotion-form provides a PM::FormScreen for the
6
+ popular RubyMotion gem [ProMotion](https://github.com/clearsightstudio/ProMotion).
7
+
8
+ ## Installation
9
+
10
+ ```ruby
11
+ gem 'ProMotion-form'
12
+ ```
13
+
14
+ Then:
15
+
16
+ ```sh-session
17
+ $ bundle
18
+ $ rake pod:install
19
+ ```
20
+
21
+ ## Usage
22
+
23
+ Easily create a form screen. Powered by the CocoaPod [FXForms](https://github.com/nicklockwood/FXForms).
24
+
25
+ *Has all the methods of PM::Screen*
26
+
27
+ ```ruby
28
+ class MyFormScreen < PM::FormScreen
29
+ title "My Form"
30
+
31
+ def form_data
32
+ []
33
+ end
34
+
35
+ end
36
+ ```
37
+
38
+ ### Why not Formotion?
39
+
40
+ We've 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 lighter.
41
+
42
+ ---
43
+
44
+ ### Methods
45
+
46
+ #### form_data
47
+
48
+ Method that is called to build the form.
49
+
50
+ ```ruby
51
+ def form_data
52
+ []
53
+ end
54
+ ```
55
+
56
+ All possible properties:
57
+
58
+ ```ruby
59
+ {
60
+ label: "Name",
61
+ type: :string
62
+ }
63
+ ```
64
+
65
+ #### update_form_data
66
+
67
+ Forces a reload of the form.
68
+
69
+ ---
70
+
71
+ ### Class Methods
72
+
73
+ None yet.
74
+
75
+ ---
76
+
77
+ ### Accessors
78
+
79
+ None yet.
80
+
81
+ ## Contributing
82
+
83
+ 1. Fork it
84
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
85
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
86
+ 4. Make some specs pass
87
+ 5. Push to the branch (`git push origin my-new-feature`)
88
+ 6. Create new Pull Request
@@ -0,0 +1,127 @@
1
+ module ProMotion
2
+ class Form
3
+ attr_accessor :form_data
4
+
5
+ def initialize(form_data)
6
+ @form_data = form_data
7
+ end
8
+
9
+ def fields
10
+ example_fields
11
+ end
12
+
13
+ def example_fields
14
+ [
15
+ {
16
+ key: "email",
17
+ header: "Account"
18
+ },
19
+ "password",
20
+ "repeatPassword",
21
+ {
22
+ key: "name",
23
+ header: "Details",
24
+ "textField.autocapitalizationType" => UITextAutocapitalizationTypeWords
25
+ },
26
+ {
27
+ key: "gender",
28
+ options: [ "Male", "Female", "It's Complicated" ]
29
+ },
30
+ "dateOfBirth",
31
+ "profilePhoto",
32
+ "phone",
33
+ {
34
+ key: "country",
35
+ options: [ "us", "ca", "gb", "sa", "be"],
36
+ default: "us",
37
+ valueTransformer: ISO3166CountryValueTransformer.alloc.init
38
+ },
39
+ {
40
+ key: "language",
41
+ options: [ "English", "Spanish", "French", "Dutch" ],
42
+ default: "English",
43
+ cell: FXFormOptionPickerCell
44
+ },
45
+ {
46
+ key: "interests",
47
+ default: "Videogames",
48
+ options: [ "Videogames", "Animals", "Cooking" ]
49
+ },
50
+ {
51
+ key: "otherInterests",
52
+ type: :bitfield,
53
+ default: "InterestComputers",
54
+ options: [ "Computers", "Socializing", "Sports" ]
55
+ },
56
+ {
57
+ key: "about",
58
+ type: :longtext,
59
+ placeholder: "Text..."
60
+ },
61
+ {
62
+ header: "Plan",
63
+ key: "plan",
64
+ title: "",
65
+ placeholder: "Free",
66
+ options: [ "Micro", "Normal", "Maxi" ],
67
+ cell: FXFormOptionSegmentsCell
68
+ },
69
+ {
70
+ key: "termsAndConditions",
71
+ header: "Legal"
72
+ },
73
+ "privacyPolicy",
74
+ {
75
+ key: "agreedToTerms",
76
+ title: "I Agree To These Terms",
77
+ type: :option
78
+ },
79
+ {
80
+ title: "Submit",
81
+ header: "",
82
+ action: "submitRegistrationForm:"
83
+ },
84
+ ]
85
+ end
86
+
87
+ end
88
+ end
89
+
90
+ # static NSString *const key = @"key";
91
+ # static NSString *const FXFormFieldType = @"type";
92
+ # static NSString *const FXFormFieldClass = @"class";
93
+ # static NSString *const cell = @"cell";
94
+ # static NSString *const title = @"title";
95
+ # static NSString *const placeholder = @"placeholder";
96
+ # static NSString *const default = @"default";
97
+ # static NSString *const options = @"options";
98
+ # static NSString *const FXFormFieldTemplate = @"template";
99
+ # static NSString *const valueTransformer = @"valueTransformer";
100
+ # static NSString *const action = @"action";
101
+ # static NSString *const FXFormFieldSegue = @"segue";
102
+ # static NSString *const header = @"header";
103
+ # static NSString *const FXFormFieldFooter = @"footer";
104
+ # static NSString *const FXFormFieldInline = @"inline";
105
+ # static NSString *const FXFormFieldSortable = @"sortable";
106
+ # static NSString *const FXFormFieldViewController = @"viewController";
107
+
108
+ # static NSString *const FXFormFieldTypeDefault = @"default";
109
+ # static NSString *const FXFormFieldTypeLabel = @"label";
110
+ # static NSString *const FXFormFieldTypeText = @"text";
111
+ # static NSString *const :longtext = @"longtext";
112
+ # static NSString *const FXFormFieldTypeURL = @"url";
113
+ # static NSString *const FXFormFieldTypeEmail = @"email";
114
+ # static NSString *const FXFormFieldTypePhone = @"phone";
115
+ # static NSString *const FXFormFieldTypePassword = @"password";
116
+ # static NSString *const FXFormFieldTypeNumber = @"number";
117
+ # static NSString *const FXFormFieldTypeInteger = @"integer";
118
+ # static NSString *const FXFormFieldTypeUnsigned = @"unsigned";
119
+ # static NSString *const FXFormFieldTypeFloat = @"float";
120
+ # static NSString *const :bitfield = @"bitfield";
121
+ # static NSString *const FXFormFieldTypeBoolean = @"boolean";
122
+ # static NSString *const :option = @"option";
123
+ # static NSString *const FXFormFieldTypeDate = @"date";
124
+ # static NSString *const FXFormFieldTypeTime = @"time";
125
+ # static NSString *const FXFormFieldTypeDateTime = @"datetime";
126
+ # static NSString *const FXFormFieldTypeImage = @"image";
127
+
@@ -0,0 +1,10 @@
1
+ module ProMotion
2
+ class FormScreen < FXFormController
3
+ include ProMotion::ScreenModule
4
+
5
+ def screen_setup
6
+ self.formController.form = PM::Form.new(self.form_data)
7
+ end
8
+
9
+ end
10
+ end
@@ -0,0 +1,14 @@
1
+ # encoding: utf-8
2
+ unless defined?(Motion::Project::Config)
3
+ raise "ProMotion-form must be required within a RubyMotion project."
4
+ end
5
+
6
+ Motion::Project::App.setup do |app|
7
+ lib_dir_path = File.dirname(File.expand_path(__FILE__))
8
+ app.files << File.join(lib_dir_path, "ProMotion/form/form.rb")
9
+ app.files << File.join(lib_dir_path, "ProMotion/form/form_screen.rb")
10
+
11
+ app.pods do
12
+ pod "FXForms"
13
+ end
14
+ end
metadata ADDED
@@ -0,0 +1,105 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ProMotion-form
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Jamon Holmgren
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-08-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: ProMotion
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: motion-stump
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.3'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: motion-redgreen
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.1'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Adds form screen support to ProMotion.
70
+ email:
71
+ - jamon@clearsightstudio.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - README.md
77
+ - lib/ProMotion-form.rb
78
+ - lib/ProMotion/form/form.rb
79
+ - lib/ProMotion/form/form_screen.rb
80
+ homepage: https://github.com/clearsightstudio/ProMotion-form
81
+ licenses:
82
+ - MIT
83
+ metadata: {}
84
+ post_install_message:
85
+ rdoc_options: []
86
+ require_paths:
87
+ - lib
88
+ required_ruby_version: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ required_rubygems_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ requirements: []
99
+ rubyforge_project:
100
+ rubygems_version: 2.2.2
101
+ signing_key:
102
+ specification_version: 4
103
+ summary: Adds PM::FormScreen support to ProMotion, similar to Formotion but lighter.
104
+ test_files: []
105
+ has_rdoc: