summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Kozak <spag@golwen.net>2013-05-07 12:57:06 +0200
committerPeter Kozak <spag@golwen.net>2013-05-07 12:57:06 +0200
commit289d88ee79ea5dc4228cf93a64faddf5c0815c54 (patch)
tree90c8e92c38db858b5a22cb796ddfbe686a71125a
parent7ceae357dc8081afc73f74d6790340fdca3fea4f (diff)
get_list method added
-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