Sha256: 2b3788be897afaccf9d2181fe6211ecb3ad0cb17dc344a8b25bd42f777fb0c45

Contents?: true

Size: 1 KB

Versions: 3

Compression:

Stored size: 1 KB

Contents

require 'active_support/inflector'
require 'faraday'

require 'gecko-pusher/channel'
require 'gecko-pusher/version'

module Gecko
  module Pusher

    CHANNEL_TYPES = [
      :text, :map, :number, :rag, :rag_col, :line_chart,
      :pie_chart, :gecko_meter, :funnel, :bullet
    ]

    TEXT_NONE = 0
    TEXT_ALERT = 1
    TEXT_INFO = 2
    TEXT_TYPES = [TEXT_NONE, TEXT_ALERT, TEXT_INFO]

    class NotInitializedError < StandardError
    end

    class << self
      attr_accessor :api_key

      def channel(widget_type, widget_key)
        raise NotInitializedError if api_key.nil?
        raise ArgumentError.new("widget_key cannot be nil") if widget_key.nil?
        raise ArgumentError unless CHANNEL_TYPES.include?(widget_type)

        "Gecko::Pusher::Channel::#{widget_type.to_s.camelize}".constantize.new(widget_key)
      end

      def connection
        @connection ||= Faraday.new(:url => "https://push.geckoboard.com") do |builder|
          builder.adapter :net_http
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gecko-pusher-0.0.3 lib/gecko-pusher.rb
gecko-pusher-0.0.2 lib/gecko-pusher.rb
gecko-pusher-0.0.1 lib/gecko-pusher.rb