Class: Rpush::Reflections

Inherits:
Object
  • Object
show all
Defined in:
lib/rpush/reflection.rb

Defined Under Namespace

Classes: NoSuchReflectionError

Constant Summary collapse

REFLECTIONS =
[
  :apns_feedback, :notification_enqueued, :notification_delivered,
  :notification_failed, :notification_will_retry, :apns_connection_lost,
  :gcm_delivered_to_recipient, :gcm_failed_to_recipient, :gcm_canonical_id,
  :gcm_invalid_registration_id, :error, :apns_certificate_will_expire,
  :adm_canonical_id, :tcp_connection_lost, :ssl_certificate_will_expire
]
DEPRECATIONS =
{
  :apns_connection_lost => [:tcp_connection_lost, '4.1'],
  :apns_certificate_will_expire => [:ssl_certificate_will_expire, '4.1']
}

Instance Method Summary collapse

Instance Method Details

#__dispatch(reflection, *args) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/rpush/reflection.rb', line 35

def __dispatch(reflection, *args)
  reflection = reflection.to_sym

  unless REFLECTIONS.include?(reflection)
    raise NoSuchReflectionError, reflection
  end

  if DEPRECATIONS.key?(reflection)
    replacement, removal_version = DEPRECATIONS[reflection]
    Rpush::Deprecation.warn("#{reflection} is deprecated and will be removed in version #{removal_version}. Use #{replacement} instead.")
  end

  if reflections[reflection]
    reflections[reflection].call(*args)
  end
end