Sha256: 68c0a4328dad19e51f615a435f4b88c559ad9cd838329ef4480b3f2054ef52aa
Contents?: true
Size: 1.49 KB
Versions: 4
Compression:
Stored size: 1.49 KB
Contents
module Rpush def self.reflect yield reflections if block_given? end def self.reflections @reflections ||= Reflections.new end class Reflections class NoSuchReflectionError < StandardError; end REFLECTIONS = [ :apns_feedback, :notification_enqueued, :notification_delivered, :notification_failed, :notification_will_retry, :gcm_delivered_to_recipient, :gcm_failed_to_recipient, :gcm_canonical_id, :gcm_invalid_registration_id, :error, :adm_canonical_id, :adm_failed_to_recipient, :tcp_connection_lost, :ssl_certificate_will_expire, :notification_id_will_retry, :notification_id_failed ] DEPRECATIONS = {} REFLECTIONS.each do |reflection| class_eval(<<-RUBY, __FILE__, __LINE__) def #{reflection}(*args, &blk) raise "block required" unless block_given? reflections[:#{reflection}] = blk end RUBY end def __dispatch(reflection, *args) reflection = reflection.to_sym unless REFLECTIONS.include?(reflection) fail 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 reflections[reflection].call(*args) if reflections[reflection] end private def reflections @reflections ||= {} end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
rpush-2.0.0-java | lib/rpush/reflection.rb |
rpush-2.0.0 | lib/rpush/reflection.rb |
rpush-2.0.0.rc1-java | lib/rpush/reflection.rb |
rpush-2.0.0.rc1 | lib/rpush/reflection.rb |