Class: RLTK::CG::Module::GlobalCollection
- Inherits:
-
Object
- Object
- RLTK::CG::Module::GlobalCollection
- Includes:
- Enumerable
- Defined in:
- lib/rltk/cg/module.rb
Overview
This class is used to access a module’s global variables.
Instance Method Summary collapse
-
#[](key) ⇒ GlobalVariable
Retreive a GlobalVariable object.
-
#add(type, name) ⇒ Object
Add a global variable to a module.
-
#delete(global) ⇒ void
Remove a global variable from the module.
-
#each {|fun| ... } ⇒ Enumerator
An iterator for each global variable inside this collection.
-
#first ⇒ GlobalVariable?
The module’s first global variable if one has been added.
-
#initialize(mod) ⇒ GlobalCollection
constructor
A new instance of GlobalCollection.
-
#last ⇒ GlobalVariable?
The module’s last global variable if one has been added.
-
#named(name) ⇒ GlobalVariable?
The global variable with the given name.
-
#next(global) ⇒ GlobalVariable?
Global Next global variable in the collection.
-
#previous(global) ⇒ GlobalVariable?
Previous global variable in the collection.
Constructor Details
#initialize(mod) ⇒ GlobalCollection
Returns a new instance of GlobalCollection.
367 368 369 |
# File 'lib/rltk/cg/module.rb', line 367 def initialize(mod) @module = mod end |
Instance Method Details
#[](key) ⇒ GlobalVariable
Retreive a GlobalVariable object.
376 377 378 379 380 381 382 383 384 |
# File 'lib/rltk/cg/module.rb', line 376 def [](key) case key when String, Symbol self.named(key) when Integer (1...key).inject(self.first) { |global| if global then self.next(global) else break end } end end |
#add(type, name) ⇒ Object
Add a global variable to a module.
390 391 392 |
# File 'lib/rltk/cg/module.rb', line 390 def add(type, name) GlobalVariable.new(Bindings.add_global(@module, type, name)) end |
#delete(global) ⇒ void
This method returns an undefined value.
Remove a global variable from the module.
399 400 401 |
# File 'lib/rltk/cg/module.rb', line 399 def delete(global) Bindings.delete_global(global) end |
#each {|fun| ... } ⇒ Enumerator
An iterator for each global variable inside this collection.
408 409 410 411 412 413 414 415 416 417 |
# File 'lib/rltk/cg/module.rb', line 408 def each return to_enum(:each) unless block_given? global = self.first while global yield global global = self.next(global) end end |
#first ⇒ GlobalVariable?
Returns The module’s first global variable if one has been added.
420 421 422 |
# File 'lib/rltk/cg/module.rb', line 420 def first if (ptr = Bindings.get_first_global(@module)).null? then nil else GlobalValue.new(ptr) end end |
#last ⇒ GlobalVariable?
Returns The module’s last global variable if one has been added.
425 426 427 |
# File 'lib/rltk/cg/module.rb', line 425 def last if (ptr = Bindings.get_last_global(@module)).null? then nil else GlobalValue.new(ptr) end end |
#named(name) ⇒ GlobalVariable?
Returns The global variable with the given name.
432 433 434 |
# File 'lib/rltk/cg/module.rb', line 432 def named(name) if (ptr = Bindings.get_named_global(@module, name)).null? then nil else GlobalValue.new(ptr) end end |
#next(global) ⇒ GlobalVariable?
Returns global Next global variable in the collection.
439 440 441 |
# File 'lib/rltk/cg/module.rb', line 439 def next(global) if (ptr = Bindings.get_next_global(global)).null? then nil else GlobalValue.new(ptr) end end |
#previous(global) ⇒ GlobalVariable?
Returns Previous global variable in the collection.
446 447 448 |
# File 'lib/rltk/cg/module.rb', line 446 def previous(global) if (ptr = Bindings.get_previous_global(global)).null? then nil else GlobalValue.new(ptr) end end |