This may be trivial. I want to reference an object property from within an object method parameter list, if that makes sense.
Trivial example:
'tags'.ljust([calculated_length, obj.length].max)
where, in this example, obj refers to the string tags.
Is this even possible?
reference an object property from within an object method parameter list
Although you are within the method's arguments, you're still outside the object's scope. Ruby doesn't provide a reference to the object at that point.
If you want to refer to the same object multiple times, you'd usually just assign it to a variable:
str = 'tags'
str.ljust([8, str.length].max)
#=> "tags "
If you don't want to do that, there's yield_self which yields the receiver to the given block and returns the block's result:
'tags'.yield_self { |str| str.ljust([8, str.length].max) }
#=> "tags "
You can shorten this a little by referring to the block argument via _1:
'tags'.yield_self { _1.ljust([8, _1.length].max) }
#=> "tags "
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With