Sha256: b2db7d4a874c258611e8f8bc0cd08d07d5e511888ced8c82007696865e9ce0cf
Contents?: true
Size: 971 Bytes
Versions: 2
Compression:
Stored size: 971 Bytes
Contents
require 'rack/app' require 'optparse' class Rack::App::CLI require 'rack/app/cli/command' require 'rack/app/cli/default_commands' require 'rack/app/cli/runner' class << self def start(argv) runner.start(argv) end def runner Rack::App::CLI::Runner.new(rack_app) end def rack_app @rack_app ||= lambda { context = {} Kernel.__send__(:define_method, :run) { |app, *_| context[:app]= app } config_ru_file_path = Rack::App::Utils.pwd('config.ru') load(config_ru_file_path) if File.exist?(config_ru_file_path) context[:app] }.call end end def merge!(cli) commands.merge!(cli.commands) self end def commands @commands ||= {} end protected def command(name, &block) command_prototype = Class.new(Rack::App::CLI::Command) command_prototype.class_exec(&block) commands[name.to_s.to_sym]= command_prototype.new(name.to_s.to_sym) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rack-app-3.1.0 | lib/rack/app/cli.rb |
rack-app-3.0.0 | lib/rack/app/cli.rb |