class DataKit::Dataset::Field
Constants
- Types
Attributes
key[RW]
name[RW]
type[RW]
Public Class Methods
convert(value, type)
click to toggle source
# File lib/data_kit/dataset/field.rb, line 58 def convert(value, type) return nil if type == :null || value.nil? reformatted = Converters::Number.reformat(value) case type when :integer then Converters::Integer.convert(reformatted) when :number then Converters::Number.convert(reformatted) when :boolean then Converters::Boolean.convert(value) when :datetime then Converters::DateTime.convert(value) else value.to_s end end
is_type?(value, type)
click to toggle source
# File lib/data_kit/dataset/field.rb, line 48 def is_type?(value, type) case type when :integer then Converters::Integer.match?(Converters::Number.reformat(value)) when :number then Converters::Number.match?(Converters::Number.reformat(value)) when :boolean then Converters::Boolean.match?(value) when :datetime then Converters::DateTime.match?(value) when :string then false end end
new(name, options = {})
click to toggle source
# File lib/data_kit/dataset/field.rb, line 11 def initialize(name, options = {}) @name = name @key = options[:key] || false @type = (options[:type] || :string).to_sym end
type?(value, hint_type = nil)
click to toggle source
# File lib/data_kit/dataset/field.rb, line 26 def type?(value, hint_type = nil) return :null if value.nil? if hint_type && is_type?(value, hint_type) return hint_type end reformatted = Converters::Number.reformat(value) if Converters::Integer.match?(reformatted) :integer elsif Converters::Number.match?(reformatted) :number elsif Converters::Boolean.match?(value) :boolean elsif Converters::DateTime.match?(value) :datetime else :string end end
Public Instance Methods
key?()
click to toggle source
# File lib/data_kit/dataset/field.rb, line 17 def key? key == true end
to_hash()
click to toggle source
# File lib/data_kit/dataset/field.rb, line 21 def to_hash { 'name' => name, 'type' => type.to_s, 'key' => key?} end