ProMotion-formotion 0.0.9 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -19,7 +19,8 @@ Gem::Specification.new do |gem|
19
19
  gem.name = "ProMotion-formotion"
20
20
  gem.require_paths = ["lib"]
21
21
  gem.version = ProMotion::Formotion::VERSION
22
- gem.add_runtime_dependency("ProMotion", ">= 0.4.1")
23
- gem.add_runtime_dependency("formotion", ">= 1.1.4")
22
+ gem.add_runtime_dependency("ProMotion", ">= 1.1.0")
23
+ gem.add_runtime_dependency("formotion", ">= 1.6.0")
24
+ gem.add_runtime_dependency("motion-require", ">= 0.0.6")
24
25
  end
25
26
 
data/README.md CHANGED
@@ -4,6 +4,9 @@ ProMotion Formotion Screen
4
4
 
5
5
  Made a gem from the ProMotion formotion example at https://github.com/clearsightstudio/ProMotion#using-your-own-uiviewcontroller
6
6
 
7
+ Now with 100% more motion_require
8
+
9
+
7
10
  ## Setup
8
11
 
9
12
  Add this gem to your project, in Gemfile `gem 'ProMotion-formotion'`,
@@ -11,40 +14,40 @@ then `bundle update`
11
14
 
12
15
  Create a Formotion Screen with:
13
16
  ```ruby
14
- class MyFormotionScreen < ProMotion::Formotion::FormotionScreen
15
- title "Formotion Example"
16
-
17
+ class LoginScreen < PM::FormotionScreen
18
+
19
+ title "Login"
20
+
17
21
  def on_submit(_form)
18
- # Submit pressed
19
- if Data.saved?
20
- close(saved: true)
21
- end
22
+
22
23
  end
23
-
24
- def form_data
24
+
25
+ def table_data
25
26
  {
26
27
  sections: [{
27
- title: "Test",
28
+ title: "Credentials",
28
29
  rows: [{
29
- title: "Name",
30
- key: :name,
31
- placeholder: "tag name",
30
+ title: "Email",
31
+ key: :email,
32
+ placeholder: "example@kohactive.com",
32
33
  type: :string,
33
34
  auto_correction: :no,
34
35
  auto_capitalization: :none
35
36
  },
36
37
  {
37
- title: "Photo",
38
- key: :photo,
39
- placeholder: "photo name",
40
- type: :image,
38
+ title: "Password",
39
+ key: :password,
40
+ placeholder: "",
41
+ type: :string,
41
42
  auto_correction: :no,
42
43
  auto_capitalization: :none
43
44
  },
44
- ],
45
+ ]
45
46
  }]
46
47
  }
47
48
  end
48
49
 
50
+
51
+
49
52
  end
50
53
  ```
@@ -1,71 +1,89 @@
1
1
  module ProMotion
2
- module Formotion
3
-
4
- class FormotionScreen < ::Formotion::FormController # Can also be < UIViewController
5
- include ::ProMotion::ScreenModule # Not TableScreenModule since we're using Formotion for that
2
+ if defined?(Formotion) && defined?(Formotion::FormController)
3
+ class FormotionScreen < Formotion::FormController
4
+ include ProMotion::ScreenModule
6
5
 
7
- # Required functions for ProMotion to work properly
6
+ def self.new(args = {})
7
+ s = self.alloc.initWithStyle(UITableViewStyleGrouped)
8
+ s.on_create(args) if s.respond_to?(:on_create)
8
9
 
9
- def form_data
10
- {}
11
- end
10
+ if s.respond_to?(:table_data)
11
+ s.form = s.table_data
12
+ elsif args[:form]
13
+ s.form = args[:form]
14
+ else
15
+ PM.logger.error "PM::FormotionScreen requires a `table_data` method or form: to be passed into `new`."
16
+ end
17
+
18
+ t = s.title # Formotion kills the title when you request tableView.
19
+ s.tableView.allowsSelectionDuringEditing = true
20
+ s.title = t
12
21
 
13
- def self.new(args = {})
14
- s = self.alloc
15
- s.on_create(args) if s.respond_to?(:on_create)
16
- @local_form=s.form_data
17
- @local_form=::Formotion::Form.new(@local_form) if @local_form.class==Hash
18
- if s.respond_to?(:on_submit)
19
- @local_form.on_submit do |form|
20
- s.on_submit(form.render)
22
+ s.form.on_submit { |form| s.on_submit(form) if s.respond_to?(:on_submit) }
23
+
24
+ s
21
25
  end
22
- end
23
- s.initWithForm(@local_form)
24
- s.update_table_data if s.respond_to?(:update_table_data)
25
- s
26
- end
27
26
 
