Sha256: 84b9d914405dae9562c77a3d744674cbae56db7df2c5d355c9e124866b1a8a96

Contents?: true

Size: 1.66 KB

Versions: 17

Compression:

Stored size: 1.66 KB

Contents

require "voltos/version"

require "curb"
require "json"

module Voltos
  class << self
    attr_accessor :configuration
  end

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

  def self.load
    json_str = Curl.get("#{Voltos.configuration.api_url}/credentials") do |http|
      http.headers["Authorization"] = "Token token=#{Voltos.configuration.api_key}"
    end
    data = JSON.parse(json_str.body_str)
    if data.has_key?("status")
      Voltos.configuration.json_creds = data
      Voltos.configuration.status  = Voltos.configuration.json_creds["status"]
      Voltos.configuration.message = Voltos.configuration.json_creds["message"]
    else
      data.each do |key, val|
        ENV[key] ||= val
      end
    end
  end

  def self.bundles
    Voltos.configuration.json_creds["data"]["bundles"].keys
  end

  def self.key(bundle_name, env_key)
    if not bundle_name.empty?
      Voltos.configuration.json_creds["data"]["bundles"][bundle_name][env_key]
    else
      Voltos.configuration.json_creds["data"]["unbundled"][env_key]
    end
  end

  def self.status
    return Voltos.configuration.status
  end

  def self.message
    return Voltos.configuration.message
  end

  class Configuration
    attr_accessor :api_key
    attr_accessor :api_url
    attr_accessor :json_creds
    attr_accessor :status
    attr_accessor :message

    def initialize
      @api_url = ENV["VOLTOS_API_URL"] || "https://voltos.online/v1"
      @api_key = ENV["VOLTOS_KEY"]
    end
  end
end

begin
  if Rails
    require 'voltos/rails'
  end
rescue NameError
  # Rails not loaded
end

Voltos.configure
if ENV["VOLTOS_KEY"]
  Voltos.load
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
voltos-0.3.0 lib/voltos.rb
voltos-0.3.0.rc14 lib/voltos.rb
voltos-0.3.0.rc13 lib/voltos.rb
voltos-0.3.0.rc12 lib/voltos.rb
voltos-0.3.0.rc11 lib/voltos.rb
voltos-0.3.0.rc10 lib/voltos.rb
voltos-0.3.0.rc9 lib/voltos.rb
voltos-0.3.0.rc8 lib/voltos.rb
voltos-0.3.0.rc7 lib/voltos.rb
voltos-0.3.0.rc6 lib/voltos.rb
voltos-0.3.0.rc5 lib/voltos.rb
voltos-0.3.0.rc4 lib/voltos.rb
voltos-0.3.0.rc3 lib/voltos.rb
voltos-0.3.0.rc2 lib/voltos.rb
voltos-0.3.0.rc1 lib/voltos.rb
voltos-0.3.0rc1 lib/voltos.rb
voltos-0.2.1 lib/voltos.rb