class ShippingScale::Request

Attributes

api[R]
secure[R]
tag[R]
packages[R]
response[RW]

Public Class Methods

config(options = {}) click to toggle source
# File lib/shipping_scale/request.rb, line 6
def config(options = {})
  defaults = {api: "RateV4", tag: "RateV4Request"}
  options = defaults.merge(options)

  @api = options[:api]
  @tag = options[:tag]
  @secure = !!options[:secure]
end
new(options={}) click to toggle source
# File lib/shipping_scale/request.rb, line 16
def initialize(options={})
  @response = options[:response]
  @packages = options[:packages]
end

Public Instance Methods

api() click to toggle source
# File lib/shipping_scale/request.rb, line 28
def api
  self.class.api
end
build() click to toggle source
# File lib/shipping_scale/request.rb, line 32
def build
  xml.tag!(self.class.tag, USERID: ShippingScale.config.user_id) do |req|
    req.tag!("Revision", "2")
    packages_to_xml(req)
  end
  xml
end
secure?() click to toggle source
# File lib/shipping_scale/request.rb, line 24
def secure?
  !!self.class.secure
end
send!() click to toggle source
# File lib/shipping_scale/request.rb, line 40
def send!
  ShippingScale.client.request(self)
end

Private Instance Methods

packages_to_xml(xml) click to toggle source
# File lib/shipping_scale/request.rb, line 46
def packages_to_xml(xml)
  i = 1
  packages.each do |package|
    xml.tag!("Package", ID: i) { |pac| package.build_xml(pac) }
    i += 1
  end
end
xml() click to toggle source
# File lib/shipping_scale/request.rb, line 54
def xml
  @_xml ||= Builder::XmlMarkup.new(indent: 0)
end