Class: EventSourceryGenerators::Generators::Project

Inherits:
Thor::Group
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/event_sourcery_generators/generators/project.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.source_rootObject



10
11
12
# File 'lib/event_sourcery_generators/generators/project.rb', line 10

def self.source_root
  File.join(File.dirname(__FILE__), 'templates', 'project')
end

Instance Method Details

#add_readmeObject



19
20
21
# File 'lib/event_sourcery_generators/generators/project.rb', line 19

def add_readme
  template('readme.md.tt', "#{project_name}/README.md")
end

#run_setup_scriptObject



55
56
57
58
59
60
61
# File 'lib/event_sourcery_generators/generators/project.rb', line 55

def run_setup_script
  return if options[:skip_setup]

  inside(project_name) do
    run('./script/setup')
  end
end

#setup_appObject



23
24
25
26
27
28
29
# File 'lib/event_sourcery_generators/generators/project.rb', line 23

def setup_app
  template('server.rb.tt', "#{project_name}/app/web/server.rb")

  %w{aggregates commands events projections reactors}.each do |directory|
    create_file("#{project_name}/app/#{directory}/.gitkeep")
  end
end

#setup_environmentObject



31
32
33
# File 'lib/event_sourcery_generators/generators/project.rb', line 31

def setup_environment
  template('environment.rb.tt', "#{project_name}/config/environment.rb")
end

#setup_processes_infrastructureObject



49
50
51
52
53
# File 'lib/event_sourcery_generators/generators/project.rb', line 49

def setup_processes_infrastructure
  template('Procfile.tt', "#{project_name}/Procfile")
  template('config.ru.tt', "#{project_name}/config.ru")
  template('app.json.tt', "#{project_name}/app.json")
end

#setup_rspecObject



42
43
44
45
46
47
# File 'lib/event_sourcery_generators/generators/project.rb', line 42

def setup_rspec
  return if options[:skip_tests]

  template('spec_helper.rb.tt', "#{project_name}/spec/spec_helper.rb")
  template('request_helpers.rb.tt', "#{project_name}/spec/support/request_helpers.rb")
end

#setup_ruby_projectObject



14
15
16
17
# File 'lib/event_sourcery_generators/generators/project.rb', line 14

def setup_ruby_project
  template('gemfile.tt', "#{project_name}/Gemfile")
  template('rakefile.tt', "#{project_name}/Rakefile")
end

#setup_scriptsObject



35
36
37
38
39
40
# File 'lib/event_sourcery_generators/generators/project.rb', line 35

def setup_scripts
  %w{server setup}.each do |script_name|
    template("script_#{script_name}.tt", "#{project_name}/script/#{script_name}")
    chmod("#{project_name}/script/#{script_name}", 0755)
  end
end