class GreekABC::Alphabet
Attributes
letters[RW]
Public Class Methods
new()
click to toggle source
# File lib/greek_abc/alphabet.rb, line 12 def initialize @letters = ALPHABET.map.with_index(1) do |(name, letter), index| Letter.new(position: index, name: name, lower: letter, upper: letter.upcase) end end
Public Instance Methods
find_letter_by(**lookup)
click to toggle source
# File lib/greek_abc/alphabet.rb, line 19 def find_letter_by(**lookup) parameter = lookup.keys.first value = lookup.values.first unless letter_parameter?(parameter) raise LetterLookupError, "Letter does not have parameter `#{parameter}`" end result = @letters.find do |letter| letter if letter.send(parameter.to_sym) == value end unless result raise LetterNotFoundError, "Letter with `#{parameter}: #{value}` not found" end result end
to_h()
click to toggle source
# File lib/greek_abc/alphabet.rb, line 38 def to_h @letters.each_with_object({}) do |letter, hash| hash[letter.name.to_s] = { position: letter.position, lower: letter.lower, upper: letter.upper } end end
to_s()
click to toggle source
# File lib/greek_abc/alphabet.rb, line 48 def to_s @letters end
Private Instance Methods
letter_parameter?(parameter)
click to toggle source
# File lib/greek_abc/alphabet.rb, line 54 def letter_parameter?(parameter) parameters = %i[name position lower upper] parameters.include?(parameter) end