Method: Archimate::DataModel::Comparison::ClassMethods#model_attr
- Defined in:
- lib/archimate/data_model/comparison.rb
#model_attr(attr_sym, comparison_attr: nil, writable: false) ⇒ Object
Define the reader method (or call model_attr) Append the attr_sym to the @@attrs for the class
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/archimate/data_model/comparison.rb', line 60 def model_attr(attr_sym, comparison_attr: nil, writable: false) send(:attr_reader, attr_sym) attrs = attr_names << attr_sym class_variable_set(:@@attr_names, attrs.uniq) if comparison_attr != :no_compare attrs = comparison_attr_paths << (comparison_attr ? [attr_sym, comparison_attr] : attr_sym) class_variable_set(:@@comparison_attr_paths, attrs.uniq) end if writable define_method("#{attr_sym}=".to_sym) do |val| instance_variable_set(:@hash_key, nil) instance_variable_set("@#{attr_sym}".to_sym, val) end end end |