class HecksServerless::CLI

Generators to build a serverless config

Constants

COMMAND_NAME
CRUD_METHODS
DESCRIPTION
ENVIRONMENT_FILE
HANDLER_TEMPLATE
RESOURCES_FOLDER
SELF_PATH
SERVERLESS_FILE

Attributes

locals[R]

Public Class Methods

source_root() click to toggle source
# File lib/serverless/cli.rb, line 22
def self.source_root
  RESOURCES_FOLDER
end

Public Instance Methods

generate() click to toggle source
# File lib/serverless/cli.rb, line 16
def generate
  create_serverless_file
  create_domain_module_files
  insert_handlers_into_serverless_file
end

Private Instance Methods

create_domain_module_files() click to toggle source
# File lib/serverless/cli.rb, line 38
def create_domain_module_files
  domain_modules.each { |dmodule| create_handler_files(dmodule) }
end
create_handler_files(dmodule) click to toggle source
# File lib/serverless/cli.rb, line 42
def create_handler_files(dmodule)
  self.locals = {domain_module: dmodule.name.downcase}
  template HANDLER_TEMPLATE, "serverless/#{dmodule.name.downcase}.js"
  copy_file ENVIRONMENT_FILE, 'serverless/environment.js'
  copy_file 'run_binary.js', 'serverless/run_binary.js'
  copy_file 'command_name.js', 'serverless/command_name.js'
end
create_serverless_file() click to toggle source
# File lib/serverless/cli.rb, line 34
def create_serverless_file
  copy_file SERVERLESS_FILE
end
crud(domain_module) click to toggle source
# File lib/serverless/cli.rb, line 59
def crud(domain_module)
  self.locals = {domain_module: domain_module.name.downcase}
  CRUD_METHODS.flat_map {|function| line(function, domain_module)}
end
domain_modules() click to toggle source
# File lib/serverless/cli.rb, line 64
def domain_modules
  DOMAIN.domain_modules.values
end
handlers() click to toggle source
# File lib/serverless/cli.rb, line 55
def handlers
  "\n" + domain_modules.flat_map { |mod| crud(mod) }.join("\n")
end
insert_handlers_into_serverless_file() click to toggle source
# File lib/serverless/cli.rb, line 30
def insert_handlers_into_serverless_file
  insert_into_file SERVERLESS_FILE, handlers, :after => "functions:"
end
line(function, domain_module) click to toggle source
# File lib/serverless/cli.rb, line 68
    def line(function, domain_module)
      <<-HEREDOC
  #{domain_module.name.downcase}_#{function}:
    handler: serverless/#{domain_module.name.downcase}.#{function}
      HEREDOC
    end
locals=(value) click to toggle source
# File lib/serverless/cli.rb, line 50
def locals=(value)
  @locals ||= {}
  @locals.merge!(value)
end