motion-alert 0.1.1 → 0.1.2

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: 22b3d7db8129c6b046fdd95ffd4c36a73521f141
4
- data.tar.gz: 963319f14db7c36da75d2c413e9927cc2679934b
3
+ metadata.gz: b501540738a246105b52baa7b52baf7271be567d
4
+ data.tar.gz: 1a82b0b367074926040b30ce2e20889109ddeb97
5
5
  SHA512:
6
- metadata.gz: 5e7a56b0a7d1d95e0b089f116e5e06e9a5ba3dcd5247cdc5ed4cfe1a1b98a46e3ca937fa5a8bb530332319866cc337bfe1fc4c2f93bb3d96f7a62d850b8953dd
7
- data.tar.gz: bb8d90f0964e80037a71b94b24869a0960f0908e34a9c83f62c0ca4be79901e983d40948afa013cb07d15a7eb77fecdb4275f8b700f9bf7678c91c15c7e79566
6
+ metadata.gz: 5ed39451a5e97e523fef53636c5587c494a9a6f962c9d2a06dbb98e867af3c5918fdd18b297b0fa9997ac9c8340e1b6f1d807ee2640afd1701daffeb70273cf4
7
+ data.tar.gz: 8475263610ca21df2e3a04e0a42ca5687c8c9017533a82edd99efc17c153924e9b01e19ba78887e2273d5d011931c4a84399aed98f696915eadc70c8e750e9df
data/README.md CHANGED
@@ -26,9 +26,9 @@ Or install it yourself as:
26
26
  ## Usage
27
27
 
28
28
  def show_alert
29
- Motion::Alert.new({title: "Alert!", message:"message"}).tap do |a|
30
- a.add_action("OK", Proc.new { puts 'OK!' })
31
- a.add_action("Cancel", Proc.new { puts 'Cancel!' })
29
+ Motion::Alert.new(title: "Alert!", message: "message").tap do |a|
30
+ a.actions.add("OK", Proc.new { puts 'OK!' })
31
+ a.actions.add("Cancel")
32
32
  a.show
33
33
  end
34
34
  end
@@ -2,9 +2,15 @@ module Motion
2
2
  class Action
3
3
  attr_accessor :title, :action
4
4
 
5
- def initialize(title, action)
5
+ def initialize(title, action=nil)
6
6
  self.title = title
7
7
  self.action = action
8
8
  end
9
+
10
+ def choose
11
+ if action != nil
12
+ action.call
13
+ end
14
+ end
9
15
  end
10
16
  end
@@ -13,52 +13,62 @@ module Motion
13
13
  instance.tap do |i|
14
14
  i.title = options.fetch(:title, nil)
15
15
  i.message = options.fetch(:message, nil)
16
- i.actions = []
16
+ i.actions = Option.new
17
17
  end
18
18
  end
19
19
 
20
20
  def add_action(button_title, action_proc)
21
- self.actions << Action.new(button_title, action_proc)
21
+ puts "Deprecated: use actions.add will be removed in 0.3.0"
22
+ actions.add(button_title, &action_proc)
22
23
  end
23
24
 
24
25
  def show
25
- if can_show_controller?
26
- root_controller.presentViewController(alert_view_controller, animated: false, completion: nil)
27
- else
28
- alert_view.delegate = UIApplication.sharedApplication.delegate
29
- alert_view.show
30
- end
26
+ show_as_controller || show_as_alert
31
27
  end
32
28
 
33
29
  def selected(index)
34
- if action = self.actions[index].action
35
- action.call
36
- end
30
+ actions[index].choose
37
31
  end
38
32
 
39
33
  private
40
34
 
41
- def alert_view_controller
42
- alert_view_controller =
43
- UIAlertController.alertControllerWithTitle(
44
- title,
45
- message: message,
46
- preferredStyle: UIAlertControllerStyleAlert
47
- )
48
- self.actions.each do |a|
49
- alert_action = UIAlertAction.actionWithTitle(
50
- a.title,
51
- style: UIAlertActionStyleDefault,
52
- handler: ->(arg) { a.action.call }
53
- )
54
- alert_view_controller.addAction(alert_action)
35
+
36
+ def show_as_controller
37
+ return nil if !can_show_controller?
38
+
39
+ alert_controller.tap do |alert|
40
+ self.actions.actions.each do |a|
41
+ alert_action = UIAlertAction.actionWithTitle(
42
+ a.title,
43
+ style: UIAlertActionStyleDefault,
44
+ handler: ->(arg) { a.action.call }
45
+ )
46
+ alert.addAction(alert_action)
47
+ end
48
+
49
+ root_controller.presentViewController(alert, animated: false, completion: nil)
55
50
  end
51
+ end
56
52
 
57
- alert_view_controller
53
+ def show_as_alert
54
+ alert_view.tap do |alert|
55
+ self.actions.actions.each do |a|
56
+ alert.addButtonWithTitle(a.title)
57
+ end
58
+ alert.show
59
+ end
60
+ end
61
+
62
+ def alert_controller
63
+ UIAlertController.alertControllerWithTitle(
64
+ title,
65
+ message: message,
66
+ preferredStyle: UIAlertControllerStyleAlert
67
+ )
58
68
  end
59
69
 
60
70
  def alert_view
61
- alert_view = UIAlertView.alloc.initWithTitle(
71
+ UIAlertView.alloc.initWithTitle(
62
72
  title,
63
73
  message: message,
64
74
  delegate: UIApplication.sharedApplication.delegate,
@@ -66,11 +76,6 @@ module Motion
66
76
  otherButtonTitles:
67
77
  nil
68
78
  )
69
- self.actions.each do |a|
70
- alert_view.addButtonWithTitle(a.title)
71
- end
72
-
73
- alert_view
74
79
  end
75
80
 
76
81
  def can_show_controller?
@@ -0,0 +1,24 @@
1
+ module Motion
2
+ class Option
3
+ attr_accessor :actions
4
+ def initialize
5
+ self.actions = []
6
+ end
7
+
8
+ def add(text, &block)
9
+ actions << Action.new(text, block)
10
+ end
11
+
12
+ def [](index)
13
+ actions[index]
14
+ end
15
+
16
+ def count
17
+ actions.count
18
+ end
19
+
20
+ def first
21
+ actions.first
22
+ end
23
+ end
24
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: motion-alert
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Larrabee
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-02 00:00:00.000000000 Z
11
+ date: 2015-02-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -50,6 +50,7 @@ files:
50
50
  - lib/project/app_delegate.rb
51
51
  - lib/project/motion_action.rb
52
52
  - lib/project/motion_alert.rb
53
+ - lib/project/motion_option.rb
53
54
  homepage: https://github.com/squidpunch/motion-alert
54
55
  licenses:
55
56
  - MIT