class InsightExchange

Constants

VERSION

Attributes

api_token[RW]

Public Class Methods

new(api_token = ENV['INSIGHT_EXCHANGE_TOKEN']) click to toggle source
# File lib/insightexchange.rb, line 13
def initialize(api_token = ENV['INSIGHT_EXCHANGE_TOKEN'])
  self.api_token = api_token
end

Public Instance Methods

identify(email_address) click to toggle source
# File lib/insightexchange.rb, line 32
def identify(email_address)
  ensure_api_token!
  ensure_email_address!(email_address)

  self.class.post("/users.json", body: {
      api_token: api_token,
      user: {
          email: email_address
      }
  })
end
publish(email_address, insight_name, data = {}) click to toggle source
# File lib/insightexchange.rb, line 17
def publish(email_address, insight_name, data = {})
  ensure_api_token!
  ensure_insight_name!(insight_name)
  ensure_email_address!(email_address)

  self.class.post("/insights.json", body: {
      api_token: api_token,
      insight: {
        email: email_address,
        name: insight_name,
        data: data
      }
  })
end

Private Instance Methods

ensure_api_token!() click to toggle source
# File lib/insightexchange.rb, line 46
def ensure_api_token!
  if api_token.nil? || api_token.length == 0
    raise MissingTokenError.new('No API token was provided for InsightExchange, either through an ENV variable or the client initializer.')
  end
end
ensure_email_address!(email_address) click to toggle source
# File lib/insightexchange.rb, line 52
def ensure_email_address!(email_address)
  raise ArgumentError.new('missing email address') unless email_address && email_address.length > 1
end
ensure_insight_name!(insight_name) click to toggle source
# File lib/insightexchange.rb, line 56
def ensure_insight_name!(insight_name)
  raise ArgumentError.new('missing insight name') unless insight_name && insight_name.length > 1
end