From 59cae0755eea9aa7be4d746427b007f61f33c4ec Mon Sep 17 00:00:00 2001 From: bogdanvlviv Date: Mon, 10 Sep 2018 19:10:44 +0300 Subject: Add mention about `ActiveRecord::Base::filter_attributes` to the changelog entry Also remove `# :nodoc:` for `ActiveRecord::Core::ClassMethods` in order to show non-nodoc methods in that module on the api docs http://edgeapi.rubyonrails.org --- activerecord/CHANGELOG.md | 9 +++++++-- activerecord/lib/active_record/core.rb | 12 ++++++------ 2 files changed, 13 insertions(+), 8 deletions(-) (limited to 'activerecord') diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index 336946b756..0bb5dfe313 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -9,11 +9,16 @@ *Darwin Wu* -* Configuration item `config.filter_parameters` could also filter out sensitive value of database column when call `#inspect`. +* Configuration item `config.filter_parameters` could also filter out + sensitive values of database columns when call `#inspect`. + We also added `ActiveRecord::Base::filter_attributes`/`=` in order to + specify sensitive attributes to specific model. ``` Rails.application.config.filter_parameters += [:credit_card_number] - Account.last.inspect # => # + Account.last.inspect # => # + SecureAccount.filter_attributes += [:name] + SecureAccount.last.inspect # => # ``` *Zhang Kang* diff --git a/activerecord/lib/active_record/core.rb b/activerecord/lib/active_record/core.rb index 0002941ff6..392602bc0f 100644 --- a/activerecord/lib/active_record/core.rb +++ b/activerecord/lib/active_record/core.rb @@ -139,7 +139,7 @@ module ActiveRecord self.default_connection_handler = ConnectionAdapters::ConnectionHandler.new end - module ClassMethods # :nodoc: + module ClassMethods def initialize_find_by_cache # :nodoc: @find_by_statement_cache = { true => Concurrent::Map.new, false => Concurrent::Map.new } end @@ -216,7 +216,7 @@ module ActiveRecord generated_association_methods end - def generated_association_methods + def generated_association_methods # :nodoc: @generated_association_methods ||= begin mod = const_set(:GeneratedAssociationMethods, Module.new) private_constant :GeneratedAssociationMethods @@ -226,7 +226,7 @@ module ActiveRecord end end - # Returns columns which shouldn't be exposed while calling #inspect. + # Returns columns which shouldn't be exposed while calling +#inspect+. def filter_attributes if defined?(@filter_attributes) @filter_attributes @@ -235,13 +235,13 @@ module ActiveRecord end end - # Specifies columns which shouldn't be exposed while calling #inspect. + # Specifies columns which shouldn't be exposed while calling +#inspect+. def filter_attributes=(attributes_names) @filter_attributes = attributes_names.map(&:to_s).to_set end # Returns a string like 'Post(id:integer, title:string, body:text)' - def inspect + def inspect # :nodoc: if self == Base super elsif abstract_class? @@ -257,7 +257,7 @@ module ActiveRecord end # Overwrite the default class equality method to provide support for decorated models. - def ===(object) + def ===(object) # :nodoc: object.is_a?(self) end -- cgit v1.2.3