class Rasti::DB::TypeConverters::Postgres
Constants
- CONVERTERS
Public Class Methods
from_db(value)
click to toggle source
# File lib/rasti/db/type_converters/postgres.rb, line 20 def from_db(value) converter = find_from_db_converter value.class converter ? converter.from_db(value) : value end
to_db(db, collection_name, attribute_name, value)
click to toggle source
# File lib/rasti/db/type_converters/postgres.rb, line 15 def to_db(db, collection_name, attribute_name, value) converter, type = find_to_db_converter_and_type db, collection_name, attribute_name converter ? converter.to_db(value, type) : value end
Private Class Methods
find_from_db_converter(klass)
click to toggle source
# File lib/rasti/db/type_converters/postgres.rb, line 49 def find_from_db_converter(klass) if !from_db_converters.key?(klass) from_db_converters[klass] = CONVERTERS.detect { |c| c.from_db? klass } end from_db_converters[klass] end
find_to_db_converter_and_type(db, collection_name, attribute_name)
click to toggle source
# File lib/rasti/db/type_converters/postgres.rb, line 35 def find_to_db_converter_and_type(db, collection_name, attribute_name) key = [db.opts[:database], collection_name] to_db_converters[key] ||= begin columns = Hash[db.schema(collection_name)] to_db_converters[key] = columns.each_with_object({}) do |(name, schema), hash| converter = CONVERTERS.detect { |c| c.to_db? schema[:db_type] } hash[name] = [converter, schema[:db_type]] if converter end end to_db_converters[key].fetch(attribute_name, []) end
from_db_converters()
click to toggle source
# File lib/rasti/db/type_converters/postgres.rb, line 27 def from_db_converters @from_db_converters ||= {} end
to_db_converters()
click to toggle source
# File lib/rasti/db/type_converters/postgres.rb, line 31 def to_db_converters @to_db_converters ||= {} end