Sha256: b6a4f6d4e8725ff26f7fdf9e94f286572be83cdd1f274577975fbfc86e08b473
Contents?: true
Size: 871 Bytes
Versions: 3
Compression:
Stored size: 871 Bytes
Contents
# frozen_string_literal: true module WordSearch class WordBank < Array include ActiveModel::Validations validate :word_bank 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 def longest_length @longest ||= collect(&:length).max.to_i end def longest_words select do |word| word.length == longest_length end end private def word_bank errors.add(:base, "Word bank cannot be empty") if blank? end def valid_file?(file) File.file?(file) && File.extname(file) == ".csv" end def invalid_file errors.add(:file, "is invalid") false end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
word_search-1.1.0 | lib/word_search/word_bank.rb |
word_search-1.0.1 | lib/word_search/word_bank.rb |
word_search-1.0.0 | lib/word_search/word_bank.rb |