lib/jldrill/contexts/behaviour/SearchDictionary.rb in jldrill-0.5.1.7 vs lib/jldrill/contexts/behaviour/SearchDictionary.rb in jldrill-0.6.0.1
- old
+ new
@@ -1,24 +1,50 @@
+# encoding: utf-8
module JLDrill::Behaviour
# Provides the ability to search the kanji and JEDictionary.
module SearchDictionary
# Returns true if the Kanji dictionary is loaded
def kanjiLoaded?
!@parent.kanji.nil?
end
+
+ def findKanjiInDictionary(character)
+ retVal = []
+ if dictionaryLoaded?
+ retVal = @parent.reference.findKanji(character)
+ end
+ return retVal
+ end
# Returns the information for a given kanji character
def kanjiInfo(character)
retVal = ""
+ entries = findKanjiInDictionary(character)
kanji = @parent.kanji.kanjiList.findChar(character)
+ # If the kanji isn't found, it might be a simplified
+ # character. If the character was a word in the dictionary,
+ # we can use the kanji entry for one of dictionary entries
+ # and search the kanji information again.
+ if kanji.nil? && !entries.empty?
+ kanji = @parent.kanji.kanjiList.findChar(entries[0].kanji)
+ end
if !kanji.nil?
- retVal = kanji.withRadical_to_s(@parent.radicals.radicalList)
+ if @parent.quiz.options.language == "Chinese"
+ retVal += kanji.withPinYinRadical_to_s(@parent.kanji.kanjiList, @parent.radicals.radicalList)
+ else
+ retVal += kanji.withRadical_to_s(@parent.radicals.radicalList)
+ end
+ if !entries.empty?
+ retVal += "\n\nDictionary Lookup:\n"
+ retVal += entries.join("\n")
+ retVal += "\n"
+ end
else
kana = @parent.kana.kanaList.findChar(character)
if !kana.nil?
- retVal = kana.to_s
+ retVal += kana.to_s
end
end
retVal
end
@@ -27,10 +53,10 @@
@parent.reference.loaded?
end
# Searches the dictionary for possible words in the string.
# Attempts to deinflect the word and provide matches.
- # Returns an array of JWords.
+ # Returns an array of DictionaryEntry.
def search(string)
matches = @parent.deinflect.match(string)
retVal = matches.collect do |match|
@parent.reference.findWord(match.last.dictionary)
end.flatten