class Pure360::Client
Public Class Methods
new(params)
click to toggle source
# File lib/pure360/client.rb, line 7 def initialize(params) @params = {} @params[:endpoint] = URI.parse(params.fetch(:endpoint)) @params[:listName] = params.fetch(:list) @params[:accName] = params.fetch(:account) @params[:fullEmailValidationInd] = params.fetch(:full_email_validation, "N") @params[:doubleOptin] = params.fetch(:double_opt_in, "false") end
Public Instance Methods
subscribe(subscription_params)
click to toggle source
# File lib/pure360/client.rb, line 17 def subscribe(subscription_params) ensure_email!(subscription_params.fetch(:email)) response = post(subscription_params) response.body end
Private Instance Methods
ensure_email!(email)
click to toggle source
# File lib/pure360/client.rb, line 26 def ensure_email!(email) raise "Invalid Email" unless valid_email?(email) end
http()
click to toggle source
# File lib/pure360/client.rb, line 42 def http https = Net::HTTP.new(@params[:endpoint].host, @params[:endpoint].port) https.use_ssl = true https.verify_mode = OpenSSL::SSL::VERIFY_NONE https end
payload(subscription_args)
click to toggle source
# File lib/pure360/client.rb, line 50 def payload(subscription_args) @params.merge subscription_args end
post(subscription_params)
click to toggle source
# File lib/pure360/client.rb, line 36 def post(subscription_params) req = Net::HTTP::Post.new(@params[:endpoint].path) req.set_form_data(payload(subscription_params)) http.request(req) end
valid_email?(email)
click to toggle source
# File lib/pure360/client.rb, line 30 def valid_email?(email) return false if email.empty? or email.nil? true end