Class: MotionPaddle

Inherits:
Object
  • Object
show all
Defined in:
lib/motion-paddle/paddle_setup.rb

Class Method Summary collapse

Class Method Details

.activated(note) ⇒ Object

internal



227
228
229
# File 'lib/motion-paddle/paddle_setup.rb', line 227

def activated(note)
  call_listeners :activated, note
end

.activated?Boolean



188
189
190
# File 'lib/motion-paddle/paddle_setup.rb', line 188

def activated?
  enabled? && paddle_instance.productActivated
end

.activated_emailObject



204
205
206
# File 'lib/motion-paddle/paddle_setup.rb', line 204

def activated_email
  enabled? && paddle_instance.activatedEmail
end

.activated_licence_codeObject Also known as: activated_license_code



198
199
200
# File 'lib/motion-paddle/paddle_setup.rb', line 198

def activated_licence_code
  enabled? && paddle_instance.activatedLicenceCode
end

.api_keyObject



23
24
25
# File 'lib/motion-paddle/paddle_setup.rb', line 23

def api_key
  self.plist['api_key']
end

.call_listeners(name, *args) ⇒ Object

internal



221
222
223
224
# File 'lib/motion-paddle/paddle_setup.rb', line 221

def call_listeners(name, *args)
  @listeners ||= {}
  @listeners[name.to_sym].each { |block| block.call(name.to_sym, *args) } if @listeners.has_key?(name.to_sym)
end

.can_force_exit=(can_force_exit) ⇒ Object



73
74
75
# File 'lib/motion-paddle/paddle_setup.rb', line 73

def can_force_exit=(can_force_exit)
  enabled? && paddle_instance.setCanForceExit(can_force_exit)
end

.can_force_exit?Boolean



69
70
71
# File 'lib/motion-paddle/paddle_setup.rb', line 69

def can_force_exit?
  enabled? && paddle_instance.canForceExit
end

.continue(note) ⇒ Object

internal



232
233
234
# File 'lib/motion-paddle/paddle_setup.rb', line 232

def continue(note)
  call_listeners :continue, note
end

.currencyObject



35
36
37
# File 'lib/motion-paddle/paddle_setup.rb', line 35

def currency
  self.plist['currency']
end

.current_priceObject



27
28
29
# File 'lib/motion-paddle/paddle_setup.rb', line 27

def current_price
  self.plist['current_price']
end

.deactivate_licenceObject Also known as: deactivate_license



208
209
210
# File 'lib/motion-paddle/paddle_setup.rb', line 208

def deactivate_licence
  enabled? && paddle_instance.deactivateLicence
end

.dev_nameObject



31
32
33
# File 'lib/motion-paddle/paddle_setup.rb', line 31

def dev_name
  self.plist['dev_name']
end

.enabled?Boolean



3
4
5
# File 'lib/motion-paddle/paddle_setup.rb', line 3

def enabled?
  (NSClassFromString('Paddle')!=nil)
end

.has_tracking_started=(has_tracking_started) ⇒ Object



89
90
91
# File 'lib/motion-paddle/paddle_setup.rb', line 89

def has_tracking_started=(has_tracking_started)
  enabled? && paddle_instance.setHasTrackingStarted(has_tracking_started)
end

.has_tracking_started?Boolean



85
86
87
# File 'lib/motion-paddle/paddle_setup.rb', line 85

def has_tracking_started?
  enabled? && paddle_instance.hasTrackingStarted
end

.imageObject



39
40
41
# File 'lib/motion-paddle/paddle_setup.rb', line 39

def image
  self.plist['image']
end

.licenceDeactivated(deactivated, message: deactivateMessage) ⇒ Object

internal



237
238
239
# File 'lib/motion-paddle/paddle_setup.rb', line 237

def licenceDeactivated(deactivated, message: deactivateMessage)
  call_listeners :deactivated, deactivated, deactivateMessage
end

.listen(*names, &block) ⇒ Object



147
148
149
150
151
152
153
154
# File 'lib/motion-paddle/paddle_setup.rb', line 147

def listen(*names, &block)
  return if block.nil?
  @listeners ||= {}
  names.each { |name|
    @listeners[name.to_sym] ||= []
    @listeners[name.to_sym] << block
  }
end

.paddle_instanceObject



