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

VERSION =
'0.0.2.1'

Class Method Summary collapse

Class Method Details

.conjugate(word, *args, category: nil, hiragana: true) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/katsuyoujin.rb', line 9

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(ruleset("#{vcat}/conjugations")) { |a, e| a[e] || {} }
  return unless rules['base']

  base = Base.new(verb, rules['base']).conjugate category: category, hiragana: hiragana
  base + rules['attachment']
end

.ruleset(rule) ⇒ Object



22
23
24
# File 'lib/katsuyoujin.rb', line 22

def self.ruleset(rule)
  YAML.load_file(File.join(File.dirname(__dir__), 'rules', "#{rule}.yml"))
end