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