7
8
9
# File 'lib/motion-paddle/paddle_setup.rb', line 7

def paddle_instance
  enabled? && Paddle.sharedInstance
end

.paddleDidFailWithError(error) ⇒ Object

internal



242
243
244
# File 'lib/motion-paddle/paddle_setup.rb', line 242

def paddleDidFailWithError(error)
  call_listeners :error, error
end

.plistObject

internal



215
216
217
218
# File 'lib/motion-paddle/paddle_setup.rb', line 215

def plist
  (@plist = NSBundle.mainBundle.objectForInfoDictionaryKey("MotionPaddle_#{NSBundle.mainBundle.infoDictionary['CFBundleShortVersionString']}")) && (@plist = @plist.first) unless @plist
  @plist
end

.product_idObject



15
16
17
# File 'lib/motion-paddle/paddle_setup.rb', line 15

def product_id
  self.plist['product_id']
end

.product_imageObject



55
56
57
# File 'lib/motion-paddle/paddle_setup.rb', line 55

def product_image
  self.plist['product_image']
end

.product_nameObject



43
44
45
# File 'lib/motion-paddle/paddle_setup.rb', line 43

def product_name
  self.plist['product_name']
end

.psk_instanceObject



11
12
13
# File 'lib/motion-paddle/paddle_setup.rb', line 11

def psk_instance
  enabled? && PaddleStoreKit.sharedInstance
end

.psk_purchase_product(product_id, &block) ⇒ Object



176
177
178
179
180
181
182
# File 'lib/motion-paddle/paddle_setup.rb', line 176

def psk_purchase_product(product_id, &block)
  return unless enabled?
  psk = psk_instance
  psk.setDelegate(self)
  psk.purchaseProduct(product_id)
  listen(:psk_purchase, &block)
end

.psk_receipt_for_product_id(product_id) ⇒ Object



121
122
123
# File 'lib/motion-paddle/paddle_setup.rb', line 121

def psk_receipt_for_product_id(product_id)
  enabled? && psk_instance.receiptForProductId(product_id)
end

.psk_show(product_ids = nil, &block) ⇒ Object



156
157
158
159
160
161
162
163
164
165
166
# File 'lib/motion-paddle/paddle_setup.rb', line 156

def psk_show(product_ids = nil, &block)
  return unless enabled?
  psk = psk_instance
  psk.setDelegate(self)
  if product_ids && !product_ids.empty?
    psk.showStoreViewForProductIds(product_ids)
  else
    psk.showStoreView
  end
  listen(:psk_purchase, &block)
end

.psk_show_product(product_id, &block) ⇒ Object



168
169
170
171
172
173
174
# File 'lib/motion-paddle/paddle_setup.rb', line 168

def psk_show_product(product_id, &block)
return unless enabled?
psk = psk_instance
psk.setDelegate(self)
psk.showProduct(product_id)
listen(:psk_purchase, &block)
end

.psk_valid_receiptsObject



117
118
119
# File 'lib/motion-paddle/paddle_setup.rb', line 117

def psk_valid_receipts
  enabled? && psk_instance.validReceipts
end

.PSKDidCancelObject

internal



257
258
259
# File 'lib/motion-paddle/paddle_setup.rb', line 257

def PSKDidCancel
  call_listeners :psk_cancel
end

.PSKDidFailWithError(error) ⇒ Object

internal



252
253
254
# File 'lib/motion-paddle/paddle_setup.rb', line 252

def PSKDidFailWithError(error)
  call_listeners :psk_error, error
end

.PSKProductPurchased(transactionReceipt) ⇒ Object

internal



247
248
249
# File 'lib/motion-paddle/paddle_setup.rb', line 247

def PSKProductPurchased(transactionReceipt)
  call_listeners :psk_purchase, transactionReceipt
end

.setup(window = nil, &block) ⇒ Object



125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'lib/motion-paddle/paddle_setup.rb', line 125

