Module: JLPT::KanjiDetails
- Defined in:
- lib/jlpt/core/kanji_details.rb
Overview
Kanji Details Inspector.
Provides stroke count, radical, On'yomi, Kun'yomi, and JLPT levels for Kanji.
Constant Summary collapse
- DATA_PATH =
File.('../data/kanji_details.json', __dir__)
- MUTEX =
Mutex.new
Class Method Summary collapse
-
.details_for_text(text) ⇒ Array<Hash>
Get details for all unique kanji in text.
-
.lookup(char) ⇒ Hash?
Lookup Kanji details for a single character.
Class Method Details
.details_for_text(text) ⇒ Array<Hash>
Get details for all unique kanji in text
33 34 35 36 |
# File 'lib/jlpt/core/kanji_details.rb', line 33 def details_for_text(text) kanji_list = Kanji.extract(text) kanji_list.filter_map { |k| lookup(k) } end |
.lookup(char) ⇒ Hash?
Lookup Kanji details for a single character
20 21 22 23 24 25 26 27 |
# File 'lib/jlpt/core/kanji_details.rb', line 20 def lookup(char) return nil if char.nil? || char.to_s.strip.empty? kanji_char = char.to_s.strip[0] return nil unless kanji_char.match?(/[\u4E00-\u9FFF]/) fetch_details(kanji_char) end |