djwonk
2007-May-19 16:20 UTC
[PATCH] attr_private for hiding a database column, improves encapsulation
I''d like your feedback on a patch I submitted. I''ve included an excerpt from it below. http://dev.rubyonrails.org/ticket/8355 [PATCH] attr_private for hiding a database column, improves encapsulation This is a patch on ActiveRecord that creates ''attr_private''. attr_private provides a way to make one or more database columns appear to be private. This allows AR models to be better encapsulated, meaning that they can hide their implementation details. class NegotiatingAgent < ActiveRecord::Base attr_private :min_acceptable_price end r = NegotiatingAgent.new r.min_acceptable_price # => NoMethodError r.min_acceptable_price = 350 # => NoMethodError r[:min_acceptable_price] # => PrivateAttributeError r[:min_acceptable_price] = 250 # => PrivateAttributeError r.attributes # will not include :min_acceptable_price More information on the motivating reasons (and other workarounds I tried first) can be found in Trac: http://dev.rubyonrails.org/ticket/8355 Thanks, David James P.S. I''m at RailsConf, please say hi if you see me. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to rubyonrails-core@googlegroups.com To unsubscribe from this group, send email to rubyonrails-core-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en -~----------~----~----~----~------~----~------~--~---