Class: OrigenAppGenerators::Base
- Inherits:
-
Origen::CodeGenerators::Base
- Object
- Origen::CodeGenerators::Base
- OrigenAppGenerators::Base
- 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
Instance Method Summary collapse
- #get_common_user_input ⇒ Object
- #get_lastest_origen_version ⇒ Object
- #set_source_paths ⇒ Object
-
#set_type ⇒ Object
Just makes the type (:plugin or :application) available to all templates.
Instance Method Details
#get_common_user_input ⇒ Object
42 43 44 |
# File 'lib/origen_app_generators/base.rb', line 42 def get_common_user_input get_name_and_namespace end |
#get_lastest_origen_version ⇒ Object
46 47 48 |
# File 'lib/origen_app_generators/base.rb', line 46 def get_lastest_origen_version @latest_origen_version = (Gems.info 'origen')['version'] end |
#set_source_paths ⇒ Object
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 |
# 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 if template_dir = OrigenAppGenerators.template_dirs[klass] dir = [] last_class = nil until klass.to_s =~ /^OrigenAppGenerators/ dir << "#{template_dir}/#{class_dir(klass)}" last_class = klass klass = klass.superclass end dir << "#{template_dir}/base" klass = last_class else dir = "#{Origen.root!}/templates/app_generators/#{class_dir(klass)}" end Array(dir).each do |dir| self.class.source_paths << dir if File.exist?(dir) && !self.class.source_paths.include?(dir) end klass = klass.superclass end end |
#set_type ⇒ Object
Just makes the type (:plugin or :application) available to all templates
38 39 40 |
# File 'lib/origen_app_generators/base.rb', line 38 def set_type @type = type end |