aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/api/generator.rb
diff options
context:
space:
mode:
authorGeorge Claghorn <george.claghorn@gmail.com>2017-08-26 14:14:33 -0400
committerGitHub <noreply@github.com>2017-08-26 14:14:33 -0400
commit184cd6e4ff605202229329bd0e8e89fa40e9273f (patch)
tree0f78d02accc38bc1f825e3711598432b4be960f3 /railties/lib/rails/api/generator.rb
parent4b95976f15ecd2d3a9655cb22b00a247253dfb08 (diff)
parent94bab8662a7d6ba6fda72836d6b38a0bf44c0120 (diff)
downloadrails-184cd6e4ff605202229329bd0e8e89fa40e9273f.tar.gz
rails-184cd6e4ff605202229329bd0e8e89fa40e9273f.tar.bz2
rails-184cd6e4ff605202229329bd0e8e89fa40e9273f.zip
Merge pull request #30426 from robin850/remove-top-level-ast-constants
Remove Active Storage duplicated classes from the API site
Diffstat (limited to 'railties/lib/rails/api/generator.rb')
-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