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