Class: Lotus::Generators::Application::Container

Inherits:
Lotus::Generators::Abstract show all
Defined in:
lib/lotus/generators/application/container.rb

Overview

Since:

  • 0.1.0

Instance Method Summary collapse

Constructor Details

#initialize(command) ⇒ Container

Returns a new instance of Container.

Since:

  • 0.1.0



8
9
10
11
12
13
14
15
16
17
# File 'lib/lotus/generators/application/container.rb', line 8

def initialize(command)
  super

  @slice_generator     = Slice.new(command)
  @lotus_head          = options.fetch(:lotus_head)
  @test                = options[:test]
  @lotus_model_version = '~> 0.2'

  cli.class.source_root(source)
end

Instance Method Details

#startObject

Since:

  • 0.1.0



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/lotus/generators/application/container.rb', line 19

def start

  opts      = {
    app_name:            app_name,
    lotus_head:          @lotus_head,
    test:                @test,
    lotus_model_version: @lotus_model_version
  }

  templates = {
    'Gemfile.tt'                 => 'Gemfile',
    'config.ru.tt'               => 'config.ru',
    'config/environment.rb.tt'   => 'config/environment.rb',
    'config/.env.tt'             => 'config/.env',
    'config/.env.development.tt' => 'config/.env.development',
    'config/.env.test.tt'        => 'config/.env.test',
    'lib/app_name.rb.tt'         => "lib/#{ app_name }.rb",
    'lib/config/mapping.rb.tt'   => 'lib/config/mapping.rb',
  }

  empty_directories = [
    "db",
    "lib/#{ app_name }/entities",
    "lib/#{ app_name }/repositories"
  ]

  case options[:test]
  when 'rspec'
    templates.merge!(
      'Rakefile.rspec.tt'           => 'Rakefile',
      'rspec.rspec.tt'              => '.rspec',
      'spec_helper.rb.rspec.tt'     => 'spec/spec_helper.rb',
      'features_helper.rb.rspec.tt' => 'spec/features_helper.rb',
      'capybara.rb.rspec.tt'        => 'spec/support/capybara.rb'
    )
  else # minitest (default)
    templates.merge!(
      'Rakefile.minitest.tt'           => 'Rakefile',
      'spec_helper.rb.minitest.tt'     => 'spec/spec_helper.rb',
      'features_helper.rb.minitest.tt' => 'spec/features_helper.rb'
    )
  end

  empty_directories << [
    "spec/#{ app_name }/entities",
    "spec/#{ app_name }/repositories",
    "spec/support"
  ]

  templates.each do |src, dst|
    cli.template(source.join(src), target.join(dst), opts)
  end

  empty_directories.flatten.each do |dir|
    gitkeep = '.gitkeep'
    cli.template(source.join(gitkeep), target.join(dir, gitkeep), opts)
  end

  @slice_generator.start
end