Class: Model::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.
9
10
11
|
# File 'lib/models/action.rb', line 9
def initialize(node, repository)
@query = NodeQuery.new(node, repository)
end
|
Instance Attribute Details
#query ⇒ Object
Returns the value of attribute query.
5
6
7
|
# File 'lib/models/action.rb', line 5
def query
@query
end
|
Instance Method Details
#compatible? ⇒ Boolean
26
27
28
|
# File 'lib/models/action.rb', line 26
def compatible?
not failed_requirements.any?
end
|
#description ⇒ Object
13
14
15
|
# File 'lib/models/action.rb', line 13
def description
query.value(LV.description)
end
|
#effect ⇒ Object
46
47
48
|
# File 'lib/models/action.rb', line 46
def effect
StateChange.new(query.value(LV.effect), query.repository)
end
|
#execution ⇒ Object
42
43
44
|
# File 'lib/models/action.rb', line 42
def execution
ActionExecution.new(query.value(LV.executes), query.repository)
end
|
#failed_requirements ⇒ Object
22
23
24
|
# File 'lib/models/action.rb', line 22
def failed_requirements
requirements.select {|r| not r.satisfied? }
end
|
#open_questions ⇒ Object
38
39
40
|
# File 'lib/models/action.rb', line 38
def open_questions
questions.select { |q| not q.has_answer? }
end
|
#questions ⇒ Object
30
31
32
33
34
35
36
|
# File 'lib/models/action.rb', line 30
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
17
18
19
20
|
# File 'lib/models/action.rb', line 17
def requirements
list = RDF::List.new(query.value(LV.requirement), query.repository)
list.map { |node| Requirement.new(node, query.repository) }
end
|