diff options
author | Robin Dupret <robin.dupret@gmail.com> | 2017-08-26 18:55:38 +0200 |
---|---|---|
committer | Robin Dupret <robin.dupret@gmail.com> | 2017-08-26 19:07:51 +0200 |
commit | 94bab8662a7d6ba6fda72836d6b38a0bf44c0120 (patch) | |
tree | cca63f0dc25936c0c723fc8ac3a6b3a83a5921f1 /railties/lib/rails | |
parent | a8bc4bd41edab5175514d9195b87d76e646a388a (diff) | |
download | rails-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/rails')
-rw-r--r-- | railties/lib/rails/api/generator.rb | 9 |
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 |