Sha256: 40b02224738ebac170ae80f0b0c92ebb17d6a6704f49840710f0f8af3b0ce246

Contents?: true

Size: 765 Bytes

Versions: 5

Compression:

Stored size: 765 Bytes

Contents

# frozen_string_literal: true

require 'ruby_terraform'
require 'securerandom'

require_relative 'base'

module RSpec
  module Terraform
    module Configuration
      module Providers
        class Seed < Base
          attr_reader(:generator, :merger)

          def initialize(opts = {})
            super()
            @generator =
              opts[:generator] || -> { SecureRandom.alphanumeric(10) }
            @merger = opts[:merger] || Merger.new
          end

          def resolve(overrides = {})
            merger.merge({ seed: seed }, overrides)
          end

          def reset
            @seed = nil
          end

          private

          def seed
            @seed ||= generator.call
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rspec-terraform-0.5.0.pre.8 lib/rspec/terraform/configuration/providers/seed.rb
rspec-terraform-0.5.0.pre.7 lib/rspec/terraform/configuration/providers/seed.rb
rspec-terraform-0.5.0.pre.6 lib/rspec/terraform/configuration/providers/seed.rb
rspec-terraform-0.5.0.pre.5 lib/rspec/terraform/configuration/providers/seed.rb
rspec-terraform-0.5.0.pre.4 lib/rspec/terraform/configuration/providers/seed.rb