module_result.rb
1.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
class Kalibro::ModuleResult < Kalibro::Model
attr_accessor :id, :module, :grade, :parent_id, :height
def self.find(id)
new request(:get_module_result, { :module_result_id => id })[:module_result]
end
def children
response = self.class.request(:children_of, {:module_result_id => id})[:module_result]
response = [] if response.nil?
response = [response] if response.is_a?(Hash)
response.map {|module_result| Kalibro::ModuleResult.new module_result}
end
def parents
if parent_id.nil?
[]
else
parent = self.class.find(parent_id)
parent.parents << parent
end
end
def id=(value)
@id = value.to_i
end
def module=(value)
@module = Kalibro::Module.to_object value
end
def grade=(value)
@grade = value.to_f
end
def parent_id=(value)
@parent_id = value.to_i
end
def self.history_of(module_result_id)
response = self.request(:history_of_module, {:module_result_id => module_result_id})[:date_module_result]
response = [] if response.nil?
response = [response] if response.is_a?(Hash)
response.map {|date_module_result| Kalibro::DateModuleResult.new date_module_result}
end
end