Sha256: de980dc73f5b0bf630274ef26d7588a02d6ad69aadf5c5785e497f9ebbfb2b1c

Contents?: true

Size: 709 Bytes

Versions: 2

Compression:

Stored size: 709 Bytes

Contents

# frozen_string_literal: true

require_relative './character_set'

module RakeSecrets
  module Types
    class Alphabetic
      LOWERCASE_CHARACTERS = ('a'..'z').to_a
      UPPERCASE_CHARACTERS = ('A'..'Z').to_a

      def initialize(opts = {})
        @delegate = CharacterSet.new(
          character_set(opts[:case]),
          length: opts[:length] || 32
        )
      end

      def generate
        @delegate.generate
      end

      private

      def character_set(case_type)
        characters = []
        characters += UPPERCASE_CHARACTERS if %i[upper both].include?(case_type)
        characters += LOWERCASE_CHARACTERS unless case_type == :upper
        characters
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rake_secrets-0.1.0.pre.4 lib/rake_secrets/types/alphabetic.rb
rake_secrets-0.1.0.pre.3 lib/rake_secrets/types/alphabetic.rb