Update SiteSettingExtension to use new Enum class
This commit is contained in:
parent
5cf69baf56
commit
9a2588c46d
|
@ -1,12 +1,9 @@
|
||||||
|
require_dependency 'enum'
|
||||||
|
|
||||||
module SiteSettingExtension
|
module SiteSettingExtension
|
||||||
|
|
||||||
module Types
|
def types
|
||||||
String = 1
|
@types ||= Enum.new(:string, :time, :fixnum, :float, :bool, :null)
|
||||||
Time = 2
|
|
||||||
Fixnum = 3
|
|
||||||
Float = 4
|
|
||||||
Bool = 5
|
|
||||||
Null = 6
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def mutex
|
def mutex
|
||||||
|
@ -55,7 +52,7 @@ module SiteSettingExtension
|
||||||
{setting: s,
|
{setting: s,
|
||||||
description: description(s),
|
description: description(s),
|
||||||
default: v,
|
default: v,
|
||||||
type: get_data_type_string(value),
|
type: types[get_data_type(value)].to_s,
|
||||||
value: value.to_s}
|
value: value.to_s}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -145,15 +142,15 @@ module SiteSettingExtension
|
||||||
setting = SiteSetting.where(:name => name).first
|
setting = SiteSetting.where(:name => name).first
|
||||||
type = get_data_type(defaults[name])
|
type = get_data_type(defaults[name])
|
||||||
|
|
||||||
if type == Types::Bool && val != true && val != false
|
if type == types[:bool] && val != true && val != false
|
||||||
val = (val == "t" || val == "true") ? 't' : 'f'
|
val = (val == "t" || val == "true") ? 't' : 'f'
|
||||||
end
|
end
|
||||||
|
|
||||||
if type == Types::Fixnum && !(Fixnum === val)
|
if type == types[:fixnum] && !(Fixnum === val)
|
||||||
val = val.to_i
|
val = val.to_i
|
||||||
end
|
end
|
||||||
|
|
||||||
if type == Types::Null && val != ''
|
if type == types[:null] && val != ''
|
||||||
type = get_data_type(val)
|
type = get_data_type(val)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -171,25 +168,15 @@ module SiteSettingExtension
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
# We're currently in the process of refactoring our Enums. When that's
|
|
||||||
# done we should pop back and fix this to something better.
|
|
||||||
def get_data_type_string(val)
|
|
||||||
case get_data_type(val)
|
|
||||||
when Types::String then 'string'
|
|
||||||
when Types::Fixnum then 'number'
|
|
||||||
when Types::Bool then 'bool'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def get_data_type(val)
|
def get_data_type(val)
|
||||||
return Types::Null if val.nil?
|
return types[:null] if val.nil?
|
||||||
|
|
||||||
if String === val
|
if String === val
|
||||||
Types::String
|
types[:string]
|
||||||
elsif Fixnum === val
|
elsif Fixnum === val
|
||||||
Types::Fixnum
|
types[:fixnum]
|
||||||
elsif TrueClass === val || FalseClass === val
|
elsif TrueClass === val || FalseClass === val
|
||||||
Types::Bool
|
types[:bool]
|
||||||
else
|
else
|
||||||
raise ArgumentError.new :val
|
raise ArgumentError.new :val
|
||||||
end
|
end
|
||||||
|
@ -197,13 +184,13 @@ module SiteSettingExtension
|
||||||
|
|
||||||
def convert(value, type)
|
def convert(value, type)
|
||||||
case type
|
case type
|
||||||
when Types::Fixnum
|
when types[:fixnum]
|
||||||
value.to_i
|
value.to_i
|
||||||
when Types::String
|
when types[:string]
|
||||||
value
|
value
|
||||||
when Types::Bool
|
when types[:bool]
|
||||||
value == "t"
|
value == "t"
|
||||||
when Types::Null
|
when types[:null]
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue