class ActiveRecord::ConnectionAdapters::AuroraServerless::Mysql2::Result
Constants
- VALUE_METHODS
Attributes
response[R]
Public Class Methods
new(response)
click to toggle source
# File lib/active_record/connection_adapters/aurora_serverless/mysql2/result.rb, line 13 def initialize(response) @response = response end
Public Instance Methods
each(**kwargs) { |r| ... }
click to toggle source
# File lib/active_record/connection_adapters/aurora_serverless/mysql2/result.rb, line 28 def each(**kwargs) eobj = each_object(kwargs) block_given? ? eobj.each { |r| yield(r) } : eobj end
fields()
click to toggle source
# File lib/active_record/connection_adapters/aurora_serverless/mysql2/result.rb, line 17 def fields @fields ||= begin md = @response.column_metadata md ? md.map(&:label) : [] end end
to_a()
click to toggle source
# File lib/active_record/connection_adapters/aurora_serverless/mysql2/result.rb, line 24 def to_a as_array end
Private Instance Methods
as_array()
click to toggle source
# File lib/active_record/connection_adapters/aurora_serverless/mysql2/result.rb, line 40 def as_array @as_array ||= (@response.records || []).map do |fields| fields.each_with_index.map do |field, index| type = @response.column_metadata[index].type_name type_cast(field, type) end end end
as_hash(symbolize_keys = true)
click to toggle source
# File lib/active_record/connection_adapters/aurora_serverless/mysql2/result.rb, line 49 def as_hash(symbolize_keys = true) @as_hash ||= begin h = ActiveRecord::Result.new(fields, as_array).to_a symbolize_keys ? h.map { |r| r.symbolize_keys! } : h end end
each_object(**kwargs)
click to toggle source
# File lib/active_record/connection_adapters/aurora_serverless/mysql2/result.rb, line 35 def each_object(**kwargs) symbolize_keys = kwargs[:symbolize_keys] kwargs[:as] == :hash ? as_hash(symbolize_keys) : as_array end
type_cast(field, type)
click to toggle source
# File lib/active_record/connection_adapters/aurora_serverless/mysql2/result.rb, line 56 def type_cast(field, type) return if field.is_null vmeth = VALUE_METHODS[type] || :string_value value = field.public_send(vmeth) case type when 'DECIMAL' then type_cast_decimal(value) when 'DATE' then type_cast_date(value) when 'YEAR' then type_cast_year(value) else value end end
type_cast_date(v)
click to toggle source
# File lib/active_record/connection_adapters/aurora_serverless/mysql2/result.rb, line 73 def type_cast_date(v) Date.parse(v) end
type_cast_decimal(v)
click to toggle source
# File lib/active_record/connection_adapters/aurora_serverless/mysql2/result.rb, line 69 def type_cast_decimal(v) BigDecimal(v) end
type_cast_year(v)
click to toggle source
# File lib/active_record/connection_adapters/aurora_serverless/mysql2/result.rb, line 77 def type_cast_year(v) v.to_i end