# active_access **Repository Path**: rubygems/active_access ## Basic Information - **Project Name**: active_access - **Description**: No description available - **Primary Language**: Ruby - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2016-10-14 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README = active_access The ActiveAccess mixin makes it easy to limit access to ActiveModel and ActiveRecord attributes by declaring generated attribute accessor methods private. Mixing the ActiveAcess::AttributeMethods into a class that mixes in ActiveModel::AttributeMethods or is derived from ActiveRecord::Base adds the attr_private and attr_private_writer macros. These macros change the behavior of +define_attribute_methods+ to declare generated attribute accessors private: +attr_private+ declares all accessors for an attribute private; +attr_private_writer+ declares only writer methods private. ActiveAccess recognizes the following attribute reader method name patterns: #name #name? #name_before_type_cast #name_changed? #name_change #name_was #_name ActiveAccess recognizes the following attribute writer method name patterns: #name= #name_will_change #reset_name! == Example class Widget < ActiveRecord::Base include ActiveAccess::AttributeMethods attr_private_writer :read_me attr_private :secret end Widget.new.respond_to? :read_me # => true Widget.new.read_me = "new value" # raises NoMethodError Widget.new.respond_to? :secret # => false Widget.new.secret = "new value" # raises NoMethodError == Limitations ActiveAccess only restricts access to named attribute accessors. Unnamed accessors such as ActiveRecord +read_attribute+ and +write_attribute+ as well as hash-style access are not restricted. Attribute aliases are also unrestricted. ActiveRecord does not allow attributes with private writers to be initialized (i.e. passed as parameters to +new+) or mass-assigned (passed as parameters to +assign_attributes+ or +attributes=+). == Copyright Copyright (c) 2012 Riley Lynch, Teleological Software, LLC. See LICENSE.txt for further details.