Sha256: 296fd5fb7750ca7827f056eb41c1cb50450c68e0c667df1dd332f4a5f023c5da

Contents?: true

Size: 967 Bytes

Versions: 1

Compression:

Stored size: 967 Bytes

Contents

require 'securerandom'

module PopulateEnv
  module Heroku
    class Options
      DEFAULTS = {
        manifest_environment: 'production',
        manifest: 'app.json',
        destination: '.env',
        generate_secrets: true,
        secret_generator: SecureRandom.method(:hex),
        use_heroku_config: true,
        heroku_app: nil,
        heroku_remote: nil,
        skip_local_env: false,
        prompt_missing: true,
        output: $stdout,
        input: $stdin,
        local_env: ENV
      }.freeze

      attr_accessor *DEFAULTS.keys

      def initialize(**attrs)
        attrs = DEFAULTS.merge(attrs)
        attrs.each { |attr, value| public_send("#{attr}=", value) }
      end

      def manifest=(value)
        @manifest = Pathname(value)
      end

      def destination=(value)
        @destination = Pathname(value)
      end

      def manifest_environment=(value)
        @manifest_environment = value.to_sym
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
populate-env-0.1.0 lib/populate_env/heroku/options.rb