Class: Ruboty::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/ruboty/generator/version.rb,
lib/ruboty/generator/generate.rb

Overview

Generator Core

Constant Summary collapse

VERSION =
'1.0.1'
README =
'README.md'
RUBOTY_GENERATOR_FILE =
'Rubotygenerator'
RUBOTY_HANDLER_FILE =
'lib/ruboty/handlers'
RUBOTY_BASE_FILE =
'lib/ruboty'
RUBOTY_GENERATOR_FILE_TEMPLATE =
"user_name \"user name\"\n\ngem_class_name \"Gem class name\"\ngem_name \"gem name\"\n\ndescription \"An Ruboty Handler description\"\n\nenv do |e|\n  e.name \"ENV1\"\n  e.description \"ENV1 desc\"\nend\n\ncommand do |c|\n  c.name \"name\"\n  c.pattern \"pattern\\\\\\\\z\"\n  c.description \"description\"\nend\n"
RUBOTY_HANDLER_TEMPLATE =
"<%=action_requires%>\n\nmodule Ruboty\n  module Handlers\n# <%=description%>\nclass <%=gem_class_name%> < Base\n<%=action_macros%>\n<%=envs%>\n\n<%=action_definitions%>\nend\n  end\nend\n"
RUBOTY_ACTION_TEMPLATE =
"module Ruboty\n  module <%=gem_class_name%>\nmodule Actions\n  class <%=action_name.capitalize%> < Ruboty::Actions::Base\n    def call\n      message.reply(<%=action_name%>)\n    rescue => e\n      message.reply(e.message)\n    end\n\n    private\n    def <%=action_name%>\n      # TODO: main logic\n    end\n  end\nend\n  end\nend\n"

Class Method Summary collapse

Class Method Details

.generate(options = {}) ⇒ Object

generate ruboty template.



77
78
79
80
81
82
83
84
85
# File 'lib/ruboty/generator/generate.rb', line 77

def self.generate(options = {})
  config = load_config
  execute_bundle_gem(config)
  handler_src = generate_handler(config, options[:a])
  output_handler(handler_src, config.gem_name)
  return unless options[:a]
  actions = generate_actions(config)
  output_actions(actions, config.gem_name)
end

.initObject

generate Rubotymegenfile to current directory.



70
71
72
73
74
# File 'lib/ruboty/generator/generate.rb', line 70

def self.init
  File.open(RUBOTY_GENERATOR_FILE, 'w') do |f|
    f.puts RUBOTY_GENERATOR_FILE_TEMPLATE
  end
end