class Jets::Generator

Piggy back off of Rails Generators.

def self.invoke(generator, *args)

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

def self.revoke(generator, *args)

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

def config

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

def initialize(generator, *args)

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

def run(behavior=:invoke)

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

def template_paths

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