motion-takeoff 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b7becad65c8a7d0ea9ef00dbdbc2e27e97166643
4
- data.tar.gz: 2032db9db7424eb048da9792e87c31fff7a76ac5
3
+ metadata.gz: 02db886ae966ee9fa7985a23a2780157faad50c8
4
+ data.tar.gz: 4c4ca37df252faa76ef86fc066855af92b565896
5
5
  SHA512:
6
- metadata.gz: 8b32a72d25d07ddbb549d870be775e79f332ca9bb7d715d89d5a794b54e1fe07c685822e279f2c628732facc17f69099682f0f5331578131af5656e6e8d1cb05
7
- data.tar.gz: f83ac94768809e355bb6ab9cca6a999a0a9e9677f3df6c25d66349286b7058bad5e8048d9d8ee3e7bbd982427951ca526c5d8f6ccc460cfd7c27f858f07466d1
6
+ metadata.gz: ba5d2fae0185482be6827a3def58f881271c42fe7eaabc7ab39358ec6e072864294cdb7a8ec031a81dd6df3ce7484fd026009a247c476dcb180235cc8bec38ff
7
+ data.tar.gz: bf1083b3e406ee797c652c73be453e2a03c85cdf5c1210d9cd7ac6645de4514b8eb6310c53e2770a4efd3aec26a87bd6d49fddf9f5d60431cc60b4993deb36b0
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # motion-takeoff [![Build Status](https://travis-ci.org/MohawkApps/motion-takeoff.png)](https://travis-ci.org/MohawkApps/motion-takeoff) [![Code Climate](https://codeclimate.com/github/MohawkApps/motion-takeoff.png)](https://codeclimate.com/github/MohawkApps/motion-takeoff) [![Gem Version](https://badge.fury.io/rb/motion-takeoff.png)](http://badge.fury.io/rb/motion-takeoff)
2
2
 
