Class: Origen::Generator::Flow
Instance Attribute Summary collapse
-
#top_level ⇒ Object
Returns the value of attribute top_level.
Instance Method Summary collapse
Instance Attribute Details
#top_level ⇒ Object
Returns the value of attribute top_level.
4 5 6 |
# File 'lib/origen/generator/flow.rb', line 4 def top_level @top_level end |
Instance Method Details
#create(options = {}, &block) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/origen/generator/flow.rb', line 6 def create( = {}, &block) # Refresh the target to start all settings from scratch each time # This is an easy way to reset all registered values Origen.app.reload_target! Origen.tester. = :program # Make the top level flow globally available, this helps to assign test descriptions # to the correct flow whenever tests are instantiated from sub-flows if Origen.interface_loaded? && Origen.interface.top_level_flow sub_flow = true if Origen.tester.doc? Origen.interface.flow.start_section end else sub_flow = false end job.output_file_body = .delete(:name).to_s if [:name] if sub_flow interface = Origen.interface opts = Origen.generator.option_pipeline.pop || {} interface.instance_exec(opts, &block) if Origen.tester.doc? Origen.interface.flow.stop_section end interface.close(flow: true, sub_flow: true) else Origen.log.info "Generating... #{Origen.file_handler.current_file.basename}" interface = Origen.reset_interface() Origen.interface.set_top_level_flow Origen.interface.flow_generator.set_flow_description(Origen.interface.consume_comments) interface.instance_eval(&block) interface.close(flow: true) end end |
#job ⇒ Object
44 45 46 |
# File 'lib/origen/generator/flow.rb', line 44 def job Origen.app.current_job end |
#reset ⇒ Object
40 41 42 |
# File 'lib/origen/generator/flow.rb', line 40 def reset Origen.interface.clear_top_level_flow if Origen.interface_loaded? end |