class PowerIQ::Resource::Base

Attributes

host[W]
password[W]
singular[W]
user[W]
request[RW]
response[RW]

Public Class Methods

host() click to toggle source
# File lib/poweriq_client/resource/base.rb, line 54
def host
  if(self == Base)
    @host
  else
    @host || Base.host
  end
end
new(url=nil,options={}, backwards_compatibility=nil, &block) click to toggle source
Calls superclass method
# File lib/poweriq_client/resource/base.rb, line 29
def initialize(url=nil,options={}, backwards_compatibility=nil, &block)
  base_headers = { :content_type => 'application/json', :accept=>'application/json' }
  if(options.has_key?(:headers))
    options[:headers].merge!(base_headers)
  else
    options[:headers] = base_headers
  end
  options[:user] = self.class.user unless(options.has_key?(:user))
  options[:password] = self.class.password unless(options.has_key?(:password))
  unless(block_given?)
    block = ResponseHandler.create(self)
  end
  modified_url = if(url.nil?)
    self.class.resource_url
  elsif(url=~%r{^https://})
    url
  else
    self.class.resource_url + url
  end
  super(modified_url,options,backwards_compatibility,&block)
end
password() click to toggle source
# File lib/poweriq_client/resource/base.rb, line 70
def password
  if(self == Base)
    @password
  else
    @password || Base.password
  end
end
resource_name(pluralize=false) click to toggle source
# File lib/poweriq_client/resource/base.rb, line 78
def resource_name(pluralize=false)
  base = self.name.demodulize
  if(pluralize)
    base = base.pluralize
  end
  base.underscore
end
resource_url() click to toggle source
# File lib/poweriq_client/resource/base.rb, line 86
def resource_url
  "https://#{self.host}/api/v2/#{self.resource_name(!self.singular?)}"
end
singular?() click to toggle source
# File lib/poweriq_client/resource/base.rb, line 90
def singular?
  @singular
end
user() click to toggle source
# File lib/poweriq_client/resource/base.rb, line 62
def user
  if(self == Base)
    @user
  else
    @user || Base.user
  end
end

Public Instance Methods

json_available?() click to toggle source
# File lib/poweriq_client/resource/base.rb, line 103
def json_available?
  self.response && self.response.json && !self.response.json.empty? && self.response.json.has_key?(self.root_key)
end
member?() click to toggle source
# File lib/poweriq_client/resource/base.rb, line 99
def member?
  !!url.match(%r{#{self.class.resource_url}/\d+$})
end
root_key(collection=false) click to toggle source
# File lib/poweriq_client/resource/base.rb, line 95
def root_key(collection=false)
  self.class.resource_name(collection)
end

Protected Instance Methods

require_json!() click to toggle source
# File lib/poweriq_client/resource/base.rb, line 109
def require_json!
  unless(json_available?)
    raise ResourceError.new("JSON response required. Did you GET the resource first?",self)
  end
end
require_member!() click to toggle source
# File lib/poweriq_client/resource/base.rb, line 115
def require_member!
  unless(member?)
    raise ResourceError.new("Member resource required. Not a valid member resource specifier: #{url}",self)
  end
end