Module: TableSchema::Helpers
- Included in:
- Constraints, Field, Infer, Schema, Types::Base
- Defined in:
- lib/tableschema/helpers.rb
Instance Method Summary collapse
- #convert_to_boolean(value) ⇒ Object
- #deep_symbolize_keys(descriptor) ⇒ Object
- #false_values ⇒ Object
- #get_class_for_type(type) ⇒ Object
- #true_values ⇒ Object
- #type_class_lookup ⇒ Object
Instance Method Details
#convert_to_boolean(value) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/tableschema/helpers.rb', line 19 def convert_to_boolean(value) if value.is_a?(Boolean) return value elsif true_values.include?(value.to_s.downcase) true elsif false_values.include?(value.to_s.downcase) false else nil end end |
#deep_symbolize_keys(descriptor) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/tableschema/helpers.rb', line 4 def deep_symbolize_keys(descriptor) case descriptor when Hash descriptor.inject({}) do |new_descriptor, (key, val)| key_sym = key.respond_to?(:to_sym) ? key.to_sym : key new_descriptor[key_sym] = deep_symbolize_keys(val) new_descriptor end when Enumerable descriptor.map{ |el| deep_symbolize_keys(el)} else descriptor end end |
#false_values ⇒ Object
35 36 37 |
# File 'lib/tableschema/helpers.rb', line 35 def false_values ['no', 'n', 'false', 'f', '0'] end |
#get_class_for_type(type) ⇒ Object
39 40 41 |
# File 'lib/tableschema/helpers.rb', line 39 def get_class_for_type(type) "TableSchema::Types::#{type_class_lookup[type.to_sym] || 'String'}" end |
#true_values ⇒ Object
31 32 33 |
# File 'lib/tableschema/helpers.rb', line 31 def true_values ['yes', 'y', 'true', 't', '1'] end |
#type_class_lookup ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/tableschema/helpers.rb', line 43 def type_class_lookup { any: 'Any', array: 'Array', base: 'Base', boolean: 'Boolean', date: 'Date', datetime: 'DateTime', geojson: 'GeoJSON', geopoint: 'GeoPoint', integer: 'Integer', number: 'Number', object: 'Object', string: 'String', time: 'Time', year: 'Year', yearmonth: 'YearMonth', duration: 'Duration', } end |