module QbwcRequests::OrderedFields
Public Class Methods
included(base)
click to toggle source
# File lib/qbwc_requests/ordered_fields.rb, line 57 def self.included(base) base.extend(ActiveModel::Naming) base.include(ActiveModel::Validations) base.include(ActiveModel::Conversion) base.extend(ClassMethods) base.validates_with(SubModelsValidator) end
Public Instance Methods
ordered_fields()
click to toggle source
# File lib/qbwc_requests/ordered_fields.rb, line 65 def ordered_fields return {} if self.class.attr_order.blank? new_hash = {} for attribute in self.class.attr_order value = send(attribute) if value.present? if value.kind_of?(Array) result = value.map { |item | item.respond_to?(:ordered_fields) ? item.ordered_fields : item } else result = value.respond_to?(:ordered_fields) ? value.ordered_fields : value end new_hash[attribute] = result end end new_hash end