Module: Katsuyoujin
- Defined in:
- lib/katsuyoujin.rb,
lib/katsuyoujin/base.rb,
lib/katsuyoujin/verb.rb,
lib/katsuyoujin/version.rb,
lib/katsuyoujin/analyzer.rb
Defined Under Namespace
Classes: Analyzer, Base, Verb
Constant Summary
collapse
- GODAN_IRU_ERU =
YAML.load_file(File.join(Katsuyoujin.rules, 'godan/iru_eru.yml')).freeze
- GODAN_KURU_SURU =
YAML.load_file(File.join(Katsuyoujin.rules, 'godan/kuru_suru.yml')).freeze
- ICHIDAN_BASE_TABLE =
YAML.load_file File.join(Katsuyoujin.rules, 'ichidan/base.yml').freeze
- GODAN_BASE_TABLE =
YAML.load_file File.join(Katsuyoujin.rules, 'godan/base.yml').freeze
- IRREGULAR_BASE_TABLE =
YAML.load_file File.join(Katsuyoujin.rules, 'irregular/base.yml').freeze
- CONJUGATIONS =
{
'ichidan' => YAML.load_file(File.join(rules, 'ichidan/conjugations.yml')).freeze,
'godan' => YAML.load_file(File.join(rules, 'godan/conjugations.yml')).freeze,
'irregular' => YAML.load_file(File.join(rules, 'irregular/conjugations.yml')).freeze
}
- VERSION =
'0.0.2'
Class Method Summary
collapse
Class Method Details
.conjugate(word, *args, category: nil, hiragana: true) ⇒ Object
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/katsuyoujin.rb', line 30
def self.conjugate(word, *args, category: nil, hiragana: true)
verb = Verb.new word
vcat = category || verb.category
vcat = 'irregular' if ['kuru', 'suru'].include?(vcat)
rules = args.inject(CONJUGATIONS[vcat]) { |a, e| a[e] || {} }
return unless rules['base']
base = Base.new(verb, rules['base']).conjugate category: category, hiragana: hiragana
base + rules['attachment']
end
|
.root ⇒ Object
9
10
11
|
# File 'lib/katsuyoujin.rb', line 9
def self.root
File.dirname __dir__
end
|
.rules ⇒ Object
13
14
15
|
# File 'lib/katsuyoujin.rb', line 13
def self.rules
File.join root, 'rules'
end
|