Class: Origen::SubBlock
- Includes:
- Model
- Defined in:
- lib/origen/sub_blocks.rb
Overview
A simple class that will be instantiated by default when a sub block is defined without another class name specified
This class includes support for registers, pins, etc.
Instance Method Summary collapse
-
#method_missing(method, *args, &block) ⇒ Object
Used to create attribute accessors on the fly.
Methods included from Model
#_resolve_controller_class, #add_configuration, #add_mode, #configuration, #configuration=, #configurations, #current_configuration, #current_mode, #current_mode=, #delete_all_modes, #delete_all_specs_and_notes, #find_specs, #has_mode?, #ip_name, #log, #modes, #read_memory, #with_configuration, #with_each_mode, #with_mode, #wrap_in_controller, #write_memory
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
Used to create attribute accessors on the fly.
On first call of a missing method a method is generated to avoid the missing lookup next time, this should be faster for repeated lookups of the same method, e.g. reg
284 285 286 287 288 289 290 291 292 293 294 295 296 |
# File 'lib/origen/sub_blocks.rb', line 284 def method_missing(method, *args, &block) return regs(method) if self.has_reg?(method) if method.to_s =~ /=$/ define_singleton_method(method) do |val| instance_variable_set("@#{method.to_s.sub('=', '')}", val) end else define_singleton_method(method) do instance_variable_get("@#{method}") end end send(method, *args, &block) end |