Module: RelationToStruct::ActiveRecord41ResultExtension

Extended by:
ActiveSupport::Concern
Defined in:
lib/relation_to_struct/active_record_result_41_extension.rb

Instance Method Summary collapse

Instance Method Details

#cast_values(type_overrides = {}) ⇒ Object

:nodoc:



8
9
10
11
12
13
14
15
# File 'lib/relation_to_struct/active_record_result_41_extension.rb', line 8

def cast_values(type_overrides = {}) # :nodoc:
  types = columns.map { |name| column_type(name, type_overrides) }
  result = rows.map do |values|
    types.zip(values).map { |type, value| type.type_cast(value) }
  end

  columns.one? ? result.map!(&:first) : result
end

#column_type_with_ar_42_semantics(name, type_overrides = {}) ⇒ Object



17
18
19
20
21
# File 'lib/relation_to_struct/active_record_result_41_extension.rb', line 17

def column_type_with_ar_42_semantics(name, type_overrides = {})
  type_overrides.fetch(name) do
    column_types.fetch(name, ::ActiveRecord::Result::IDENTITY_TYPE)
  end
end