diff options
author | Stefan Wintermeyer <stefan.wintermeyer@amooma.de> | 2013-01-22 15:33:06 +0100 |
---|---|---|
committer | Stefan Wintermeyer <stefan.wintermeyer@amooma.de> | 2013-01-22 15:33:06 +0100 |
commit | 39aa7132ceed3d4beab3a9b828e571bbfc67c07e (patch) | |
tree | 6c88289c9f99be0af8635636fcdf64102090e5ec /app/models/gs_parameter.rb | |
parent | 5ad8203ce4f1bfea997960d0b52c626dea24b944 (diff) | |
parent | 6f69c1a85055ec7c2515719d79d2a7a4e60cec50 (diff) |
Merge branch 'develop'5.1-beta1
Diffstat (limited to 'app/models/gs_parameter.rb')
-rw-r--r-- | app/models/gs_parameter.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/app/models/gs_parameter.rb b/app/models/gs_parameter.rb new file mode 100644 index 0000000..fe2a845 --- /dev/null +++ b/app/models/gs_parameter.rb @@ -0,0 +1,35 @@ +class GsParameter < ActiveRecord::Base + # https://github.com/rails/strong_parameters + include ActiveModel::ForbiddenAttributesProtection + + validates :name, + :presence => true, + :uniqueness => { :scope => [ :entity, :section ] } + + validates :class_type, + :presence => true, + :inclusion => { :in => ['String', 'Integer', 'Boolean', 'YAML', 'Nil'] } + + def self.get(wanted_variable) + if GsParameter.table_exists? + item = GsParameter.where(:name => wanted_variable).first + 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 + else + nil + end + end + + def to_s + name + end +end |