[#18042] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — gdefty@...
Hi,
[#18052] Enumerators that know about a block — "David A. Black" <dblack@...>
Hi --
[#18086] Suggestion to change Time#to_s format to an official standard — Dirkjan Bussink <d.bussink@...>
Hello people,
[#18110] [Ruby 1.9 - Feature #403] (Open) Add support to Haiku — Anonymous <redmine@...>
Issue #403 has been reported by Anonymous.
[#18121] [Ruby 1.8.7 - Bug #405] (Open) ssl.rb:31: [BUG] Bus Error — Anonymous <redmine@...>
Issue #405 has been reported by Anonymous.
[#18130] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — Brian Candler <B.Candler@...>
> Seriously though... Array.first is a noun.
[#18145] [PATCH] error.c (Init_Exception): Rename class "fatal" to "Fatal" — Otto Hilska <otto.hilska@...>
Hi,
Hi,
Nobuyoshi Nakada wrote:
Hi,
On Thu, Aug 7, 2008 at 1:37 AM, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
On Thu, Aug 7, 2008 at 15:48, Jeremy Kemper <jeremy@bitsweat.net> wrote:
[#18164] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — gdefty@...
In message "Re: [ruby-core:18133] Re: New array
[#18237] Severe problem with garbage collection — Bertram Scharpf <lists@...>
Hi,
[#18247] Thread#priority(=) will be obsolete — SASADA Koichi <ko1@...>
Hi,
[#18252] Re: result for mget [last:10 MIME/multipart] (1/1) (ruby-core ML) — "Giuseppe Bilotta" <giuseppe.bilotta@...>
>> We are planning to make Thread#priority(=) method as obsolete method
Hi,
[#18257] Definition of "Support levels", 1.9.1 supported platforms and recruitment for platform maintainers — "Yugui (Yuki Sonoda)" <yugui@...>
Hi, all.
HI! This answers the question that I asked a few days ago, thank you!
Hi,
Yukihiro Matsumoto wrote:
[#18263] Am I right that this is wrong? — "David A. Black" <dblack@...>
Hi --
Hi,
Hi --
On Wed, Aug 13, 2008 at 3:04 PM, David A. Black <dblack@rubypal.com> wrote:
[#18303] Ruby 1.8.6 yields 50%-100% performance gain when compiled at full optimization — kevin nolan <kpnolan@...>
After compiling Ruby 1.8.6 with '-O3 -mtune=K8 -march=K8' on an AMD 4800
kevin nolan:
On Sat, 2008-08-16 at 03:39 +0900, Shot (Piotr Szotkowski) wrote:
[#18314] [Bug #449] File.zero? returns true when given a directory on Windows — Anonymous <redmine@...>
Bug #449: File.zero? returns true when given a directory on Windows
Hi,
I submitted that original bug (first time using redmine :)). Here's some mo=
Hi,
Not at all - it means we're now free to do the right thing :)
On Mon, Aug 18, 2008 at 6:45 PM, John Lam (IRONRUBY)
[#18319] NEW Command: absolute_path() -- — "C.E. Thornton" <admin@...>
Core,
Hi,
Are you sure you didn't mean to use "~/oracle/bin"
Trans wrote:
[#18349] [Feature:1.9] autoload with a block — Nobuyoshi Nakada <nobu@...>
Hi,
[#18354] Retrieving bytecode for method — Michael Neumann <mneumann@...>
Hi,
[#18381] [Bug #496] DRb.start_service(nil) is very slow — Hongli Lai <redmine@...>
Bug #496: DRb.start_service(nil) is very slow
[#18387] [Bug:1.9] rubygems fails to cache spec file — "Yusuke ENDOH" <mame@...>
Hi,
[#18396] problems with test_io.rb on cygwin — Martin Duerst <duerst@...>
I have run into problems with test_io.rb on cygwin.
Hello,
[#18405] [Bug #512] String#% behavior — Federico Builes <redmine@...>
Bug #512: String#% behavior
[#18409] ruby-lang.org has old download links — Nate_Wiger@...
The download links here:
[#18414] DoS vulnerability in REXML — "Shugo Maeda" <shugo@...>
Hi,
[#18424] [Bug #528] Several ruby-mode.el improvements — Nathan Weizenbaum <redmine@...>
Bug #528: Several ruby-mode.el improvements
[ruby-core:18426] OpenStruct Patch
Sun Aug 31 20:49:42 2008 Thomas Sawyer <transfire@gmail.com>
* lib/ostruct.rb ([]): add [] method.
Allows members to be accessed by name.
* lib/ostruct.rb ([]=): add []= method.
Allows members to be set by name.
* lib/ostruct.rb (initialize): add support for block initialization.
OpenStruct can take a self yielding block.
T.
Attachments (1)
Index: lib/ostruct.rb
===================================================================
--- lib/ostruct.rb (revision 19001)
+++ lib/ostruct.rb (working copy)
@@ -41,6 +41,23 @@
#
# p data # -> <OpenStruct country="Australia" population=20000000>
#
+ # Also the OpenStruct can be initialized with a block:
+ #
+ # data = OpenStruct.new do |p|
+ # p.name = 'John'
+ # p.gender = :M
+ # p.age = 71
+ # end
+ #
+ # The two approaches can be combine, where the block take precedence.
+ #
+ # data = OpenStruct.new(:name => 'John', :age => 31) do |p|
+ # p.gender = :M
+ # p.age = 29
+ # end
+ #
+ # p data # -> <OpenStruct name="John" gender=:M age="29">
+ #
# By default, the resulting OpenStruct object will have no attributes.
#
def initialize(hash=nil)
@@ -51,6 +68,7 @@
new_ostruct_member(k)
end
end
+ yield self if block_given?
end
# Duplicate an OpenStruct object members.
@@ -77,6 +95,28 @@
end
end
+ # Access a value in the OpenStruct by name.
+ #
+ # o = OpenStruct.new
+ # o.t = 4
+ # o['t'] #=> 4
+ #
+ def [](name)
+ @table[name.to_sym]
+ end
+
+ # Set a value in the OpenStruct by name.
+ #
+ # o = OpenStruct.new
+ # o['t'] = 4
+ # o.t #=> 4
+ #
+ def []=(name, val)
+ raise TypeError, "can't modify frozen #{self.class}", caller(1) if frozen?
+ @table[name.to_sym]=val
+ end
+
+
def method_missing(mid, *args) # :nodoc:
mname = mid.id2name
len = args.length