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