Class: Rooq::ParameterConverter
- Inherits:
-
Object
- Object
- Rooq::ParameterConverter
- Defined in:
- lib/rooq/parameter_converter.rb
Overview
ParameterConverter converts Ruby objects to PostgreSQL-compatible parameter values.
Conversions:
- Time/DateTime -> ISO 8601 string
- Date -> ISO 8601 date string
- Hash -> JSON string
- Array of primitives -> PostgreSQL array literal
- Array of hashes -> JSON array string
- Symbol -> String
- Other types pass through unchanged
Instance Method Summary collapse
-
#convert(value) ⇒ Object
Convert a single parameter value.
-
#convert_all(params) ⇒ Array
Convert an array of parameter values.
Instance Method Details
#convert(value) ⇒ Object
Convert a single parameter value.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/rooq/parameter_converter.rb', line 28 def convert(value) case value when nil, true, false, Integer, Float value when String value when Time, DateTime value.iso8601 when Date value.iso8601 when Hash JSON.generate(value) when Array convert_array(value) when Symbol value.to_s else value end end |
#convert_all(params) ⇒ Array
Convert an array of parameter values.
52 53 54 |
# File 'lib/rooq/parameter_converter.rb', line 52 def convert_all(params) params.map { |p| convert(p) } end |