[#75225] [Ruby trunk Feature#12324] Support OpenSSL 1.1.0 (and drop support for 0.9.6/0.9.7) — k@...
Issue #12324 has been reported by Kazuki Yamaguchi.
6 messages
2016/04/27
[#78693] Re: [Ruby trunk Feature#12324] Support OpenSSL 1.1.0 (and drop support for 0.9.6/0.9.7)
— Eric Wong <normalperson@...>
2016/12/17
k@rhe.jp wrote:
[#78701] Re: [Ruby trunk Feature#12324] Support OpenSSL 1.1.0 (and drop support for 0.9.6/0.9.7)
— Kazuki Yamaguchi <k@...>
2016/12/17
On Sat, Dec 17, 2016 at 01:31:12AM +0000, Eric Wong wrote:
[#78702] Re: [Ruby trunk Feature#12324] Support OpenSSL 1.1.0 (and drop support for 0.9.6/0.9.7)
— Eric Wong <normalperson@...>
2016/12/17
Kazuki Yamaguchi <k@rhe.jp> wrote:
[ruby-core:75196] [Ruby trunk Feature#12319] `Module#const_get` does not accept symbol with nested name
From:
sawadatsuyoshi@...
Date:
2016-04-26 07:21:27 UTC
List:
ruby-core #75196
Issue #12319 has been updated by Tsuyoshi Sawada.
Martin D端rst wrote:
> Strings can have lots of structure; Symbols essentially don't have structure.
If you look at the literal `:"B::C"`, then it might seem somewhat contrived, but in practical use, the argument passed to `const_get` can be (and in most case is) a variable. And since it is more common to express method or constant names as symbols rather than strings, it is natural that the relevant variable argument turns out to be a symbol (perhaps derived somewhere in the code from a string via `to_sym`). If it did not accept symbol at all, then it is easy to be reminded to just apply `to_s` to it, but if symbol works sometimes, then `to_s` can be easily forgotten. Then, later during the program run, when the variable turns out to hold a symbol representing a nested name, it suddenly raises a problem.
----------------------------------------
Feature #12319: `Module#const_get` does not accept symbol with nested name
https://bugs.ruby-lang.org/issues/12319#change-58329
* Author: Tsuyoshi Sawada
* Status: Open
* Priority: Normal
* Assignee:
----------------------------------------
`Module#const_get` accepts non-nested string, nested string, and non-nested symbol:
~~~ruby
class A; class B; class C end end end
A.const_get("B") # => A::B
A.const_get("B::C") # => A::B::C
A.const_get(:B) # => A::B
~~~
but does not accept nested symbol:
~~~ruby
A.const_get(:"B::C") # => NameError: wrong constant name B::C
~~~
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>