aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib
diff options
context:
space:
mode:
authorRobin Dupret <robin.dupret@gmail.com>2017-08-26 18:55:38 +0200
committerRobin Dupret <robin.dupret@gmail.com>2017-08-26 19:07:51 +0200
commit94bab8662a7d6ba6fda72836d6b38a0bf44c0120 (patch)
treecca63f0dc25936c0c723fc8ac3a6b3a83a5921f1 /railties/lib
parenta8bc4bd41edab5175514d9195b87d76e646a388a (diff)
downloadrails-94bab8662a7d6ba6fda72836d6b38a0bf44c0120.tar.gz
rails-94bab8662a7d6ba6fda72836d6b38a0bf44c0120.tar.bz2
rails-94bab8662a7d6ba6fda72836d6b38a0bf44c0120.zip
Remove Active Storage duplicated classes from the API site
Since cb5af0d7, some classes that are under Active Storage are now part of the API site. However, these classes aren't nested under a definition of the `ActiveStorage` module but rather name-spaced under it like `ActiveStorage::Foo`. Thus, these classes are present both under the ActiveStorage label and at the root of the site's sidebar so we have to strip out duplicates. [ci skip]
Diffstat (limited to 'railties/lib')
-rw-r--r--railties/lib/rails/api/generator.rb9
1 files changed, 8 insertions, 1 deletions
diff --git a/railties/lib/rails/api/generator.rb b/railties/lib/rails/api/generator.rb
index 6e5eec2e34..3405560b74 100644
--- a/railties/lib/rails/api/generator.rb
+++ b/railties/lib/rails/api/generator.rb
@@ -6,8 +6,11 @@ class RDoc::Generator::API < RDoc::Generator::SDoc # :nodoc:
RDoc::RDoc.add_generator self
def generate_class_tree_level(classes, visited = {})
- # Only process core extensions on the first visit.
+ # Only process core extensions on the first visit and remove
+ # Active Storage duplicated classes that are at the top level
+ # since they aren't nested under a definition of the `ActiveStorage` module.
if visited.empty?
+ classes = classes.reject { |klass| active_storage?(klass) }
core_exts, classes = classes.partition { |klass| core_extension?(klass) }
super.unshift([ "Core extensions", "", "", build_core_ext_subtree(core_exts, visited) ])
@@ -27,4 +30,8 @@ class RDoc::Generator::API < RDoc::Generator::SDoc # :nodoc:
def core_extension?(klass)
klass.name != "ActiveSupport" && klass.in_files.any? { |file| file.absolute_name.include?("core_ext") }
end
+
+ def active_storage?(klass)
+ klass.name != "ActiveStorage" && klass.in_files.all? { |file| file.absolute_name.include?("active_storage") }
+ end
end