Description:
removed caching on Configuration git-svn-id: http://theory.cpe.ku.ac.th/grader/web/trunk@285 6386c4cd-e34a-4fa8-8920-d93eb39b512e
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r146:1d03356b1f43 - - 1 file changed: 30 inserted, 13 deleted

@@ -7,14 +7,21
7 7
8 8 SYSTEM_MODE_CONF_KEY = 'system.mode'
9 9
10 + # set @@cache = true to only reload once.
11 + @@cache = false
12 +
10 13 @@configurations = nil
11 14 @@task_grading_info = nil
12 15
13 16 def self.get(key)
14 - if @@configurations == nil
15 - self.read_config
17 + if @@cache
18 + if @@configurations == nil
19 + self.read_config
20 + end
21 + return @@configurations[key]
22 + else
23 + return Configuration.read_one_key(key)
16 24 end
17 - return @@configurations[key]
18 25 end
19 26
20 27 def self.[](key)
@@ -71,22 +78,32
71 78 end
72 79
73 80 protected
81 +
82 + def self.convert_type(val,type)
83 + case type
84 + when 'string'
85 + return val
86 +
87 + when 'integer'
88 + return val.to_i
89 +
90 + when 'boolean'
91 + return (val=='true')
92 + end
93 + end
94 +
74 95 def self.read_config
75 96 @@configurations = {}
76 97 Configuration.find(:all).each do |conf|
77 98 key = conf.key
78 99 val = conf.value
79 - case conf.value_type
80 - when 'string'
81 - @@configurations[key] = val
100 + @@configurations[key] = Configuration.convert_type(val,conf.value_type)
101 + end
102 + end
82 103
83 - when 'integer'
84 - @@configurations[key] = val.to_i
85 -
86 - when 'boolean'
87 - @@configurations[key] = (val=='true')
88 - end
89 - end
104 + def self.read_one_key(key)
105 + conf = Configuration.find_by_key(key)
106 + return Configuration.convert_type(conf.value,conf.value_type)
90 107 end
91 108
92 109 def self.read_grading_info
You need to be logged in to leave comments. Login now