Sha256: 2ea45ffcc97c448f8bd2c3cc81e7e75e2792ac0786117f890938a86aed301fe8

Contents?: true

Size: 1.52 KB

Versions: 1

Compression:

Stored size: 1.52 KB

Contents

module Rhoconnect
  class Configuration
    attr_accessor :uri, :token, :authenticate, :sync_time_as_int, :app_endpoint, :http_proxy
    
    def initialize
      @sync_time_as_int = true
    end
      
  end

  class << self
    attr_accessor :configuration
  end

  # Configure Rhoconnect in an initializer:
  # like config/initializers/rhoconnect.rb
  #
  # Setup the Rhoconnect uri and api token.
  # Use rhoconnect:get_token to get the token value.
  #
  #   config.uri   = "http://myrhoconnect.com"
  #   config.token = "secrettoken"
  #   config.authenticate = lambda { |credentials| 
  #     User.authenticate(credentials) 
  #   }
  #
  # @example
  #   Rhoconnect.configure do |config|
  #     config.uri   = "http://myrhoconnect.com"
  #     config.token = "secrettoken"
  #   end
  def self.configure
    self.configuration = Configuration.new
    yield(configuration)
    # make a call to rhoconnect instance to set app url
    endpoint_url = ENV['APP_ENDPOINT'] || self.configuration.app_endpoint
    uri          = ENV['RHOCONNECT_URL'] || self.configuration.uri
    if uri
      uri = URI.parse(uri)
      token    = uri.user
      uri.user = nil
      uri      = uri.to_s
    end
    token ||= ENV['token'] || self.configuration.token
    Rhoconnect::Client.set_app_endpoint(:url => uri + "/rc/v1/system/appserver", 
      :payload => {:adapter_url => endpoint_url}.to_json,
      :headers => {:content_type => 'application/json', 'X-RhoConnect-API-TOKEN' => token}
    ) if endpoint_url && uri && token
  end
end

Rhoconnect.configure { }

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rhoconnect-rb-0.3.2 lib/rhoconnect/configuration.rb