[ruby-core:77147] [Ruby trunk Feature#12578] Instance Variables Assigned In parameters ( ala Crystal? )
From:
Ruby-Lang@...
Date:
2016-09-04 16:40:52 UTC
List:
ruby-core #77147
Issue #12578 has been updated by J旦rg W Mittag.
By the way, just as a historical note: up to and including Ruby 1.8.7, you could actually do this:
~~~ruby
define_method(:initialize) {|@thing_one, @thing_two|}
~~~
I have never actually seen this, though, which you can take as an indication of the usefulness of your suggestion.
----------------------------------------
Feature #12578: Instance Variables Assigned In parameters ( ala Crystal? )
https://bugs.ruby-lang.org/issues/12578#change-60362
* Author: Matt Lankford
* Status: Feedback
* Priority: Normal
* Assignee:
----------------------------------------
When I first saw the instance assignments in Crystal, I was floored... I have looked at all 18 pages in this tracker and thought it "must" have been mentioned in here... but I don't see it... pardon me if I missed it...
BUT
so in Crystal, this :
```ruby
class MyStuff
def initialize @thing_one , @thing_two
end
end
```
would replace :
```ruby
class MyStuff
def initialize thing_one , thing_two
@thing_one = thing_one
@thing_two = thing_two
end
end
```
One of the things I loved about ruby was `attr_accessor` / `reader` / `writer`...
I know in Crystal, it is a macro, but still at the millions of lines of boilerplate that would go away...
Has no one thought of stealing this from Crystal or is there a good reason this does not exist? ( and I will go sit down and color now )
--
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>