class Lipstick::Api::Response

Constants

CODES

Attributes

code[R]
message[R]

Public Class Methods

csv_field(*args) click to toggle source
# File lib/lipstick/api/response.rb, line 110
def csv_field(*args)
  @csv_fields ||= []
  @csv_fields = @csv_fields + args
end
int_csv_field(*args) click to toggle source
# File lib/lipstick/api/response.rb, line 114
def int_csv_field(*args)
  @int_csv_fields ||= []
  @int_csv_fields = @int_csv_fields + args
end
new(resp) click to toggle source
# File lib/lipstick/api/response.rb, line 120
def initialize(resp)
  @code = resp.delete(:response_code).to_i
  @message = CODES[@code]

  if @code == 100
    self.class.csv_field.each do |key|
      resp[key] = CSV.parse_line(resp[key])
    end
    self.class.int_csv_field.each do |key|
      resp[key] = CSV.parse_line(resp[key]).map(&:to_i)
    end
  end

  if !resp.empty?
    resp.each do |att, val|
      self.class.__send__(:attr_accessor, att)
      self.__send__("#{att}=", val)
    end
  end
end

Public Instance Methods

underscore(camel_cased_word) click to toggle source

partly copied from activesupport/inflector

# File lib/lipstick/api/response.rb, line 142
def underscore(camel_cased_word)
  word = camel_cased_word.to_s.dup
  word.gsub!(/([A-Z\d]+)([A-Z][a-z])/,'\1_\2')
  word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
  word.tr!("-", "_")
  word.tr!("[", "_")
  word.tr!("]", "")
  word.downcase!
  word
end