def setup(window = nil, &block)
  return unless enabled?
  return unless self.plist
  paddle = paddle_instance
  paddle.setProductId(product_id)
  paddle.setVendorId(vendor_id)
  paddle.setApiKey(api_key)
  paddle.startLicensing({ KPADCurrentPrice  => current_price,
                          KPADDevName       => dev_name,
                          KPADCurrency      => currency,
                          KPADImage         => image,
                          KPADProductName   => product_name,
                          KPADTrialDuration => trial_duration,
                          KPADTrialText     => trial_text,
                          KPADProductImage  => product_image }, timeTrial: time_trial?, withWindow: window)
  NSNotificationCenter.defaultCenter.addObserver(self, selector: 'activated:', name: KPADActivated, object: nil)
  NSNotificationCenter.defaultCenter.addObserver(self, selector: 'continue:', name: KPADContinue, object: nil)
  paddle.setDelegate(self)
  # block.call unless block.nil?
  listen(:activated, :continue, &block)
end

.show_licencingObject Also known as: show_licensing



192
193
194
# File 'lib/motion-paddle/paddle_setup.rb', line 192

def show_licencing
  enabled? && paddle_instance.showLicencing
end

.time_trial=(time_trial) ⇒ Object



64
65
66
67
# File 'lib/motion-paddle/paddle_setup.rb', line 64

def time_trial=(time_trial)
  paddle_instance.setIsTimeTrial(time_trial) if enabled?
  @time_trial = time_trial
end

.time_trial?Boolean



59
60
61
62
# File 'lib/motion-paddle/paddle_setup.rb', line 59

def time_trial?
  @time_trial = self.plist['time_trial'] && self.plist['time_trial'] != 0 && self.plist['time_trial'] != '0' if @time_trial.nil?
  @time_trial
end

.trial_days_leftObject



184
185
186
# File 'lib/motion-paddle/paddle_setup.rb', line 184

def trial_days_left
  enabled? && paddle_instance.daysRemainingOnTrial
end

.trial_durationObject



47
48
49
# File 'lib/motion-paddle/paddle_setup.rb', line 47

def trial_duration
  self.plist['trial_duration']
end

.trial_textObject



51
52
53
# File 'lib/motion-paddle/paddle_setup.rb', line 51

def trial_text
  self.plist['trial_text']
end

.vendor_idObject



19
20
21
# File 'lib/motion-paddle/paddle_setup.rb', line 19

def vendor_id
  self.plist['vendor_id']
end

.will_continue_at_trial_end=(will_continue_at_trial_end) ⇒ Object



113
114
115
# File 'lib/motion-paddle/paddle_setup.rb', line 113

def will_continue_at_trial_end=(will_continue_at_trial_end)
  enabled? && paddle_instance.setWillContinueAtTrialEnd(will_continue_at_trial_end)
end

.will_continue_at_trial_end?Boolean



109
110
111
# File 'lib/motion-paddle/paddle_setup.rb', line 109

def will_continue_at_trial_end?
  enabled? && paddle_instance.willContinueAtTrialEnd
end

.will_show_activation_alert=(will_show_activation_alert) ⇒ Object



105
106
107
# File 'lib/motion-paddle/paddle_setup.rb', line 105

def will_show_activation_alert=(will_show_activation_alert)
  enabled? && paddle_instance.setWillShowActivationAlert(will_show_activation_alert)
end

.will_show_activation_alert?Boolean



101
102
103
# File 'lib/motion-paddle/paddle_setup.rb', line 101

def will_show_activation_alert?
  enabled? && paddle_instance.willShowActivationAlert
end

.will_show_licensing_window=(will_show_licensing_window) ⇒ Object



81
82
83
# File 'lib/motion-paddle/paddle_setup.rb', line 81

def will_show_licensing_window=(will_show_licensing_window)
  enabled? && paddle_instance.setWillShowLicensingWindow(will_show_licensing_window)
end

.will_show_licensing_window?Boolean



77
78
79
# File 'lib/motion-paddle/paddle_setup.rb', line 77

def will_show_licensing_window?
  enabled? && paddle_instance.willShowLicensingWindow
end

.will_simplify_views=(will_simplify_views) ⇒ Object



97
98
99
# File 'lib/motion-paddle/paddle_setup.rb', line 97

def will_simplify_views=(will_simplify_views)
  enabled? && paddle_instance.setWillSimplifyViews(will_simplify_views)
end

.will_simplify_views?Boolean



93
94
95
# File 'lib/motion-paddle/paddle_setup.rb', line 93

def will_simplify_views?
  enabled? && paddle_instance.willSimplifyViews
end