summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models/gs_parameter.rb37
1 files changed, 26 insertions, 11 deletions
diff --git a/app/models/gs_parameter.rb b/app/models/gs_parameter.rb
index cd4f47b..f301e95 100644
--- a/app/models/gs_parameter.rb
+++ b/app/models/gs_parameter.rb
@@ -17,22 +17,37 @@ class GsParameter < ActiveRecord::Base
else
item = GsParameter.where(:name => wanted_variable).first
end
- if item.nil? || item.class_type == 'Nil'
- return nil
- else
- return item.value.to_i if item.class_type == 'Integer'
- return item.value.to_s if item.class_type == 'String'
- if item.class_type == 'Boolean'
- return true if item.value == 'true'
- return false if item.value == 'false'
- end
- return YAML.load(item.value) if item.class_type == 'YAML'
- end
+ return GsParameter.cast_variable(item)
else
nil
end
end
+ def self.get_list(entity, section)
+ items = {}
+ if GsParameter.table_exists?
+ GsParameter.where(:entity => entity, :section => section).each do |item|
+ items[item.name] = GsParameter.cast_variable(item)
+ end
+ end
+
+ return items
+ end
+
+ def self.cast_variable(item)
+ if item.nil? || item.class_type == 'Nil'
+ return nil
+ else
+ return item.value.to_i if item.class_type == 'Integer'
+ return item.value.to_s if item.class_type == 'String'
+ if item.class_type == 'Boolean'
+ return true if item.value == 'true'
+ return false if item.value == 'false'
+ end
+ return YAML.load(item.value) if item.class_type == 'YAML'
+ end
+ end
+
def to_s
name
end