ProMotion 0.4.0 → 0.4.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.
- data/.gitignore +1 -0
- data/README.md +77 -15
- metadata +39 -22
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -13,16 +13,34 @@ Typical app file structure:
|
|
13
13
|
|
14
14
|
app/
|
15
15
|
screens/
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
events/
|
17
|
+
list_events_screen.rb
|
18
|
+
show_event_screen.rb
|
19
|
+
edit_event_screen.rb
|
20
20
|
home_screen.rb
|
21
21
|
settings_screen.rb
|
22
22
|
models/
|
23
|
+
event.rb
|
23
24
|
views/
|
25
|
+
buttons/
|
26
|
+
save_event_button_view.rb
|
24
27
|
app_delegate.rb
|
25
28
|
|
29
|
+
## What's New in 0.4.0?
|
30
|
+
|
31
|
+
* Screens are now UIViewControllers (they used to contain UIViewControllers, but that got too funky) so you can do normal UIViewController stuff with them
|
32
|
+
* Screen functionality can also be inherited as a module in your own UIViewController, but you need to provide your own methods for viewDidLoad and whatnot.
|
33
|
+
* Tons of headlessCamelCaps methods are now properly_ruby_underscored (with an alias to the old name for compatibility)
|
34
|
+
* `open_screen` and `close_screen` can now just be `open` and `close` respectively
|
35
|
+
* Attempted to keep 100% compatibility with 0.3.x but no guarantees...report issues, please!
|
36
|
+
* Revamped the internal folder structure of the gem...more work on this to come
|
37
|
+
* Built in a few helpers that were external before, like `content_height(view)`
|
38
|
+
* More consistent calling of `on_load` (sometimes doesn't get called in 0.3.x)
|
39
|
+
* `fresh_start SomeScreen` is now `open_root_screen SomeScreen`
|
40
|
+
* Removed `set_view_controller` as we don't need it anymore
|
41
|
+
* Better documentation (still needs work), better error messages
|
42
|
+
* Deprecation warnings EVERYWHERE for older apps (upgrade already!)
|
43
|
+
|
26
44
|
## Usage
|
27
45
|
|
28
46
|
Loading your home screen:
|
@@ -164,17 +182,6 @@ class MainScreen < ProMotion::Screen
|
|
164
182
|
end
|
165
183
|
```
|
166
184
|
|
167
|
-
Use a custom view controller:
|
168
|
-
|
169
|
-
```ruby
|
170
|
-
def on_load
|
171
|
-
set_view_controller MyCustomViewController
|
172
|
-
|
173
|
-
# Note: on_appear will not fire when using a custom
|
174
|
-
# view controller.
|
175
|
-
end
|
176
|
-
```
|
177
|
-
|
178
185
|
The helper add_element takes any view object and adds it to the current view. You can also use
|
179
186
|
the helper ProMotion::ViewHelper.set_attributes(view, attributes) to do the same thing without adding
|
180
187
|
it to the current view. Screens include this helper by default.
|
@@ -245,6 +252,61 @@ your Rakefile and doing this:
|
|
245
252
|
]
|
246
253
|
```
|
247
254
|
|
255
|
+
## Using your own UIViewController or Formotion
|
256
|
+
|
257
|
+
Sometimes you want to inherit from a different UIViewController than that provided by ProMotion,
|
258
|
+
such as when using [Formotion](https://github.com/clayallsopp/formotion). RubyMotion doesn't currently allow us to override built-in methods
|
259
|
+
when including as a module, so there's a workaround for that.
|
260
|
+
|
261
|
+
```ruby
|
262
|
+
class EventsScreen < Formotion::FormController # Can also be < UIViewController
|
263
|
+
include ProMotion::ScreenModule # Not TableScreenModule since we're using Formotion for that
|
264
|
+
|
265
|
+
# Required functions for ProMotion to work properly
|
266
|
+
|
267
|
+
def viewDidLoad
|
268
|
+
super
|
269
|
+
self.view_did_load if self.respond_to?(:view_did_load)
|
270
|
+
end
|
271
|
+
|
272
|
+
def viewWillAppear(animated)
|
273
|
+
super
|
274
|
+
self.view_will_appear(animated) if self.respond_to?("view_will_appear:")
|
275
|
+
end
|
276
|
+
|
277
|
+
def viewDidAppear(animated)
|
278
|
+
super
|
279
|
+
self.view_did_appear(animated) if self.respond_to?("view_did_appear:")
|
280
|
+
end
|
281
|
+
|
282
|
+
def viewWillDisappear(animated)
|
283
|
+
self.view_will_disappear(animated) if self.respond_to?("view_will_disappear:")
|
284
|
+
super
|
285
|
+
end
|
286
|
+
|
287
|
+
def viewDidDisappear(animated)
|
288
|
+
self.view_did_disappear(animated) if self.respond_to?("view_did_disappear:")
|
289
|
+
super
|
290
|
+
end
|
291
|
+
|
292
|
+
def shouldAutorotateToInterfaceOrientation(orientation)
|
293
|
+
self.should_rotate(orientation)
|
294
|
+
end
|
295
|
+
|
296
|
+
def shouldAutorotate
|
297
|
+
self.should_autorotate
|
298
|
+
end
|
299
|
+
|
300
|
+
def willRotateToInterfaceOrientation(orientation, duration:duration)
|
301
|
+
self.will_rotate(orientation, duration)
|
302
|
+
end
|
303
|
+
|
304
|
+
def didRotateFromInterfaceOrientation(orientation)
|
305
|
+
self.on_rotate
|
306
|
+
end
|
307
|
+
end
|
308
|
+
```
|
309
|
+
|
248
310
|
# Reference
|
249
311
|
(not comprehensive yet...working on this)
|
250
312
|
|
metadata
CHANGED
@@ -1,27 +1,37 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ProMotion
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 13
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 4
|
9
|
+
- 1
|
10
|
+
version: 0.4.1
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Jamon Holmgren
|
9
14
|
- Silas Matson
|
10
15
|
- ClearSight Studio
|
11
16
|
autorequire:
|
12
17
|
bindir: bin
|
13
18
|
cert_chain: []
|
14
|
-
|
19
|
+
|
20
|
+
date: 2013-02-21 00:00:00 Z
|
15
21
|
dependencies: []
|
22
|
+
|
16
23
|
description: ProMotion is a new way to easily build RubyMotion iOS apps.
|
17
|
-
email:
|
24
|
+
email:
|
18
25
|
- jamon@clearsightstudio.com
|
19
26
|
- silas@clearsightstudio.com
|
20
27
|
- contact@clearsightstudio.com
|
21
28
|
executables: []
|
29
|
+
|
22
30
|
extensions: []
|
31
|
+
|
23
32
|
extra_rdoc_files: []
|
24
|
-
|
33
|
+
|
34
|
+
files:
|
25
35
|
- .gitignore
|
26
36
|
- .repl_history
|
27
37
|
- Gemfile
|
@@ -60,29 +70,36 @@ files:
|
|
60
70
|
- lib/ProMotion/version.rb
|
61
71
|
homepage: https://github.com/clearsightstudio/ProMotion
|
62
72
|
licenses: []
|
73
|
+
|
63
74
|
post_install_message:
|
64
75
|
rdoc_options: []
|
65
|
-
|
76
|
+
|
77
|
+
require_paths:
|
66
78
|
- lib
|
67
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
79
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
68
80
|
none: false
|
69
|
-
requirements:
|
70
|
-
- -
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
|
73
|
-
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
hash: 3
|
85
|
+
segments:
|
86
|
+
- 0
|
87
|
+
version: "0"
|
88
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
89
|
none: false
|
75
|
-
requirements:
|
76
|
-
- -
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
|
90
|
+
requirements:
|
91
|
+
- - ">="
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
hash: 3
|
94
|
+
segments:
|
95
|
+
- 0
|
96
|
+
version: "0"
|
79
97
|
requirements: []
|
98
|
+
|
80
99
|
rubyforge_project:
|
81
100
|
rubygems_version: 1.8.24
|
82
101
|
signing_key:
|
83
102
|
specification_version: 3
|
84
|
-
summary: ProMotion is a new way to organize RubyMotion apps. Instead of dealing with
|
85
|
-
UIViewControllers, you work with Screens. Screens are a logical way to think of
|
86
|
-
your app and include a ton of great utilities to make iOS development more like
|
87
|
-
Ruby and less like Objective-C.
|
103
|
+
summary: ProMotion is a new way to organize RubyMotion apps. Instead of dealing with UIViewControllers, you work with Screens. Screens are a logical way to think of your app and include a ton of great utilities to make iOS development more like Ruby and less like Objective-C.
|
88
104
|
test_files: []
|
105
|
+
|