Methods
- A
- C
- H
- J
- P
- R
- S
Constants
HstorePair | = | begin quoted_string = /"[^"\\]*(?:\\.[^"\\]*)*"/ unquoted_string = /(?:\\.|[^\s,])[^\s=,\\]*(?:\\.[^\s=,\\]*|=[^,>])*/ /(#{quoted_string}|#{unquoted_string})\s*=>\s*(#{quoted_string}|#{unquoted_string})/ end |
ARRAY_ESCAPE | = | "\\" * 2 * 2 |
Instance Public methods
array_to_string(value, column, adapter, should_be_quoted = false)
Link
# File activerecord/lib/active_record/connection_adapters/postgresql/cast.rb, line 70 def array_to_string(value, column, adapter, should_be_quoted = false) casted_values = value.map do |val| if String === val if val == "NULL" "\"#{val}\"" else quote_and_escape(adapter.type_cast(val, column, true)) end else adapter.type_cast(val, column, true) end end "{#{casted_values.join(',')}}" end
cidr_to_string(object)
Link
hstore_to_string(object, array_member = false)
Link
# File activerecord/lib/active_record/connection_adapters/postgresql/cast.rb, line 38 def hstore_to_string(object, array_member = false) if Hash === object string = object.map { |k, v| "#{escape_hstore(k)}=>#{escape_hstore(v)}" }.join(',') string = escape_hstore(string) if array_member string else object end end
json_to_string(object)
Link
point_to_string(point)
Link
range_to_string(object)
Link
# File activerecord/lib/active_record/connection_adapters/postgresql/cast.rb, line 85 def range_to_string(object) from = object.begin.respond_to?(:infinite?) && object.begin.infinite? ? '' : object.begin to = object.end.respond_to?(:infinite?) && object.end.infinite? ? '' : object.end "[#{from},#{to}#{object.exclude_end? ? ')' : ']'}" end
string_to_array(string, oid)
Link
string_to_bit(value)
Link
string_to_cidr(string)
Link
string_to_hstore(string)
Link
# File activerecord/lib/active_record/connection_adapters/postgresql/cast.rb, line 48 def string_to_hstore(string) if string.nil? nil elsif String === string Hash[string.scan(HstorePair).map { |k, v| v = v.upcase == 'NULL' ? nil : v.gsub(/\A"(.*)"\Z/m,'\1').gsub(/\(.)/, '\1') k = k.gsub(/\A"(.*)"\Z/m,'\1').gsub(/\(.)/, '\1') [k, v] }] else string end end
string_to_json(string)
Link
string_to_point(string)
Link
string_to_time(string)
Link
# File activerecord/lib/active_record/connection_adapters/postgresql/cast.rb, line 16 def string_to_time(string) return string unless String === string case string when 'infinity'; 1.0 / 0.0 when '-infinity'; -1.0 / 0.0 when / BC$/ super("-" + string.sub(/ BC$/, "")) else super end end