Class: Jets::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/jets/generator.rb

Overview

Piggy back off of Rails Generators.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(generator, *args) ⇒ Generator

Returns a new instance of Generator.



11
12
13
# File 'lib/jets/generator.rb', line 11

def initialize(generator, *args)
  @generator, @args = generator, args
end

Class Method Details

.invoke(generator, *args) ⇒ Object



3
4
5
# File 'lib/jets/generator.rb', line 3

def self.invoke(generator, *args)
  new(generator, *args).run(:invoke)
end

.revoke(generator, *args) ⇒ Object



7
8
9
# File 'lib/jets/generator.rb', line 7

def self.revoke(generator, *args)
  new(generator, *args).run(:revoke)
end

Instance Method Details

#configObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/jets/generator.rb', line 23

def config
  g = Rails::Configuration::Generators.new
  g.orm             :active_record, migration: true, timestamps: true
  # TODO: support g.orm :dynamodb
  g.test_framework  false #:test_unit, fixture: false
  # g.test_framework :rspec # need to
  # TODO: load rspec configuration to use rspec
  g.stylesheets     false
  g.javascripts     false
  g.assets          false
  if Jets.config.mode == 'api'
    g.api_only = true
    g.template_engine nil
  else
    g.template_engine :erb
  end
  g.resource_route  true
  g.templates.unshift(template_paths)
  g
end

#run(behavior = :invoke) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/jets/generator.rb', line 15

def run(behavior=:invoke)
  # lazy require so Rails const is only defined when using generators
  require "rails/generators"
  require "rails/configuration"
  Rails::Generators.configure!(config)
  Rails::Generators.invoke(@generator, @args, behavior: behavior, destination_root: Jets.root)
end

#template_pathsObject



44
45
46
47
# File 'lib/jets/generator.rb', line 44

def template_paths
  templates_path = File.expand_path("../generator/templates", __FILE__)
  [templates_path]
end