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(" ")