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
-
#app ⇒ Object
Since no application defined this sub-block class, consider its parent’s app to be the owning application.
-
#method_missing(method, *args, &block) ⇒ Object
Used to create attribute accessors on the fly.
Methods included from Model
#==, #_initialized?, #_resolve_controller_class, #add_configuration, #add_mode, #attributes, #clock!, #clock_apply, #clock_prepare, #configuration, #configuration=, #configurations, #current_configuration, #current_mode, #current_mode=, #delete_all_modes, #delete_all_specs_and_notes, #find_specs, #has_mode?, #inspect, #ip_name, #is_a_model_and_controller?, #is_an_origen_model?, #is_top_level?, #load_block, #log, #model, #modes, #read_memory, #respond_to?, #respond_to_directly?, #to_json, #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
614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 |
# File 'lib/origen/sub_blocks.rb', line 614 def method_missing(method, *args, &block) super rescue NoMethodError return regs(method) if has_reg?(method) return ports(method) if has_port?(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 |
Instance Method Details
#app ⇒ Object
Since no application defined this sub-block class, consider its parent’s app to be the owning application
606 607 608 |
# File 'lib/origen/sub_blocks.rb', line 606 def app parent.app end |