[ruby-core:77757] [Ruby trunk Feature#11925] Struct construction with kwargs

From: herwin@...
Date: 2016-10-25 06:58:43 UTC
List: ruby-core #77757
Issue #11925 has been updated by Herwin Quarantainenet.


What about `new_from_kwargs(**kwargs)` ? It's a bit long, but it describes the functionality exactly.

----------------------------------------
Feature #11925: Struct construction with kwargs
https://bugs.ruby-lang.org/issues/11925#change-61064

* Author: Ilya Vorontsov
* Status: Open
* Priority: Normal
* Assignee: 
----------------------------------------
Propose to make Struct subclass constructors which accept keyword arguments. Not sure, if it's reasonable to allow `.new` accept kwargs, so may be should use different method named like `.create`:

```ruby
  Point = Struct.new(:x,:y, :color)
  pt_1 = Point.create(x: 1, y: 2) # => Point<x: 1, y: 2, color: nil>
  pt_2 = Point.create!(x: 1, y: 2) # => ArgumentError, color not specified.
```

It will greatly simplify work with big structures, especially in cases when struct layout changes and for cases when structure can have lots of non-significant values. It also allows simpler ways to use implement default values for struct members.



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next