Sha256: d859295e828bdb3af0912d7e52ceca0444deee518935335b9420414451d17059

Contents?: true

Size: 1.39 KB

Versions: 11

Compression:

Stored size: 1.39 KB

Contents

# frozen_string_literal: true

require_relative 'ruby_vault/options'
require_relative 'ruby_vault/version'
require_relative 'ruby_vault/commands'
require 'logger'

module RubyVault
  class << self
    def configuration
      @configuration ||= Configuration.new
    end

    def configure
      yield(configuration)
    end

    def reset!
      @configuration = nil
    end
  end

  module ClassMethods
    def login(parameters = {}, invocation_options = {})
      exec(RubyVault::Commands::Login,
           parameters, invocation_options)
    end

    def write(parameters = {}, invocation_options = {})
      exec(RubyVault::Commands::Write,
           parameters, invocation_options)
    end

    private

    def exec(command_class, parameters, invocation_options)
      command_class.new.execute(parameters, invocation_options)
    end
  end

  extend ClassMethods

  def self.included(other)
    other.extend(ClassMethods)
  end

  class Configuration
    attr_accessor :binary, :logger, :options, :stdin, :stdout, :stderr

    def default_logger
      logger = Logger.new($stdout)
      logger.level = Logger::INFO
      logger
    end

    def default_options
      Options::Factory.new(Options::DEFINITIONS)
    end

    def initialize
      @binary = 'vault'
      @logger = default_logger
      @options = default_options
      @stdin = ''
      @stdout = $stdout
      @stderr = $stderr
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
ruby_vault-0.1.0.pre.15 lib/ruby_vault.rb
ruby_vault-0.1.0.pre.14 lib/ruby_vault.rb
ruby_vault-0.1.0.pre.13 lib/ruby_vault.rb
ruby_vault-0.1.0.pre.12 lib/ruby_vault.rb
ruby_vault-0.1.0.pre.11 lib/ruby_vault.rb
ruby_vault-0.1.0.pre.10 lib/ruby_vault.rb
ruby_vault-0.1.0.pre.9 lib/ruby_vault.rb
ruby_vault-0.1.0.pre.8 lib/ruby_vault.rb
ruby_vault-0.1.0.pre.7 lib/ruby_vault.rb
ruby_vault-0.1.0.pre.6 lib/ruby_vault.rb
ruby_vault-0.1.0.pre.5 lib/ruby_vault.rb