3
+ [![Support via Gittip](https://rawgithub.com/twolfson/gittip-badge/0.1.0/dist/gittip.png)](https://www.gittip.com/markrickert/)
4
+
3
5
  A RubyMotion specific iOS gem for scheduling stuff. You can use motion-takeoff to display messages at certain launch counts and schedule local notifications. Currently, there are two modules in this gem: `Messages` & `Reminders`.
4
6
 
5
7
  The `Messages` module will allow you to schedule alerts to users at certain launch counts.
@@ -53,6 +55,14 @@ end
53
55
 
54
56
  The reminders module is a nice wrapper on `UILocalNotification` and makes it easy to schedule reminders to come back and use your app!
55
57
 
58
+ iOS 8 requires that you ask the user for permission to send notifications:
59
+
60
+ ```ruby
61
+ def application(application, didFinishLaunchingWithOptions:launchOptions)
62
+ Takeoff::Reminders.setup
63
+ end
64
+ ```
65
+
56
66
  You should always reset all local notifications when your app becomes active:
57
67
 
58
68
  ```ruby
@@ -71,7 +81,7 @@ def applicationDidEnterBackground(application)
71
81
  )
72
82
 
73
83
  Takeoff::Reminders.schedule(
74
- body: "Fires 10 seconds later.",
84
+ body: "Fires 10 seconds after the first notification.",
75
85
  fire_date: Time.now + 30 #Time object in the future
76
86
  )
77
87
  end
@@ -110,6 +120,3 @@ I'd like it to be able to be a multi-purpose tool for doing things at launch oth
110
120
  3. Commit your changes (`git commit -am 'Add some feature'`)
111
121
  4. Push to the branch (`git push origin my-new-feature`)
112
122
  5. Create new Pull Request
113
-
114
- ---
115
- [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/MohawkApps/motion-takeoff/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
@@ -1,60 +1,71 @@
1
1
  module Takeoff
2
2
  class Reminders
3
3
 
4
- def self.schedule (opts)
5
- raise "You must specify a :body" unless opts[:body]
6
- raise "You must specify a :fire_date" unless opts[:fire_date]
7
-
8
- opts = {
9
- action: nil,
10
- launch_image: nil,
11
- badge_number: 0,
12
- has_action: true,
13
- repeat: {
14
- calendar: nil,
15
- interval: 0
16
- },
17
- time_zone: NSTimeZone.defaultTimeZone,
18
- sound: UILocalNotificationDefaultSoundName,
19
- user_info: {}
20
-
21
- }.merge(opts)
22
-
23
- # Fix the repeat if they just send the interval.
24
- unless opts[:repeat].is_a? Hash
25
- opts[:repeat] = {
26
- calendar: NSCalendar.currentCalendar,
27
- interval: opts[:repeat]
28
- }
29
- end
30
- # Interpret the fire date to an NSDate class it they specified a number of seconds
31
- if opts[:fire_date].is_a? Fixnum
32
- opts[:fire_date] = NSDate.dateWithTimeIntervalSinceNow(opts[:fire_date])
4
+ class << self
5
+ def setup
6
+ if Device.ios_version >= "8.0"
7
+ types = UIUserNotificationTypeSound | UIUserNotificationTypeBadge | UIUserNotificationTypeAlert
8
+ notificationSettings = UIUserNotificationSettings.settingsForTypes(types, categories:nil)
9
+ UIApplication.sharedApplication.registerUserNotificationSettings(notificationSettings)
10
+ else
11
+ UIApplication.sharedApplication.registerForRemoteNotificationTypes((UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert))
12
+ end
33
13
  end
34
14
 
35
- notification = UILocalNotification.new.tap do |notif|
36
- notif.alertAction = opts[:action]
37
- notif.alertBody = opts[:body]
38
- notif.alertLaunchImage = opts[:launch_image]
39
- notif.applicationIconBadgeNumber = opts[:badge_number]
40
- notif.timeZone = opts[:time_zone]
41
- notif.fireDate = opts[:fire_date]
42
- notif.hasAction = opts[:has_action]
43
- notif.repeatCalendar = opts[:repeat][:calendar]
44
- notif.repeatInterval = opts[:repeat][:interval]
45
- notif.soundName = opts[:sound]
46
- notif.userInfo = opts[:user_info]
15
+ def schedule (opts)
16
+ raise "You must specify a :body" unless opts[:body]
17
+ raise "You must specify a :fire_date" unless opts[:fire_date]
18
+
19
+ opts = {
20
+ action: nil,
21
+ launch_image: nil,
22
+ badge_number: 0,
23
+ has_action: true,
24
+ repeat: {
25
+ calendar: nil,
26
+ interval: 0
27
+ },
28
+ time_zone: NSTimeZone.defaultTimeZone,
29
+ sound: UILocalNotificationDefaultSoundName,
30
+ user_info: {}
31
+
32
+ }.merge(opts)
33
+
34
+ # Fix the repeat if they just send the interval.
35
+ unless opts[:repeat].is_a? Hash
36
+ opts[:repeat] = {
37
+ calendar: NSCalendar.currentCalendar,
38
+ interval: opts[:repeat]
39
+ }
40
+ end
41
+ # Interpret the fire date to an NSDate class it they specified a number of seconds
42
+ if opts[:fire_date].is_a? Fixnum
43
+ opts[:fire_date] = NSDate.dateWithTimeIntervalSinceNow(opts[:fire_date])
44
+ end
45
+
46
+ notification = UILocalNotification.new.tap do |notif|
47
+ notif.alertAction = opts[:action]
48
+ notif.alertBody = opts[:body]
49
+ notif.alertLaunchImage = opts[:launch_image]
50
+ notif.applicationIconBadgeNumber = opts[:badge_number]
51
+ notif.timeZone = opts[:time_zone]
52
+ notif.fireDate = opts[:fire_date]
53
+ notif.hasAction = opts[:has_action]
54
+ notif.repeatCalendar = opts[:repeat][:calendar]
55
+ notif.repeatInterval = opts[:repeat][:interval]
56
+ notif.soundName = opts[:sound]
57
+ notif.userInfo = opts[:user_info]
58
+ end
59
+ UIApplication.sharedApplication.scheduleLocalNotification notification
47
60
  end
48
- UIApplication.sharedApplication.scheduleLocalNotification notification
49
- end
50
61
 
51
- def self.reset
52
- UIApplication.sharedApplication.tap do |app|
53
- app.applicationIconBadgeNumber = 0
54
- app.cancelAllLocalNotifications
62
+ def reset
63
+ UIApplication.sharedApplication.tap do |app|
64
+ app.applicationIconBadgeNumber = 0
65
+ app.cancelAllLocalNotifications
66
+ end
55
67
  end
56
68
  end
57
-
58
69
  end
59
70
  end
60
71
 
@@ -1,3 +1,3 @@
1
1
  module Takeoff
2
- VERSION = '0.0.5'
2
+ VERSION = '0.0.6'
3
3
  end
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: motion-takeoff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Rickert
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-09 00:00:00.000000000 Z
11
+ date: 2014-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bubble-wrap
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>'
31
+ - - ">"
32
32
  - !ruby/object:Gem::Version
33
33
  version: 1.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>'
38
+ - - ">"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 1.0.0
41
41
  description: A RubyMotion specific iOS gem for scheduling stuff.
@@ -60,20 +60,19 @@ require_paths:
60
60
  - lib
61
61
  required_ruby_version: !ruby/object:Gem::Requirement
62
62
  requirements:
63
- - - '>='
63
+ - - ">="
64
64
  - !ruby/object:Gem::Version
65
65
  version: '0'
66
66
  required_rubygems_version: !ruby/object:Gem::Requirement
67
67
  requirements:
68
- - - '>='
68
+ - - ">="
69
69
  - !ruby/object:Gem::Version
70
70
  version: '0'
71
71
  requirements: []
72
72
  rubyforge_project:
73
- rubygems_version: 2.0.3
73
+ rubygems_version: 2.2.0
74
74
  signing_key:
75
75
  specification_version: 4
76
76
  summary: A RubyMotion specific iOS gem for scheduling stuff. You can use motion-takeoff
77
77
  to display messages at certain launch counts and schedule local notifications.
78
78
  test_files: []
79
- has_rdoc: