1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-03 15:18:01 +00:00

Add Listing Local Variables as a ruby til.

This commit is contained in:
jbranchaud
2015-07-25 22:05:58 -05:00
parent 26f0d23588
commit f9f19aefdd
2 changed files with 31 additions and 0 deletions

View File

@@ -107,6 +107,7 @@ smart people at [Hashrocket](http://hashrocket.com/).
- [FactoryGirl Sequences](ruby/factory-girl-sequences.md)
- [Finding The Source of Ruby Methods](ruby/finding-the-source-of-ruby-methods.md)
- [Limit Split](ruby/limit-split.md)
- [Listing Local Variables](ruby/listing-local-variables.md)
- [Override The Initial Sequence Value](ruby/override-the-initial-sequence-value.md)
- [Parallel Bundle Install](ruby/parallel-bundle-install.md)
- [Percent Notation](ruby/percent-notation.md)

View File

@@ -0,0 +1,30 @@
# Listing Local Variables
In Ruby 2.2, the `binding` object gives us access to a method
`#local_variables` which returns the symbol names of the binding's local
variables.
```ruby
def square(x)
puts binding.local_variables.inspect
x.times do |a|
puts binding.local_variables.inspect
end
z = x * x
puts binding.local_variables.inspect
z
end
square(2)
```
which results in
```ruby
[:x, :z]
[:a, :x, :z]
[:a, :x, :z]
[:x, :z]
=> 4
```
[source](http://ruby-doc.org/core-2.2.0/Binding.html#method-i-local_variables)