Sha256: cab0ecb14169a241ca4e3036ca6a27f3eccd5777dd6b2a93e6c244fa7c0274a3

Contents?: true

Size: 1.42 KB

Versions: 114

Compression:

Stored size: 1.42 KB

Contents

module Origen
  class Generator
    class Resources
      attr_accessor :top_level

      def create(options = {}, &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.generating = :program
        sub_flow = @top_level
        @top_level = true unless @top_level
        job.output_file_body = options.delete(:name).to_s if options[:name]
        if sub_flow
          interface = Origen.interface
          interface.resources_mode do
            opts = Origen.generator.option_pipeline.pop || {}
            interface.instance_exec(opts, &block)
          end
          interface.close(sub_resource: true)
        else
          Origen.log.info "Generating... #{Origen.file_handler.current_file.basename}"
          interface = Origen.reset_interface(options)
          Origen.app.listeners_for(:on_resource_start).each do |listener|
            listener.on_resource_start(options)
          end
          interface.resources_mode do
            interface.instance_eval(&block)
          end
          Origen.app.listeners_for(:on_resource_end).each do |listener|
            listener.on_resource_end(options)
          end
          interface.close
        end
      end

      def reset
        @top_level = false
      end

      def job
        Origen.app.current_job
      end
    end
  end
end

Version data entries

114 entries across 114 versions & 1 rubygems

Version Path
origen-0.60.7 lib/origen/generator/resources.rb
origen-0.60.6 lib/origen/generator/resources.rb
origen-0.60.5 lib/origen/generator/resources.rb
origen-0.60.4 lib/origen/generator/resources.rb
origen-0.60.3 lib/origen/generator/resources.rb
origen-0.60.2 lib/origen/generator/resources.rb
origen-0.60.1 lib/origen/generator/resources.rb
origen-0.60.0 lib/origen/generator/resources.rb
origen-0.59.8 lib/origen/generator/resources.rb
origen-0.59.7 lib/origen/generator/resources.rb
origen-0.59.6 lib/origen/generator/resources.rb
origen-0.59.5 lib/origen/generator/resources.rb
origen-0.59.4 lib/origen/generator/resources.rb
origen-0.59.3 lib/origen/generator/resources.rb
origen-0.59.2 lib/origen/generator/resources.rb
origen-0.59.1 lib/origen/generator/resources.rb
origen-0.59.0 lib/origen/generator/resources.rb
origen-0.58.0 lib/origen/generator/resources.rb
origen-0.57.2 lib/origen/generator/resources.rb
origen-0.57.1 lib/origen/generator/resources.rb