TypeConverters/BaseConverter
TypeConverters/IntegerConverter
TypeConverters/FloatConverter
TypeConverters/BigDecimalConverter
TypeConverters/StringConverter
TypeConverters/BooleanConverter
TypeConverters/DateConverter
TypeConverters/DateTimeConverter
TypeConverters/TimeConverter
TypeConverters/YAMLConverter
TypeConverters/JSONConverter
def included(_) return if @converters @converters = {} Neo4j::Shared::TypeConverters.constants.each do |constant_name| constant = Neo4j::Shared::TypeConverters.const_get(constant_name) register_converter(constant) if constant.respond_to?(:convert_type) end end
def register_converter(converter) converters[converter.convert_type] = converter end
def to_other(direction, value, type) fail "Unknown direction given: #{direction}" unless direction == :to_ruby || direction == :to_db found_converter = converters[type] return value unless found_converter return value if direction == :to_db && formatted_for_db?(found_converter, value) found_converter.send(direction, value) end
def typecaster_for(primitive_type) return nil if primitive_type.nil? converters.key?(primitive_type) ? converters[primitive_type] : nil end