Class: OrigenAppGenerators::Base

Inherits:
Origen::CodeGenerators::Base
  • Object
show all
Includes:
Origen::Utility::InputCapture
Defined in:
lib/origen_app_generators/base.rb

Overview

This is the base generator used by all generators in this application

Direct Known Subclasses

Application, New

Instance Method Summary collapse

Instance Method Details

#get_common_user_inputObject



28
29
30
# File 'lib/origen_app_generators/base.rb', line 28

def get_common_user_input
  get_name_and_namespace
end

#get_lastest_origen_versionObject



32
33
34
# File 'lib/origen_app_generators/base.rb', line 32

def get_lastest_origen_version
  @latest_origen_version = (Gems.info 'origen')['version']
end

#set_source_pathsObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/origen_app_generators/base.rb', line 8

def set_source_paths
  # The base Origen generator puts the Origen core directory on the source path, in retrospect this
  # was a bad idea and makes for hard to debug errors if an app generator resolves a template from
  # outside of this app.
  # So to keep things sane remove any inherited source paths.
  self.class.source_paths.pop until self.class.source_paths.empty?
  klass = self.class
  until klass == OrigenAppGenerators::Base
    dir = klass.to_s.sub('OrigenAppGenerators::', '').split('::').map(&:underscore).join('/')
    dir = File.expand_path("../../../templates/app_generators/#{dir}", __FILE__)
    self.class.source_paths << dir if File.exist?(dir)
    klass = klass.superclass
  end
end

#set_typeObject

Just makes the type (:plugin or :application) available to all templates



24
25
26
# File 'lib/origen_app_generators/base.rb', line 24

def set_type
  @type = type
end