class Roqua::CoreApi::Models::ActiveVirtus
Public Class Methods
new(params = nil)
click to toggle source
Calls superclass method
# File lib/roqua/core_api/models/active_virtus.rb, line 11 def initialize(params = nil) super dates_from_xi(params) end
Public Instance Methods
assign_attributes(params = {})
click to toggle source
# File lib/roqua/core_api/models/active_virtus.rb, line 21 def assign_attributes(params = {}) self.attributes = params end
attributes=(params)
click to toggle source
Calls superclass method
# File lib/roqua/core_api/models/active_virtus.rb, line 16 def attributes=(params) dates_from_xi(params) super end
Private Instance Methods
date_from_xi(attribute, params)
click to toggle source
# File lib/roqua/core_api/models/active_virtus.rb, line 38 def date_from_xi(attribute, params) self[attribute] = { year: params.fetch("#{attribute}(1i)"), month: params.fetch("#{attribute}(2i)", 1), day: params.fetch("#{attribute}(3i)", 1), hour: params.fetch("#{attribute}(4i)", 0), min: params.fetch("#{attribute}(5i)", 0), sec: params.fetch("#{attribute}(6i)", 0) } rescue StandardError errors.add(attribute, I18n.t("errors.messages.invalid_date")) end
dates_from_xi(params)
click to toggle source
set Date and DateTime attributes by “name(1i)” style params
# File lib/roqua/core_api/models/active_virtus.rb, line 28 def dates_from_xi(params) return unless params dates_to_change = self.class.attribute_set.select do |a| a.type.primitive <= Date && params["#{a.name}(1i)"].present? end dates_to_change.each do |a| date_from_xi(a.name, params) end end