class Rubillow::Models::Base
Base
class for data models
Attributes
code[RW]
@return [Integer] response code
message[RW]
@return [String] response message
near_limit[RW]
@return [Boolean] nearing API's daily request limit
parser[RW]
@private @return [Nokogiri::XML::Reader] xml parser
xml[RW]
@return [String] the raw XML content from the service
Public Class Methods
new(xml)
click to toggle source
@private Initialize the model
@param [String] xml the raw XML from the service
# File lib/rubillow/models.rb, line 31 def initialize(xml) if !empty?(xml) @xml = xml @parser = Nokogiri::XML(xml) { |cfg| cfg.noblanks } parse else @code = -1 @message = 'Error connecting to remote service.' end end
Public Instance Methods
success?()
click to toggle source
Was the request successful? @return [Boolean] true
on successful request
# File lib/rubillow/models.rb, line 44 def success? @code.to_i == 0 end
Protected Instance Methods
empty?(elm)
click to toggle source
# File lib/rubillow/models.rb, line 60 def empty?(elm) elm.respond_to?(:empty?) ? elm.empty? : !elm end
parse()
click to toggle source
@private Parses the xml content
# File lib/rubillow/models.rb, line 52 def parse @message = @parser.xpath('//message/text').text @code = @parser.xpath('//message/code').text.to_i limit = @parser.xpath('//message/limit-warning') @near_limit = !limit.empty? && limit.text.downcase == "true" end