Class: RLTK::CG::Module::FunctionCollection
- Includes:
- Enumerable
- Defined in:
- lib/rltk/cg/module.rb
Overview
This class is used to access a module’s Functions.
Instance Method Summary collapse
-
#[](key) ⇒ Function
Retreive a Function object.
-
#add(name, *type_info, &block) ⇒ Function
Add a Function to this module.
-
#delete(fun) ⇒ void
Remove a function from the module.
-
#each {|fun| ... } ⇒ Enumerator
An iterator for each function inside this collection.
-
#first ⇒ Function?
The module’s first function if one has been added.
-
#initialize(mod) ⇒ FunctionCollection
constructor
A new instance of FunctionCollection.
-
#last ⇒ Function?
The module’s last function if one has been added.
-
#named(name) ⇒ Function?
The function with the given name.
-
#next(fun) ⇒ Function?
Next function in the collection.
-
#previous(fun) ⇒ Function?
Previous function in the collection.
Constructor Details
#initialize(mod) ⇒ FunctionCollection
Returns a new instance of FunctionCollection.
230 231 232 |
# File 'lib/rltk/cg/module.rb', line 230 def initialize(mod) @module = mod end |
Instance Method Details
#[](key) ⇒ Function
Retreive a Function object.
239 240 241 242 243 244 245 246 247 |
# File 'lib/rltk/cg/module.rb', line 239 def [](key) case key when String, Symbol self.named(key) when Integer (1...key).inject(self.first) { |fun| if fun then self.next(fun) else break end } end end |
#add(name, *type_info, &block) ⇒ Function
Add a Function to this module.
256 257 258 |
# File 'lib/rltk/cg/module.rb', line 256 def add(name, *type_info, &block) Function.new(@module, name, *type_info, &block) end |
#delete(fun) ⇒ void
This method returns an undefined value.
Remove a function from the module.
265 266 267 |
# File 'lib/rltk/cg/module.rb', line 265 def delete(fun) Bindings.delete_function(fun) end |
#each {|fun| ... } ⇒ Enumerator
An iterator for each function inside this collection.
274 275 276 277 278 279 280 281 282 283 |
# File 'lib/rltk/cg/module.rb', line 274 def each return to_enum(:each) unless block_given? fun = self.first while fun yield fun fun = self.next(fun) end end |
#first ⇒ Function?
Returns The module’s first function if one has been added.
286 287 288 |
# File 'lib/rltk/cg/module.rb', line 286 def first if (ptr = Bindings.get_first_function(@module)).null? then nil else Function.new(ptr) end end |
#last ⇒ Function?
Returns The module’s last function if one has been added.
291 292 293 |
# File 'lib/rltk/cg/module.rb', line 291 def last if (ptr = Bindings.get_last_function(@module)).null? then nil else Function.new(ptr) end end |
#named(name) ⇒ Function?
Returns The function with the given name.
298 299 300 |
# File 'lib/rltk/cg/module.rb', line 298 def named(name) if (ptr = Bindings.get_named_function(@module, name)).null? then nil else Function.new(ptr) end end |
#next(fun) ⇒ Function?
Returns Next function in the collection.
305 306 307 |
# File 'lib/rltk/cg/module.rb', line 305 def next(fun) if (ptr = Bindings.get_next_function(fun)).null? then nil else Function.new(ptr) end end |
#previous(fun) ⇒ Function?
Returns Previous function in the collection.
312 313 314 |
# File 'lib/rltk/cg/module.rb', line 312 def previous(fun) if (ptr = Bindings.get_previous_function(fun)).null? then nil else Function.new(ptr) end end |