class Tiss::Model::Base
Constants
- DEFINED_ATTRIBUTES
Attributes
attributes[R]
Public Class Methods
attr_accessor(*vars)
click to toggle source
Calls superclass method
# File lib/tiss/model.rb, line 9 def attr_accessor(*vars) @attributes ||= [] @attributes.concat vars super(*vars) end
attribute_config(name, **opts)
click to toggle source
# File lib/tiss/model.rb, line 17 def attribute_config(name, **opts) DEFINED_ATTRIBUTES[self.name] << { name: name, options: opts } end
Public Instance Methods
attribute_configs()
click to toggle source
# File lib/tiss/model.rb, line 61 def attribute_configs DEFINED_ATTRIBUTES[self.class.name] end
attributes()
click to toggle source
# File lib/tiss/model.rb, line 22 def attributes (self.class.ancestors&.second&.attributes || []) + self.class.attributes end
attributes_by(version)
click to toggle source
# File lib/tiss/model.rb, line 26 def attributes_by(version) version = version.gsub('.', '_') attributes.map do |key| config = attribute_configs.find { |i| i[:name] == key } unless_versions = [] only_versions = [] if config unless_versions = config[:options] && config[:options].fetch(:unless, []) end if config only_versions = config[:options] && config[:options].fetch(:only, []) end if unless_versions.any? || only_versions.any? if (unless_versions.any? && unless_versions.include?(version)) || (only_versions.any? && !only_versions.include?(version)) nil else [key, send(key)] end else [key, send(key)] end end.compact.to_h end
attributes_with_values()
click to toggle source
# File lib/tiss/model.rb, line 55 def attributes_with_values attributes.map do |attr| [attr, send(attr)] end.to_h end