Sha256: b8d1f4ac078e8ad9f79268f489ced848a94829d084ac3d95ab94b00ed0b457ec

Contents?: true

Size: 1.17 KB

Versions: 5

Compression:

Stored size: 1.17 KB

Contents

require 'message_bus'

module Lanes
    module API

        class PubSub

            def self.publish(channel, data)
                Lanes.logger.debug "publishing on: #{channel}"
                ::MessageBus.publish channel, data
            end

            def self.initialize(api=nil)
                #return unless Extensions.require_pub_sub?
                Lanes.config.get(:environment) do | env |
                    MessageBus.logger = Lanes.logger
                end

                require "oj"
                require_relative "updates"
                require 'message_bus'
                api.use MessageBus::Rack::Middleware if api

                if defined?(::PhusionPassenger)
                    PhusionPassenger.on_event(:starting_worker_process) do |forked|
                        MessageBus.after_fork if forked
                    end
                end

                Updates.relay!

                ::Lanes::API.routes.draw do
                    post '/file-change.json' do
                        ::Lanes::API::PubSub.publish("/file-change", data)
                        "OK"
                    end
                end

            end

        end

    end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
lanes-0.5.6 lib/lanes/api/pub_sub.rb
lanes-0.5.5 lib/lanes/api/pub_sub.rb
lanes-0.5.0 lib/lanes/api/pub_sub.rb
lanes-0.4.0 lib/lanes/api/pub_sub.rb
lanes-0.3.0 lib/lanes/api/pub_sub.rb