Module: ActionPushWeb

Defined in:
lib/action_push_web.rb,
lib/action_push_web/pool.rb,
lib/action_push_web/engine.rb,
lib/action_push_web/errors.rb,
lib/action_push_web/pusher.rb,
lib/action_push_web/version.rb,
lib/action_push_web/vapid_key.rb,
lib/action_push_web/notification.rb,
lib/action_push_web/payload_encryption.rb,
app/models/action_push_web/subscription.rb,
lib/action_push_web/vapid_key_generator.rb,
app/jobs/action_push_web/notification_job.rb,
lib/action_push_web/subscription_notification.rb,
app/helpers/action_push_web/application_helper.rb,
app/controllers/action_push_web/subscriptions_controller.rb

Defined Under Namespace

Modules: ApplicationHelper Classes: Engine, InstallGenerator, Notification, NotificationJob, PayloadEncryption, PayloadTooLargeError, Pool, PushServiceError, Pusher, ResponseError, Subscription, SubscriptionNotification, SubscriptionsController, TokenError, TooManyRequestsError, UnauthorizedError, VapidKey, VapidKeyGenerator

Constant Summary collapse

VERSION =
"0.3.0"

Class Method Summary collapse

Class Method Details

.config_for(application) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/action_push_web.rb', line 23

def self.config_for(application)
  platform_config = Rails.application.config_for(:push)[:web]
  raise "ActionPushWeb: 'web' platform is not configured" unless platform_config.present?

  if application.present?
    notification_config = platform_config.fetch(application.to_sym, {})
    platform_config.fetch(:application, {}).merge(notification_config)
  else
    platform_config
  end
end

.poolObject



15
16
17
# File 'lib/action_push_web.rb', line 15

def self.pool
  @pool ||= Pool.new
end

.pool=(pool) ⇒ Object



19
20
21
# File 'lib/action_push_web.rb', line 19

def self.pool=(pool)
  @pool = pool
end

.push(notification) ⇒ Object



35
36
37
# File 'lib/action_push_web.rb', line 35

def self.push(notification)
  pool.enqueue(notification, config: self.config_for(notification.application))
end