Module: Sequel::Plugins::PgTypecastOnLoad::ClassMethods
- Defined in:
- lib/sequel/plugins/pg_typecast_on_load.rb
Instance Attribute Summary collapse
-
#pg_typecast_on_load_columns ⇒ Object
readonly
The columns to typecast on load for this model.
Instance Method Summary collapse
-
#add_pg_typecast_on_load_columns(*columns) ⇒ Object
Add additional columns to typecast on load for this model.
- #call(values) ⇒ Object
-
#freeze ⇒ Object
Freeze the typecast on load columns when freezing the model class.
-
#load_typecast_pg(values) ⇒ Object
Lookup the conversion proc for the column's oid in the Database object, and use it to convert the value.
Instance Attribute Details
#pg_typecast_on_load_columns ⇒ Object (readonly)
The columns to typecast on load for this model.
43 44 45 |
# File 'lib/sequel/plugins/pg_typecast_on_load.rb', line 43 def pg_typecast_on_load_columns @pg_typecast_on_load_columns end |
Instance Method Details
#add_pg_typecast_on_load_columns(*columns) ⇒ Object
Add additional columns to typecast on load for this model.
46 47 48 |
# File 'lib/sequel/plugins/pg_typecast_on_load.rb', line 46 def add_pg_typecast_on_load_columns(*columns) @pg_typecast_on_load_columns.concat(columns) end |
#call(values) ⇒ Object
50 51 52 |
# File 'lib/sequel/plugins/pg_typecast_on_load.rb', line 50 def call(values) super(load_typecast_pg(values)) end |
#freeze ⇒ Object
Freeze the typecast on load columns when freezing the model class.
55 56 57 58 59 |
# File 'lib/sequel/plugins/pg_typecast_on_load.rb', line 55 def freeze @pg_typecast_on_load_columns.freeze super end |
#load_typecast_pg(values) ⇒ Object
Lookup the conversion proc for the column's oid in the Database object, and use it to convert the value.
63 64 65 66 67 68 69 70 |
# File 'lib/sequel/plugins/pg_typecast_on_load.rb', line 63 def load_typecast_pg(values) pg_typecast_on_load_columns.each do |c| if (v = values[c]).is_a?(String) && (oid = db_schema[c][:oid]) && (pr = db.conversion_procs[oid]) values[c] = pr.call(v) end end values end |