module ActiveAccess::AttributeMethods::ClassMethods
Public Instance Methods
attr_private(*attrs)
click to toggle source
# File lib/active_access/attribute_methods.rb, line 16 def attr_private(*attrs) update_attribute_method_access(:private, attrs) end
attr_private_writer(*attrs)
click to toggle source
# File lib/active_access/attribute_methods.rb, line 20 def attr_private_writer(*attrs) update_attribute_method_access(:readonly, attrs) end
define_attribute_methods(attrs=nil)
click to toggle source
Calls superclass method
# File lib/active_access/attribute_methods.rb, line 24 def define_attribute_methods(attrs=nil) if defined?(ActiveRecord) && (self < ActiveRecord::AttributeMethods) super() # takes no arguments reset_attribute_method_access else super # takes a list of attribute names as arguments reset_attribute_method_access(attrs) end end
Private Instance Methods
privatize_attribute_readers(attr)
click to toggle source
# File lib/active_access/attribute_methods.rb, line 68 def privatize_attribute_readers(attr) AttributeConventions.reader_names(attr).each do |name| private name if method_defined?(name) end end
privatize_attribute_writers(attr)
click to toggle source
# File lib/active_access/attribute_methods.rb, line 62 def privatize_attribute_writers(attr) AttributeConventions.writer_names(attr).each do |name| private name if method_defined?(name) end end
reset_attribute_method_access(attrs=nil)
click to toggle source
# File lib/active_access/attribute_methods.rb, line 44 def reset_attribute_method_access(attrs=nil) if attrs attr_syms = attrs.map(&:to_sym) attr_accesses = _attribute_access.slice(*attr_syms) else attr_accesses = _attribute_access end attr_accesses.each do |attr, access| if [:private, :readonly].include?(access) privatize_attribute_writers(attr) end privatize_attribute_readers(attr) if access == :private end end
update_attribute_method_access(level, attrs)
click to toggle source
# File lib/active_access/attribute_methods.rb, line 36 def update_attribute_method_access(level, attrs) self._attribute_access = self._attribute_access.dup attrs.each do |attr| self._attribute_access[attr.to_sym] = level end reset_attribute_method_access(attrs) end