28
- def viewDidLoad
29
- super
30
- self.view_did_load if self.respond_to?(:view_did_load)
31
- end
27
+ # emulate the ProMotion table update for formotion
28
+ def update_table_data
29
+ self.form = table_data
30
+ self.form.controller = self
31
+ self.tableView.reloadData
32
+ end
32
33
 
33
- def viewWillAppear(animated)
34
- super
35
- self.view_will_appear(animated) if self.respond_to?("view_will_appear:")
36
- end
34
+ def screen_setup
35
+ self.title = self.class.send(:get_title)
36
+ end
37
37
 
38
- def viewDidAppear(animated)
39
- super
40
- self.view_did_appear(animated) if self.respond_to?("view_did_appear:")
41
- end
38
+ def loadView
39
+ super
40
+ self.send(:on_load) if self.respond_to?(:on_load)
41
+ end
42
42
 
43
- def viewWillDisappear(animated)
44
- self.view_will_disappear(animated) if self.respond_to?("view_will_disappear:")
45
- super
46
- end
43
+ def viewDidLoad
44
+ super
45
+ self.view_did_load if self.respond_to?(:view_did_load)
46
+ end
47
47
 
48
- def viewDidDisappear(animated)
49
- self.view_did_disappear(animated) if self.respond_to?("view_did_disappear:")
50
- super
51
- end
48
+ def viewWillAppear(animated)
49
+ super
50
+ self.view_will_appear(animated) if self.respond_to?("view_will_appear:")
51
+ end
52
52
 
53
- def shouldAutorotateToInterfaceOrientation(orientation)
54
- self.should_rotate(orientation)
55
- end
53
+ def viewDidAppear(animated)
54
+ super
55
+ self.view_did_appear(animated) if self.respond_to?("view_did_appear:")
56
+ end
56
57
 
57
- def shouldAutorotate
58
- self.should_autorotate
59
- end
58
+ def viewWillDisappear(animated)
59
+ self.view_will_disappear(animated) if self.respond_to?("view_will_disappear:")
60
+ super
61
+ end
60
62
 
61
- def willRotateToInterfaceOrientation(orientation, duration:duration)
62
- self.will_rotate(orientation, duration)
63
- end
63
+ def viewDidDisappear(animated)
64
+ if self.respond_to?("view_did_disappear:")
65
+ self.view_did_disappear(animated)
66
+ end
67
+ super
68
+ end
64
69
 
65
- def didRotateFromInterfaceOrientation(orientation)
66
- self.on_rotate
67
- end
68
- end
70
+ def shouldAutorotateToInterfaceOrientation(orientation)
71
+ self.should_rotate(orientation)
72
+ end
69
73
 
70
- end
74
+ def shouldAutorotate
75
+ self.should_autorotate
76
+ end
77
+
78
+ def willRotateToInterfaceOrientation(orientation, duration:duration)
79
+ self.will_rotate(orientation, duration)
80
+ end
81
+
82
+ def didRotateFromInterfaceOrientation(orientation)
83
+ self.on_rotate
84
+ end
85
+ end
86
+ else
87
+ throw "Unable to find Formotion"
88
+ end
71
89
  end
@@ -1,5 +1,5 @@
1
1
  module ProMotion
2
2
  module Formotion
3
- VERSION = "0.0.9" unless defined?(ProMotion::Formotion::VERSION)
3
+ VERSION = "0.1.1" unless defined?(ProMotion::Formotion::VERSION)
4
4
  end
5
5
  end
@@ -2,8 +2,8 @@ unless defined?(Motion::Project::Config)
2
2
  raise "This file must be required within a RubyMotion project Rakefile."
3
3
  end
4
4
 
5
+ require "formotion"
6
+ require "motion-require"
5
7
  require "ProMotion/formotion/version"
6
8
 
7
- Motion::Project::App.setup do |app|
8
- app.files = Dir.glob(File.join(File.dirname(__FILE__), 'ProMotion/**/*.rb')) | app.files
9
- end
9
+ Motion::Require.all(Dir.glob(File.expand_path('../ProMotion/**/*.rb', __FILE__)))
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ProMotion-formotion
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-01 00:00:00.000000000 Z
12
+ date: 2013-12-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ProMotion
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.4.1
21
+ version: 1.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
- version: 0.4.1
29
+ version: 1.1.0
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: formotion
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ! '>='
36
36
  - !ruby/object:Gem::Version
37
- version: 1.1.4
37
+ version: 1.6.0
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,23 @@ dependencies:
42
42
  requirements:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
- version: 1.1.4
45
+ version: 1.6.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: motion-require
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 0.0.6
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.0.6
46
62
  description: ProMotion-formotion bind ProMotion and formotion together.
47
63
  email:
48
64
  - stephan@rheoli.net