Class: Jarbs::ProjectGenerator

Inherits:
Object
  • Object
show all
Includes:
ManifestHelpers
Defined in:
lib/jarbs/project_generator.rb

Instance Method Summary collapse

Methods included from ManifestHelpers

#repo_url, #whoami, #write_package

Constructor Details

#initialize(name) ⇒ ProjectGenerator



4
5
6
# File 'lib/jarbs/project_generator.rb', line 4

def initialize(name)
  @name = name
end

Instance Method Details

#generateObject



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
36
37
38
39
# File 'lib/jarbs/project_generator.rb', line 8

def generate
  manifest = {
      name: @name,
      version: '0.0.0',
      author: whoami,
      repository: {
          type: 'git',
          url: repo_url
      },
      license: 'UNLICENSED',
      engines: {
          node: '0.10.36'
      },
      main: 'index.js',
      scripts: {
          'build:function' => 'babel --optional runtime',
      },
      devDependencies: {
          'babel' => '< 6',
          'babel-runtime' => '< 6'
      }
  }

  FileUtils.mkdir @name

  Dir.chdir(@name)

  write_package(manifest, '.')
  NodeBuild.new(nil).npm_install('.')

  setup_crash_logging
end

#setup_crash_loggingObject



41
42
43
44
45
46
47
48
# File 'lib/jarbs/project_generator.rb', line 41

def setup_crash_logging
  config = Config.new
  autolog = config.get('crashes.report') do
    agree("Would you like to log jarbs crashes to GitHub automatically (y/n)? ")
  end

  GithubAuth.new(config).generate_token if autolog
end