Class: Rounders::Generators::Base

Inherits:
Thor::Group
  • Object
show all
Includes:
Plugins::Pluggable, Thor::Actions
Defined in:
lib/rounders/generators/base.rb

Class Method Summary collapse

Methods included from Plugins::Pluggable

included

Class Method Details

.inherited(klass) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/rounders/generators/base.rb', line 38

def inherited(klass)
  klass.define_singleton_method(:source_root) do
    default_source_root
  end

  klass.define_singleton_method(:generator_name) do
    @generator_name ||= feature_name.split('_').first
  end

  klass.define_singleton_method(:default_source_root) do
    return unless base_name && generator_name
    return unless default_generator_root
    path = Pathname.new(default_generator_root).join('templates')
    path if path.exist?
  end

  klass.define_singleton_method(:base_name) do
    @base_name ||= begin
      base = name.to_s.split('::').first
      Rounders::Util.infrect(base).underscore unless base.nil?
    end
  end

  klass.define_singleton_method(:default_generator_root) do
    path = Pathname(__FILE__).dirname.join(generator_name).expand_path
    path if path.exist?
  end
end