class TableSchema::Field
Attributes
constraints[R]
Public
format[R]
Public
name[R]
Public
required[R]
Public
type[R]
Public
Public Class Methods
new(descriptor, missing_values=nil)
click to toggle source
# File lib/tableschema/field.rb, line 11 def initialize(descriptor, missing_values=nil) self.merge! deep_symbolize_keys(descriptor) @name = self[:name] @type = self[:type] = self.fetch(:type, TableSchema::DEFAULTS[:type]) @format = self[:format] = self.fetch(:format, TableSchema::DEFAULTS[:format]) @constraints = self[:constraints] = self.fetch(:constraints, {}) @required = @constraints.fetch(:required, false) @missing_values = missing_values || default_missing_values end
Public Instance Methods
cast_type(value)
click to toggle source
# File lib/tableschema/field.rb, line 39 def cast_type(value) if is_null?(value) nil else type_class.new(self).cast(value) end end
cast_value(value, constraints: true)
click to toggle source
# File lib/tableschema/field.rb, line 25 def cast_value(value, constraints: true) cast_value = cast_type(value) return cast_value if constraints == false TableSchema::Constraints.new(self, cast_value).validate! cast_value end
descriptor()
click to toggle source
# File lib/tableschema/field.rb, line 21 def descriptor self.to_h end
test_value(value, constraints: true)
click to toggle source
# File lib/tableschema/field.rb, line 32 def test_value(value, constraints: true) cast_value(value, constraints: constraints) true rescue TableSchema::Exception false end
Private Instance Methods
default_missing_values()
click to toggle source
Private
# File lib/tableschema/field.rb, line 51 def default_missing_values defaults = TableSchema::DEFAULTS[:missing_values] @type == 'string' ? defaults - [''] : defaults end
is_null?(value)
click to toggle source
# File lib/tableschema/field.rb, line 60 def is_null?(value) @missing_values.include?(value) end
type_class()
click to toggle source
# File lib/tableschema/field.rb, line 56 def type_class Object.const_get get_class_for_type(@type) end