Class: Gamefic::Grammar::VerbSet

Inherits:
Object
  • Object
show all
Defined in:
lib/gamefic/grammar/verb_set.rb

Instance Method Summary collapse

Constructor Details

#initialize(infinitive, *forms) ⇒ VerbSet

Returns a new instance of VerbSet.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/gamefic/grammar/verb_set.rb', line 5

def initialize infinitive, *forms
  # TODO what to do with the tense?
  @infinitive = infinitive.to_s
  @forms = {}
  form = forms[0]
  @forms["1:singular"] = form.nil? ? @infinitive.to_s : form.to_s
  form = forms[1]
  @forms["2:singular"] = form.nil? ? @infinitive.to_s : form.to_s
  form = forms[2]
  @forms["3:singular"] = form.nil? ? generate_third_singular : form.to_s
  form = forms[3]
  @forms["1:plural"] = form.nil? ? @infinitive.to_s : form.to_s
  form = forms[4]
  @forms["2:plural"] = form.nil? ? @forms["1:plural"] : form.to_s
  form = forms[5]
  @forms["3:plural"] = form.nil? ? @forms["1:plural"] : form.to_s
end

Instance Method Details

#conjugate(pronoun) ⇒ Object



22
23
24
25
26
27
28
29
30
31
# File 'lib/gamefic/grammar/verb_set.rb', line 22

def conjugate pronoun
  form = @forms["#{pronoun.person}"]
  if form.nil?
    form = @forms["#{pronoun.person}:#{pronoun.plural? ? 'plural' : 'singular'}"]
  end
  if form.nil?
    raise "Unable to conjugate #{@infinitive}"
  end
  form
end