Sha256: 499440c09f3add775e6066fd79094c17642fe31353c2544c3c0babb1577e8054

Contents?: true

Size: 634 Bytes

Versions: 17

Compression:

Stored size: 634 Bytes

Contents

class BMC::TokenGenerator
  attr_reader :options

  def initialize(options = {})
    @options = options
  end

  def size
    options[:size] || self.class.default_size
  end

  def alphabet
    options[:alphabet] || self.class.default_alphabet
  end

  def call
    (alphabet * size).sample(size).join
  end

  class << self
    def call(*args)
      new(*args).call
    end

    attr_writer :default_size

    def default_size
      @default_size ||= 64
    end

    attr_writer :default_alphabet

    def default_alphabet
      @default_alphabet ||= (0..9).to_a + ("a".."z").to_a + ("A".."Z").to_a
    end
  end # class << self
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
bmc-1.5.1 app/libs/bmc/token_generator.rb
bmc-1.5.0 app/libs/bmc/token_generator.rb
bmc-1.4.3 app/libs/bmc/token_generator.rb
bmc-1.4.2 app/libs/bmc/token_generator.rb
bmc-1.4.1 app/libs/bmc/token_generator.rb
bmc-1.4.0 app/libs/bmc/token_generator.rb
bmc-1.3.5 app/libs/bmc/token_generator.rb
bmc-1.3.4 app/libs/bmc/token_generator.rb
bmc-1.3.3 app/libs/bmc/token_generator.rb
bmc-1.3.2 app/libs/bmc/token_generator.rb
bmc-1.3.1 app/libs/bmc/token_generator.rb
bmc-1.3.0 app/libs/bmc/token_generator.rb
bmc-1.2.1 app/libs/bmc/token_generator.rb
bmc-1.2.0 app/libs/bmc/token_generator.rb
bmc-1.1.0 app/libs/bmc/token_generator.rb
bmc-1.0.1 app/libs/bmc/token_generator.rb
bmc-1.0.0 app/libs/bmc/token_generator.rb