Skip to content

Instantly share code, notes, and snippets.

@jmoon90
Created December 13, 2013 00:43
Show Gist options
  • Select an option

  • Save jmoon90/7938263 to your computer and use it in GitHub Desktop.

Select an option

Save jmoon90/7938263 to your computer and use it in GitHub Desktop.
class AnagramGenerator
attr_accessor :word, :words, :letters
def initialize(word)
@word = word
@words = []
end
def generate
if word == ''
raise ArgumentError, "It can't be a blank string"
else
words = split_word_to_letter.permutation.map(&:join)
words.shift
end
words
end
def split_word_to_letter
letters = word.split('')
letters
end
end
require_relative 'anagram_generator.rb'
describe AnagramGenerator do
it 'returns an argument message if a blanks string is passed' do
expect { AnagramGenerator.new('').generate }.to raise_error(ArgumentError, "It can't be a blank string")
end
it 'should return the letter if it is only 1 letter' do
expect(AnagramGenerator.new("h").generate).to eql ([])
end
it 'should takes a 2 letter word and create 2 word' do
expect(AnagramGenerator.new('ab').generate).to eql (['ba'])
end
it 'should takes a 3 letter word and create 5 word' do
expect(AnagramGenerator.new('dog').generate).to include('dgo','odg','ogd','god','gdo')
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment