Start working on verbs
This commit is contained in:
parent
e59221b9ad
commit
25f2d260c7
96
src/verb.rb
Normal file
96
src/verb.rb
Normal file
@ -0,0 +1,96 @@
|
||||
GUYS = {
|
||||
"む" => { "a" => "ま", "i" => "み", "u" => "む", "e" => "め", "o" => "も" },
|
||||
}
|
||||
|
||||
class KanaKanji
|
||||
attr_reader :kana, :kanji
|
||||
def initialize(kana, kanji=nil)
|
||||
@kana = kana
|
||||
@kanji = kanji || kana
|
||||
end
|
||||
|
||||
def [] (index)
|
||||
self.class.new kana[index], kanji[index]
|
||||
end
|
||||
|
||||
def + (other)
|
||||
self.class.new kana + other, kanji + other
|
||||
end
|
||||
|
||||
def last_character
|
||||
GUYS[kana[-1]]
|
||||
end
|
||||
|
||||
def all_but_last_character
|
||||
self.class.new kana[0...-1], kanji[0...-1]
|
||||
end
|
||||
end
|
||||
|
||||
class Verb
|
||||
attr_reader :dict_kanji, :dict_kana, :definition_english, :dict
|
||||
|
||||
def initialize(dict_kanji, dict_kana, definition_english)
|
||||
@dict_kanji = dict_kanji || dict_kana
|
||||
@dict_kana = dict_kana
|
||||
@dict = KanaKanji.new dict_kana, dict_kanji
|
||||
@definition_english = definition_english
|
||||
end
|
||||
|
||||
def last_character
|
||||
dict.last_character
|
||||
end
|
||||
|
||||
def all_but_last_character
|
||||
dict.all_but_last_character
|
||||
end
|
||||
|
||||
def ve
|
||||
VerbExpression
|
||||
end
|
||||
|
||||
def dictionary
|
||||
dict
|
||||
end
|
||||
end
|
||||
|
||||
class IchidanVerb < Verb
|
||||
def long_form_present_positive
|
||||
all_but_last_character + "ます"
|
||||
end
|
||||
end
|
||||
|
||||
class GodanVerb < Verb
|
||||
def long_form_present_positive
|
||||
all_but_last_character + last_character["i"] + "ます"
|
||||
end
|
||||
end
|
||||
|
||||
class SuruVerb < Verb
|
||||
def long_form_present_positive
|
||||
dict[..-3] + "します"
|
||||
end
|
||||
end
|
||||
|
||||
見る = IchidanVerb.new("見る", "みる", "to look")
|
||||
p 見る.dictionary.kanji
|
||||
p 見る.dictionary.kana
|
||||
p 見る.long_form_present_positive.kanji
|
||||
p 見る.long_form_present_positive.kana
|
||||
|
||||
飲む = GodanVerb.new("飲む", "のむ", "to drink")
|
||||
p 飲む.dictionary.kanji
|
||||
p 飲む.dictionary.kana
|
||||
p 飲む.long_form_present_positive.kanji
|
||||
p 飲む.long_form_present_positive.kana
|
||||
|
||||
する = SuruVerb.new("する", "する", "to do")
|
||||
p する.dictionary.kanji
|
||||
p する.dictionary.kana
|
||||
p する.long_form_present_positive.kanji
|
||||
p する.long_form_present_positive.kana
|
||||
|
||||
勉強する = SuruVerb.new("勉強する", "べんきょうする", "to study")
|
||||
p 勉強する.dictionary.kanji
|
||||
p 勉強する.dictionary.kana
|
||||
p 勉強する.long_form_present_positive.kanji
|
||||
p 勉強する.long_form_present_positive.kana
|
Loading…
Reference in New Issue
Block a user