Module: Etoji::Jikkan
- Defined in:
- lib/etoji/jikkan.rb
Defined Under Namespace
Constant Summary collapse
- SOURCE_FILE_PATH =
File.('../../../db/jikkan.json', __FILE__)
- MEMBERS =
JSON.parse(File.read(SOURCE_FILE_PATH), symbolize_names: true).map { |attributes| Kan.new( number: attributes[:number], character: attributes[:character], character_hiragana_on: attributes[:character_hiragana_on], character_hiragana_kun: attributes[:character_hiragana_kun], ) }.freeze
Class Method Summary collapse
Class Method Details
.all ⇒ Object
19 20 21 |
# File 'lib/etoji/jikkan.rb', line 19 def self.all MEMBERS end |
.find_by_number(number) ⇒ Object
23 24 25 26 27 28 |
# File 'lib/etoji/jikkan.rb', line 23 def self.find_by_number(number) @kans_by_number ||= MEMBERS.each_with_object( {} #: Hash[Integer, Kan] ) { |kan, result| result[kan.number] = kan } @kans_by_number[number] or raise NotFound.new("Number: #{number} is not found") end |