Sha256: 90d9e9c8c60254f6b1b1b615618d84e28529e9cbe244507b0fa86b5335a2b849
Contents?: true
Size: 898 Bytes
Versions: 6
Compression:
Stored size: 898 Bytes
Contents
module Rules::Parameters class Parameter VALID_TYPES = [:date, :integer, :float, :boolean, :string, :regexp] attr_accessor :name, :type, :key def self.cast(value, type) return value unless type case type when :date Date.parse(value.to_s) when :integer value.to_i when :float value.to_f when :boolean value.to_s == 'true' ? true : false when :string value.to_s when :regexp Regexp.new(value.to_s) else raise "Don't know how to cast #{type}" end end def initialize(options = {}) self.key = options[:key].to_sym self.name = options[:name] || options[:key].to_s.humanize self.type = options[:type] if options[:type] raise "Unknown type #{type}" if type && !VALID_TYPES.include?(type) end def to_s name end end end
Version data entries
6 entries across 6 versions & 1 rubygems