Sha256: b02b3c91bcc2270a1272dc4d76ce4f3358ecb809a624f4d9880def9fb86d6220

Contents?: true

Size: 1.59 KB

Versions: 22

Compression:

Stored size: 1.59 KB

Contents

module FaaStRuby
  ROOT_DOMAIN = ENV['FAASTRUBY_ROOT_DOMAIN'] || 'faastruby.io'
  WORKSPACE_BASE_HOST = ENV['FAASTRUBY_WORKSPACE_BASE_HOST'] || 'faast.cloud'
  DEFAULT_REGION = 'tor1'
  REGIONS = [
    'tor1'
  ]
  class << self
    attr_accessor :configuration
  end

  def self.api_key
    configuration&.api_key || ENV['FAASTRUBY_API_KEY']
  end

  def self.api_secret
    configuration&.api_secret || ENV['FAASTRUBY_API_SECRET']
  end

  def self.configure
    self.configuration ||= Configuration.new
    yield(configuration)
  end

  def self.credentials
    {api_key: api_key, api_secret: api_secret}
  end

  def self.region
    ENV['FAASTRUBY_REGION'] ||= DEFAULT_REGION
    raise "No such region: #{ENV['FAASTRUBY_REGION']}" unless FaaStRuby::REGIONS.include?(ENV['FAASTRUBY_REGION'])
    ENV['FAASTRUBY_REGION']
  end

  def self.api_host
    ENV['FAASTRUBY_HOST'] || "https://api.#{region}.#{ROOT_DOMAIN}"
  end

  def self.workspace_host_for(workspace_name)
    "https://#{workspace_name}.#{region}.#{WORKSPACE_BASE_HOST}"
  end

  class Configuration
    attr_accessor :api_key, :api_secret
  end


  class BaseObject
    def initialize(params = {}, &block)
      @errors = []
      @api = API.new
      self.mass_assign(params) if params
      yield self if block_given?
    end

    def assign_attributes(params = {}, &block)
      self.mass_assign(params) if params
      yield self if block_given?
    end

    def attributes=(params)
      assign_attributes(params)
    end

    def mass_assign(attrs)
      attrs.each do |key, value|
        self.public_send("#{key}=", value)
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
faastruby-0.5.22 lib/faastruby/base.rb
faastruby-0.5.21 lib/faastruby/base.rb
faastruby-0.5.20 lib/faastruby/base.rb
faastruby-0.5.19 lib/faastruby/base.rb
faastruby-0.5.18 lib/faastruby/base.rb
faastruby-0.5.17 lib/faastruby/base.rb
faastruby-0.5.16 lib/faastruby/base.rb
faastruby-0.5.15 lib/faastruby/base.rb
faastruby-0.5.14 lib/faastruby/base.rb
faastruby-0.5.13 lib/faastruby/base.rb
faastruby-0.5.12 lib/faastruby/base.rb
faastruby-0.5.11 lib/faastruby/base.rb
faastruby-0.5.10 lib/faastruby/base.rb
faastruby-0.5.9 lib/faastruby/base.rb
faastruby-0.5.8 lib/faastruby/base.rb
faastruby-0.5.7 lib/faastruby/base.rb
faastruby-0.5.6 lib/faastruby/base.rb
faastruby-0.5.5 lib/faastruby/base.rb
faastruby-0.5.4 lib/faastruby/base.rb
faastruby-0.5.3 lib/faastruby/base.rb