Module: Origen::Tester::Interface
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/origen/tester/interface.rb
Overview
Include this module in any class you define as a test interface
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
-
#app_identifier ⇒ Object
This identifier will be used to make labels and other references unique to the current application.
- #clear_top_level_flow ⇒ Object
- #close(options = {}) ⇒ Object
-
#comment(text) ⇒ Object
Add a comment line into the buffer.
- #comments ⇒ Object
-
#compile(file, options = {}) ⇒ Object
Compile a template file.
-
#consume_comments ⇒ Object
Returns the buffered description comments and clears the buffer.
-
#descriptions ⇒ Object
A storage Hash that all generators can push comment descriptions into when generating.
- #discard_comments ⇒ Object
- #flow_generator ⇒ Object
-
#identity_map ⇒ Object
:nodoc:.
- #import(file, options = {}) ⇒ Object
-
#referenced_patterns ⇒ Object
All generators should push to this array whenever they reference a pattern so that it is captured in the pattern list, e.g.
- #render(file, options = {}) ⇒ Object
-
#resources_mode ⇒ Object
Any tests generated within the given block will be generated in resources mode.
- #resources_mode? ⇒ Boolean
- #set_top_level_flow ⇒ Object
- #top_level_flow ⇒ Object (also: #top_level_flow_filename)
- #write_files(options = {}) ⇒ Object
Instance Method Details
#app_identifier ⇒ Object
This identifier will be used to make labels and other references unique to the current application. This will help to avoid name duplication if a program is comprised of many modules generated by Origen.
Override in the application interface to customize, by default the identifier will be Origen.config.initials
19 20 21 |
# File 'lib/origen/tester/interface.rb', line 19 def app_identifier Origen.config.initials || 'Anon App' end |
#clear_top_level_flow ⇒ Object
108 109 110 |
# File 'lib/origen/tester/interface.rb', line 108 def clear_top_level_flow @@top_level_flow = nil end |
#close(options = {}) ⇒ Object
23 24 25 26 27 |
# File 'lib/origen/tester/interface.rb', line 23 def close( = {}) sheet_generators.each do |generator| generator.close() end end |
#comment(text) ⇒ Object
Add a comment line into the buffer
76 77 78 |
# File 'lib/origen/tester/interface.rb', line 76 def comment(text) comments << text end |
#comments ⇒ Object
80 81 82 |
# File 'lib/origen/tester/interface.rb', line 80 def comments @@comments ||= [] end |
#compile(file, options = {}) ⇒ Object
Compile a template file
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/origen/tester/interface.rb', line 30 def compile(file, = {}) Origen.file_handler.preserve_state do begin file = Origen.file_handler.clean_path_to_template(file) Origen.generator.compile_file_or_directory(file, initial_options: ) rescue file = Origen.file_handler.clean_path_to(file) Origen.generator.compile_file_or_directory(file, initial_options: ) end end end |
#consume_comments ⇒ Object
Returns the buffered description comments and clears the buffer
89 90 91 92 93 |
# File 'lib/origen/tester/interface.rb', line 89 def consume_comments c = comments discard_comments c end |
#descriptions ⇒ Object
A storage Hash that all generators can push comment descriptions into when generating. At the end of a generation run this will contain all descriptions for all flows that were just created.
Access via Origen.interface.descriptions
118 119 120 |
# File 'lib/origen/tester/interface.rb', line 118 def descriptions @@descriptions ||= Parser::DescriptionLookup.new end |
#discard_comments ⇒ Object
84 85 86 |
# File 'lib/origen/tester/interface.rb', line 84 def discard_comments @@comments = nil end |
#flow_generator ⇒ Object
100 101 102 |
# File 'lib/origen/tester/interface.rb', line 100 def flow_generator flow end |
#identity_map ⇒ Object
:nodoc:
136 137 138 |
# File 'lib/origen/tester/interface.rb', line 136 def identity_map # :nodoc: @@identity_map ||= Origen::Tester::Generator::IdentityMap.new end |
#import(file, options = {}) ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/origen/tester/interface.rb', line 42 def import(file, = {}) # Attach the import request to the first generator, when it imports # it any generated resources will automatically find their way to the # correct generator/collection generator = flow || sheet_generators.first generator.import(file, ) end |
#referenced_patterns ⇒ Object
71 72 73 |
# File 'lib/origen/tester/interface.rb', line 71 def referenced_patterns @@referenced_patterns ||= [] end |
#render(file, options = {}) ⇒ Object
50 51 52 53 54 55 56 |
# File 'lib/origen/tester/interface.rb', line 50 def render(file, = {}) if sheet_generators.size > 1 fail "You must specify which generator to render content to! e.g. i.test_instances.render '#{file}'" else sheet_generators.first.render(file, ) end end |
#resources_mode ⇒ Object
Any tests generated within the given block will be generated in resources mode. Generally this means that all resources for a given test will be generated but flow entries will be inhibited.
125 126 127 128 129 130 |
# File 'lib/origen/tester/interface.rb', line 125 def resources_mode orig = @resources_mode @resources_mode = true yield @resources_mode = orig end |
#resources_mode? ⇒ Boolean
132 133 134 |
# File 'lib/origen/tester/interface.rb', line 132 def resources_mode? @resources_mode end |
#set_top_level_flow ⇒ Object
104 105 106 |
# File 'lib/origen/tester/interface.rb', line 104 def set_top_level_flow @@top_level_flow = flow_generator.output_file end |
#top_level_flow ⇒ Object Also known as: top_level_flow_filename
95 96 97 |
# File 'lib/origen/tester/interface.rb', line 95 def top_level_flow @@top_level_flow ||= nil end |
#write_files(options = {}) ⇒ Object
58 59 60 61 62 63 64 65 66 |
# File 'lib/origen/tester/interface.rb', line 58 def write_files( = {}) sheet_generators.each do |generator| generator.finalize() end sheet_generators.each do |generator| generator.write_to_file() if generator.to_be_written? end reset_globals end |