Sha256: a68482168d7f1f1ca390b88af495a5e82b9a1801b8057ac3d516c7da51d81a41

Contents?: true

Size: 681 Bytes

Versions: 3

Compression:

Stored size: 681 Bytes

Contents

module Ahoy
  module Stores
    class NatsStore < LogStore
      def log_visit(data)
        publish(visits_subject, data)
      end

      def log_event(data)
        publish(events_subject, data)
      end

      def publish(subject, data)
        client.publish(subject, data.to_json)
      end

      def client
        @client ||= begin
          require "nats/io/client"
          client = NATS::IO::Client.new
          client.connect(servers: (ENV["NATS_URL"] || "nats://127.0.0.1:4222").split(","))
          client
        end
      end

      def visits_subject
        "ahoy_visits"
      end

      def events_subject
        "ahoy_events"
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ahoy_matey-1.6.1 lib/ahoy/stores/nats_store.rb
ahoy_matey-1.6.0 lib/ahoy/stores/nats_store.rb
ahoy_matey-1.5.5 lib/ahoy/stores/nats_store.rb