Re: [MacRuby] #204: Private methods redefined public are still in private_methods
#204: Private methods redefined public are still in private_methods ----------------------------------------+----------------------------------- Reporter: vincent.isambart@… | Owner: eloy.de.enige@… Type: defect | Status: new Priority: blocker | Milestone: MacRuby Later Component: MacRuby | Keywords: #reduction ----------------------------------------+----------------------------------- Comment(by christian@…): Replying to [comment:6 lsansonetti@…]:
This problem does not seem critical for 1.0, moving to Later.
I disagree: this bug causes 'bundler exec' to fail with the message 'Could not find task "exec".' Bundler is a very important gem for me, and of course a requirement for Rails 3. 'bundler exec' fails because the #exec method is both public and private on the Kernel module: {{{ Kernel.public_methods & Kernel.private_methods => [:load_plist, :load_bridge_support_file, :binding, :lambda, :proc, :framework, :autoload?, :autoload, :require, :load, :abort, :exit, :sleep, :spawn, :system, :exit!, :fork, :exec, :trap, :rand, :srand, :getpass, :test, :display, :p, :`, :readlines, :select, :readline, :gets, :puts, :putc, :print, :printf, :open, :syscall, :at_exit, :untrace_var, :trace_var, :caller, :loop, :throw, :catch, :local_variables, :global_variables, :raise, :fail, :block_given?, :iterator?, :eval, :warn, :Array, :String, :Float, :Integer, :format, :sprintf] }}} Bundler uses the Thor gem to define its command line, and Thor excludes private or protected methods from command-line parsing: {{{ def public_method?(instance) #:nodoc: collection = instance.private_methods + instance.protected_methods (collection & [name.to_s, name.to_sym]).empty? end }}} (From https://github.com/wycats/thor/blob/master/lib/thor/task.rb#L69 ) This implementation doesn't seem wrong to me, though it would obviously work if they had checked for inclusion in #public_methods instead. For the same reason the 'bundler open' command also fails with the same message. -- Ticket URL: <http://www.macruby.org/trac/ticket/204#comment:7> MacRuby <http://macruby.org/>
participants (1)
-
MacRuby