Module: Hanami::Events::CloudPubsub::Integration::Setup
- Defined in:
- lib/hanami/events/cloud_pubsub/integration.rb
Overview
Helpers use to setup all integration with hanami
Class Method Summary collapse
- .add_configuration_helpers ⇒ Object
- .hook_into_all ⇒ Object
- .register_events_adapter ⇒ Object
- .register_hanami_component ⇒ Object
- .setup ⇒ Object
Class Method Details
.add_configuration_helpers ⇒ Object
56 57 58 59 60 61 |
# File 'lib/hanami/events/cloud_pubsub/integration.rb', line 56 def add_configuration_helpers require 'hanami/utils/load_paths' require 'hanami/configuration' ::Hanami::Configuration.include(Integration::Configuration) ::Hanami.extend Integration::EasyAccess end |
.hook_into_all ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/hanami/events/cloud_pubsub/integration.rb', line 44 def hook_into_all require 'hanami/components' # Unfortunately, hanami does not provide a way to add the component # requirements easily, so we take the old requirements and append 'events' requirements_for_all = ::Hanami::Components.component('all').send(:requirements) ::Hanami::Components.register 'all' do requires(*requirements_for_all, 'events') resolve { true } end end |
.register_events_adapter ⇒ Object
18 19 20 21 22 23 |
# File 'lib/hanami/events/cloud_pubsub/integration.rb', line 18 def register_events_adapter ::Hanami::Events::Adapter.register(:cloud_pubsub) do require 'hanami/events/adapter/cloud_pubsub' ::Hanami::Events::Adapter::CloudPubsub end end |
.register_hanami_component ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/hanami/events/cloud_pubsub/integration.rb', line 25 def register_hanami_component ::Hanami::Components.register 'events' do requires 'logger', 'code' prepare { require 'hanami/events/cloud_pubsub' } resolve do |conf| CloudPubsub.configure do |config| conf.cloud_pubsub.each { |blk| blk.call(config) } end require 'google/cloud/pubsub' opts = { pubsub: Google::Cloud::Pubsub.new, logger: Hanami::Components['logger'] } ::Hanami::Events.initialize(:cloud_pubsub, **opts) end end end |
.setup ⇒ Object
11 12 13 14 15 16 |
# File 'lib/hanami/events/cloud_pubsub/integration.rb', line 11 def setup register_events_adapter register_hanami_component hook_into_all add_configuration_helpers end |