class Factual::Write::Base

Public Class Methods

new(api, params) click to toggle source
# File lib/factual/write/base.rb, line 4
def initialize(api, params)
  @api = api
  @params = params
  @params_on_path = [:table, :factual_id]
end

Public Instance Methods

body() click to toggle source
# File lib/factual/write/base.rb, line 14
def body
  keys = @params.keys.reject { |key| @params_on_path.include?(key) }
  keys.map { |key| "#{key}=#{CGI.escape(stringify(@params[key]))}" }.join("&")
end
path() click to toggle source
# File lib/factual/write/base.rb, line 10
def path
  raise "Virtual method called"
end
write() click to toggle source
# File lib/factual/write/base.rb, line 19
def write
  @api.post(self)
end

Private Instance Methods

form_value(args) click to toggle source
# File lib/factual/write/base.rb, line 29
def form_value(args)
  args = args.map { |arg| arg.is_a?(String) ? arg.strip : arg }
  args.length == 1 ? args.first : args.join(',')
end
stringify(value) click to toggle source
# File lib/factual/write/base.rb, line 25
def stringify(value)
  value.class == Hash ? value.to_json : value.to_s
end