Module: RelationToStruct::ActiveRecord41ResultExtension
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/relation_to_struct/active_record_result_41_extension.rb
Instance Method Summary collapse
-
#cast_values(type_overrides = {}) ⇒ Object
:nodoc:.
- #column_type_with_ar_42_semantics(name, type_overrides = {}) ⇒ Object
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 |