Class: Action
Instance Attribute Summary collapse
Instance Method Summary
collapse
#has_condition?, #has_question?, #question, #question_answered?
Constructor Details
#initialize(node, repository) ⇒ Action
Returns a new instance of Action.
8
9
10
|
# File 'lib/models/action.rb', line 8
def initialize(node, repository)
@query = NodeQuery.new(node, repository)
end
|
Instance Attribute Details
#query ⇒ Object
Returns the value of attribute query.
4
5
6
|
# File 'lib/models/action.rb', line 4
def query
@query
end
|
Instance Method Details
#compatible? ⇒ Boolean
25
26
27
|
# File 'lib/models/action.rb', line 25
def compatible?
not failed_requirements.any?
end
|
#description ⇒ Object
12
13
14
|
# File 'lib/models/action.rb', line 12
def description
query.value(LV.description)
end
|
#effect ⇒ Object
45
46
47
|
# File 'lib/models/action.rb', line 45
def effect
StateChange.new(query.value(LV.effect), query.repository)
end
|
#execution ⇒ Object
41
42
43
|
# File 'lib/models/action.rb', line 41
def execution
ActionExecution.new(query.value(LV.executes), query.repository)
end
|
#failed_requirements ⇒ Object
21
22
23
|
# File 'lib/models/action.rb', line 21
def failed_requirements
requirements.select {|r| not r.satisfied? }
end
|
#open_questions ⇒ Object
37
38
39
|
# File 'lib/models/action.rb', line 37
def open_questions
questions.select { |q| not q.has_answer? }
end
|
#questions ⇒ Object
29
30
31
32
33
34
35
|
# File 'lib/models/action.rb', line 29
def questions
q = []
q << question if has_question?
with_question = requirements.select { |r| r.has_question? }
q + with_question.map { |r| r.question }
end
|
#requirements ⇒ Object
16
17
18
19
|
# File 'lib/models/action.rb', line 16
def requirements
list = RDF::List.new(query.value(LV.requirement), query.repository)
list.map { |node| Requirement.new(node, query.repository) }
end
|