class OEHClient::Config::Space attr_accessor :site_key, # The ONE Site KEY Value :host, # The name of the HOST machine on thunderhead.com (ONEDEMO, EU2, NA4, etc..) :api_key, # The API key provided in the ONE SETTINGS interface :shared_secret, # The shared secret value provided in the ONE SETTINGS interface :username, # The fully-qualified username configured for access to the space :meta_password # The password needed to access meta-data from the OEH server # ---- Class Methods # create builds a new instance of the Site class, populats the attributes using the properties HASH provided # and returns an instance of the class. def self.create(properties={}) # create a new instance of the OHEClient::Space class space_instance = OEHClient::Config::Space.new() # assign all attributes from the passed properties hash space_instance.site_key = properties[:site_key] if (properties.has_key?(:site_key)) space_instance.host = properties[:host] if (properties.has_key?(:host)) space_instance.api_key = properties[:api_key] if (properties.has_key?(:api_key)) space_instance.shared_secret = properties[:shared_secret] if (properties.has_key?(:shared_secret)) space_instance.username = properties[:username] if (properties.has_key?(:username)) space_instance.meta_password = properties[:meta_password] if (properties.has_key?(:meta_password)) # return the instance of the OEHClient::Site Class space_instance end # ---- Instance Methods # token is the method used to generate a new OAuth::AccessToken object based on the configuration of # the related space def token() # raise the OEHClient::InvalidSpaceException the current instance is not valid raise OEHClient::Exception::InvalidSpaceConfigException unless is_valid? # Create the consumer and access token oauth_consumer = OAuth::Consumer.new("#{@api_key}!#{@username}", @shared_secret, {:site => "#{OEHClient::Helper::Request::ONE_PROTOCOL}#{@host}#{OEHClient::Helper::Request::THUNDERHEAD_DOMAIN}", :scheme => :header}) # return the access token return(OAuth::AccessToken.new(oauth_consumer)) end # is_valid determines if the current class has values for all the attributes. Each attribute is # required with a non-nul / non-blank value to be considered valid def is_valid?() ((!@site_key.nil? && !@site_key.empty?) && (!@host.nil? && !@host.empty?) && (!@api_key.nil? && !@api_key.empty?) && (!@shared_secret.nil? && !@shared_secret.empty?) && (!@username.nil? && !@username.empty?)) end # determines if the space configuration appears to be valid for access to the raw meta-data entities. # The method expects the standard valid attributes from is_valid? as well as the meta_password # attribute def meta_access?() self.is_valid? && (!@meta_password.blank?) end end