Class: RubyParser::Legacy::RubyParserStuff::Environment
- Inherits:
-
Object
- Object
- RubyParser::Legacy::RubyParserStuff::Environment
- Defined in:
- lib/ruby_parser/legacy/ruby_parser_extras.rb
Instance Attribute Summary collapse
-
#dyn ⇒ Object
readonly
Returns the value of attribute dyn.
-
#env ⇒ Object
readonly
Returns the value of attribute env.
Instance Method Summary collapse
- #[](k) ⇒ Object
- #[]=(k, v) ⇒ Object
- #all ⇒ Object
- #current ⇒ Object
- #extend(dyn = false) ⇒ Object
-
#initialize(dyn = false) ⇒ Environment
constructor
A new instance of Environment.
- #reset ⇒ Object
- #unextend ⇒ Object
Constructor Details
#initialize(dyn = false) ⇒ Environment
Returns a new instance of Environment.
1305 1306 1307 1308 1309 |
# File 'lib/ruby_parser/legacy/ruby_parser_extras.rb', line 1305 def initialize dyn = false @dyn = [] @env = [] self.reset end |
Instance Attribute Details
#dyn ⇒ Object (readonly)
Returns the value of attribute dyn.
1280 1281 1282 |
# File 'lib/ruby_parser/legacy/ruby_parser_extras.rb', line 1280 def dyn @dyn end |
#env ⇒ Object (readonly)
Returns the value of attribute env.
1280 1281 1282 |
# File 'lib/ruby_parser/legacy/ruby_parser_extras.rb', line 1280 def env @env end |
Instance Method Details
#[](k) ⇒ Object
1282 1283 1284 |
# File 'lib/ruby_parser/legacy/ruby_parser_extras.rb', line 1282 def [] k self.all[k] end |
#[]=(k, v) ⇒ Object
1286 1287 1288 1289 |
# File 'lib/ruby_parser/legacy/ruby_parser_extras.rb', line 1286 def []= k, v raise "no" if v == true self.current[k] = v end |
#all ⇒ Object
1291 1292 1293 1294 |
# File 'lib/ruby_parser/legacy/ruby_parser_extras.rb', line 1291 def all idx = @dyn.index(false) || 0 @env[0..idx].reverse.inject { |env, scope| env.merge scope } end |
#current ⇒ Object
1296 1297 1298 |
# File 'lib/ruby_parser/legacy/ruby_parser_extras.rb', line 1296 def current @env.first end |
#extend(dyn = false) ⇒ Object
1300 1301 1302 1303 |
# File 'lib/ruby_parser/legacy/ruby_parser_extras.rb', line 1300 def extend dyn = false @dyn.unshift dyn @env.unshift({}) end |
#reset ⇒ Object
1311 1312 1313 1314 1315 |
# File 'lib/ruby_parser/legacy/ruby_parser_extras.rb', line 1311 def reset @dyn.clear @env.clear self.extend end |
#unextend ⇒ Object
1317 1318 1319 1320 1321 |
# File 'lib/ruby_parser/legacy/ruby_parser_extras.rb', line 1317 def unextend @dyn.shift @env.shift raise "You went too far unextending env" if @env.empty? end |