script/methods in facets-2.4.0 vs script/methods in facets-2.4.1

- old
+ new

@@ -1,60 +1,49 @@ #!/usr/bin/env ruby - -#!/usr/bin/env ruby - require 'enumerator' -desc "Show extension conflicts" -task :conflict do +def method_list + list = [] - #$: << 'lib' + ObjectSpace.each_object(Module) do |klass| + insta_methods = klass.public_instance_methods(true) + + klass.private_instance_methods(true) + + klass.protected_instance_methods(true) - libs = (ENV['LIBS'] || "").split(/[;:]/) + class_methods = klass.public_methods(true) + + klass.private_methods(true) + + klass.protected_methods(true) - original = `task/method_dump`.split(' ') - facets = `task/method_dump lib/facets`.split(' ') - other = `task/method_dump #{libs.join(' ')}`.split(' ') + klass.ancestors[1..-1].each do |ancestor| + #next unless ancestor.is_a?(Module) - facets = facets - original - other = other - original + if ancestor.is_a?(Class) + insta_methods -= ancestor.public_instance_methods(true) + + ancestor.private_instance_methods(true) + + ancestor.protected_instance_methods(true) - puts (facets & other).sort.join("\n") -end + class_methods -= ancestor.public_methods(true) + + ancestor.private_methods(true) + + ancestor.protected_methods(true) + end + end + class_methods -= Kernel.public_methods(true) + + Kernel.private_methods(true) + + Kernel.protected_methods(true) + class_methods.map!{|c| "#{klass}." + c} + insta_methods.map!{|c| "#{klass}#" + c} + list.concat(class_methods) + list.concat(insta_methods) + end + return list +end + ARGV.each{ |lib| require lib } -total_method_list = [] +puts method_list.sort.join("\n") -ObjectSpace.each_object(Class) do |klass| - insta_methods = klass.public_instance_methods(false) + - klass.private_instance_methods(false) + - klass.protected_instance_methods(false) - - - class_methods = klass.public_methods(false) + - klass.private_methods(false) + - klass.protected_methods(false) - - if klass.superclass - insta_methods -= klass.superclass.public_instance_methods + - klass.superclass.private_instance_methods + - klass.superclass.protected_instance_methods - - class_methods -= klass.superclass.public_methods + - klass.superclass.private_methods + - klass.superclass.protected_methods - end - - class_methods.map!{|c| "#{klass}." + c} - insta_methods.map!{|c| "#{klass}#" + c} - - total_method_list.concat(class_methods) - total_method_list.concat(insta_methods) -end - -puts total_method_list.join(" ")