class CW::Alphabet

class Alphabet provides alphabet generation functionality

Public Class Methods

new(options = {}) click to toggle source

initialize class Alphabet

Parameters:

options

An optional hash containg options:

:reverse - reverse alphabet :shuffle - shuffle alphabet :include - include only these letters of the alphabet :exclude - exclude these letters from the alphabet

# File lib/cw/alphabet.rb, line 18
def initialize(options = {})
  @options = options
end

Public Instance Methods

alphabet() click to toggle source

alphabet() Returns alphabet as string

Parameters:

none

# File lib/cw/alphabet.rb, line 27
def alphabet
  'abcdefghijklmnopqrstuvwxyz'
end
exclude_letters() click to toggle source

exclude_letters() exclude letters if :exclude option defined

Parameters:

none

# File lib/cw/alphabet.rb, line 68
def exclude_letters
  if @options[:exclude]
    @letters.tr!(@options[:exclude],'')
  end
end
generate() click to toggle source

generate() generate alphabet with options acted upon

Returns:

alphabet or filtered alphabet

# File lib/cw/alphabet.rb, line 79
def generate
  @letters = alphabet
  include_letters
  exclude_letters
  shuffle_alphabet_maybe
  reverse_alphabet_maybe
  @letters.split('').join(' ')
end
include_letters() click to toggle source

include_letters() include letters if :include option defined

Parameters:

none

# File lib/cw/alphabet.rb, line 57
def include_letters
  if @options[:include]
    @letters = @options[:include]
  end
end
reverse_alphabet_maybe() click to toggle source

reverse_alphabet_maybe() reverse letters if reverse option set

Parameters:

none

# File lib/cw/alphabet.rb, line 36
def reverse_alphabet_maybe
  @letters.reverse! if @options[:reverse]
end
shuffle_alphabet_maybe() click to toggle source

shuffle_alphabet_maybe() shuffle alphabet if :shuffle option defined don't shuffle if in test environment

Parameters:

none

# File lib/cw/alphabet.rb, line 46
def shuffle_alphabet_maybe
  unless(ENV["CW_ENV"] == "test")
    @letters = @letters.split('').shuffle.join if @options[:shuffle]
  end
end