[#61822] Plan Developers Meeting Japan April 2014 — Zachary Scott <e@...>
I would like to request developers meeting around April 17 or 18 in this month.
14 messages
2014/04/03
[#61825] Re: Plan Developers Meeting Japan April 2014
— Urabe Shyouhei <shyouhei@...>
2014/04/03
It's good if we have a meeting then.
[#61826] Re: Plan Developers Meeting Japan April 2014
— Zachary Scott <e@...>
2014/04/03
Regarding openssl issues, I’ve discussed possible meeting time with Martin last month and he seemed positive.
[#61833] Re: Plan Developers Meeting Japan April 2014
— Martin Bo煬et <martin.bosslet@...>
2014/04/03
Hi,
[#61847] Re: Plan Developers Meeting Japan April 2014
— Eric Wong <normalperson@...>
2014/04/03
Martin Boテ殕et <martin.bosslet@gmail.com> wrote:
[#61849] Re: Plan Developers Meeting Japan April 2014
— Zachary Scott <e@...>
2014/04/04
I will post summary of meeting on Google docs after the meeting.
[#61852] Re: Plan Developers Meeting Japan April 2014
— Eric Wong <normalperson@...>
2014/04/04
Zachary Scott <e@zzak.io> wrote:
[#61860] Re: Plan Developers Meeting Japan April 2014
— Zachary Scott <e@...>
2014/04/04
I’m ok with redmine, thanks for bringing up your concern!
[#62076] Candidacy to 2.1 branch maintainer. — Tomoyuki Chikanaga <nagachika00@...>
Hello,
7 messages
2014/04/17
[#62078] Re: Candidacy to 2.1 branch maintainer.
— SHIBATA Hiroshi <shibata.hiroshi@...>
2014/04/17
> And does anyone have counter proposal for 2.1 maintenance?
[ruby-core:62157] [ruby-trunk - Feature #9768] [Assigned] Method that is visible only within a certain module/class
From:
shugo@...
Date:
2014-04-25 06:43:17 UTC
List:
ruby-core #62157
Issue #9768 has been updated by Shugo Maeda.
Status changed from Open to Assigned
Assignee set to Yukihiro Matsumoto
Tsuyoshi Sawada wrote:
> Seeing that these custom methods are used only in the context of a certain module/class, I request for a way to define a method (`foo`) on a module/class (`A`) so that it will be visible only from within a specified module/class (`B`) or its descendants. The following illustrates this situation:
The original proposal of Refinements was able to be used in such a situation, but refinement inheritance in class hierarchies and refinement activation for reopened module definitions were removed (see https://bugs.ruby-lang.org/issues/4085#note-141 and other comments).
Matz said that a refinement should be activated only in a lexical scope explicitly specified, because users might be confused if methods are refined implicitly.
----------------------------------------
Feature #9768: Method that is visible only within a certain module/class
https://bugs.ruby-lang.org/issues/9768#change-46312
* Author: Tsuyoshi Sawada
* Status: Assigned
* Priority: Normal
* Assignee: Yukihiro Matsumoto
* Category:
* Target version:
----------------------------------------
Some frameworks/libraries monkeypatch their own methods on Ruby core classes like `String`, `Hash`, `Array`, etc., and that is often causing problems/concerns of name conflict.
Seeing that these custom methods are used only in the context of a certain module/class, I request for a way to define a method (`foo`) on a module/class (`A`) so that it will be visible only from within a specified module/class (`B`) or its descendants. The following illustrates this situation:
A.new.foo # => undefined
class B
A.new.foo # => defined
def bar
A.new.foo # => defined
end
def self.baz
A.new.foo # => defined
end
end
class C < B
A.new.foo # => defined
def bar
A.new.foo # => defined
end
def self.baz
A.new.foo # => defined
end
end
I do not have a certain syntax for this in mind, but I think it can be made much simpler, compared to the complicated syntax of refinement.
This is reminiscent of refinement, but they are pretty much different.
Refinement's purpose is to let certain methods be accessible from only a certain file. A typical use case would be a library developer defining their methods to be used from within the library and making such methods inaccessible from the end user.
On the other hand, the idea I am proposing here is for making method accessible from any file, but only within a certain module/class. A typical use case would be defining a method to be used by an end user, but only from within a context of certain module/class.
--
https://bugs.ruby-lang.org/