Sha256: 998d2ba02fd1998f60134ebcce53716c0a8244d1660f8d0353797fd816ca90f5
Contents?: true
Size: 1.1 KB
Versions: 1
Compression:
Stored size: 1.1 KB
Contents
require 'virtus' class Roqua::CoreApi::Models::ActiveVirtus extend ActiveModel::Naming extend ActiveModel::Translation include ActiveModel::Validations include ActiveModel::Conversion include ActiveModel::Serialization include Virtus.model def attributes=(params) set_rails_dates(params) super end def assign_attributes(params = {}) self.attributes = params end private # set Date and DateTime attributes by "name(1i)" style params def set_rails_dates(params) self.class.attribute_set.select do |a| a.type.primitive <= Date && params.has_key?("#{a.name}(1i)") end.each do |a| set_date(a.name, params) end end def set_date(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 errors.add(attribute, I18n.t("errors.messages.invalid_date")) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
roqua-core-api-0.0.26 | lib/roqua/core_api/models/active_virtus.rb |