class WordSearch::WordBank

Public Class Methods

new(file) click to toggle source
Calls superclass method
# File lib/word_search/word_bank.rb, line 9
def initialize(file)
  return invalid_file unless valid_file?(file)
  words = []

  CSV.foreach(file) do |row|
    row.each do |word|
      words << word.strip.downcase if word.strip.length > 1
    end
  end

  super words.uniq
end

Public Instance Methods

longest_length() click to toggle source
# File lib/word_search/word_bank.rb, line 22
def longest_length
  @longest ||= collect(&:length).max.to_i
end
longest_words() click to toggle source
# File lib/word_search/word_bank.rb, line 26
def longest_words
  select do |word|
    word.length == longest_length
  end
end

Private Instance Methods

invalid_file() click to toggle source
# File lib/word_search/word_bank.rb, line 42
def invalid_file
  errors.add(:file, "is invalid")
  false
end
valid_file?(file) click to toggle source
# File lib/word_search/word_bank.rb, line 38
def valid_file?(file)
  File.file?(file) && File.extname(file) == ".csv"
end
word_bank() click to toggle source
# File lib/word_search/word_bank.rb, line 34
def word_bank
  errors.add(:base, "Word bank cannot be empty") if blank?
end