Module: ArtirixDataModels::Model::Attributes::ClassMethods

Defined in:
lib/artirix_data_models/model.rb

Instance Method Summary collapse

Instance Method Details

#all_defined_attributesObject

deal with model inheritance



167
168
169
# File 'lib/artirix_data_models/model.rb', line 167

def all_defined_attributes
  attribute_config.all_attributes
end

#attribute(*attributes) ⇒ Object



153
154
155
156
# File 'lib/artirix_data_models/model.rb', line 153

def attribute(*attributes)
  options = attributes.extract_options!
  attributes.each { |attribute| _define_attribute attribute, options }
end

#attribute_configObject



158
159
160
# File 'lib/artirix_data_models/model.rb', line 158

def attribute_config
  @attribute_config ||= AttributeConfig.new
end

#defined_attributesObject



162
163
164
# File 'lib/artirix_data_models/model.rb', line 162

def defined_attributes
  attribute_config.attributes
end

#inherited(child_class) ⇒ Object



171
172
173
# File 'lib/artirix_data_models/model.rb', line 171

def inherited(child_class)
  child_class.attribute_config.parent_attribute_config = attribute_config
end

#writer_visibilityObject



175
176
177
# File 'lib/artirix_data_models/model.rb', line 175

def writer_visibility
  @writer_visibility ||= :private
end

#writer_visibility=(visibility) ⇒ Object

Raises:

  • (InvalidArgumentError)


179
180
181
182
# File 'lib/artirix_data_models/model.rb', line 179

def writer_visibility=(visibility)
  raise InvalidArgumentError, "Invalid visibility #{visibility.inspect}" unless [:public, :private, :protected].include? visibility
  @writer_visibility = visibility
end