Add initial CLI class

This commit is contained in:
Dzmitry Plashchynski
2015-03-02 21:08:07 +02:00
parent 283dd446a3
commit 5e3ca985e3
4 changed files with 45 additions and 7 deletions

View File

@@ -1,7 +1,15 @@
#!/usr/bin/env ruby
require 'rails'
require File.expand_path("config/environment.rb")
::Rails.application.eager_load!
$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
logger.info "Running in #{RUBY_DESCRIPTION}"
require "periodicity/cli"
begin
cli = Periodicity::CLI.instance
cli.run
rescue => e
raise e if $DEBUG
STDERR.puts e.message
STDERR.puts e.backtrace.join("\n")
exit 1
end

View File

@@ -7,4 +7,3 @@ require "periodicity/period.rb"
require "periodicity/config.rb"
require 'periodicity/extensions/active_job'
require "periodicity/rails.rb" if defined?(::Rails::Engine)
require "periodicity/cli.rb"

View File

@@ -1,5 +1,23 @@
require 'periodicity'
module Periodicity
class Cli
class CLI
include Singleton
def run
load_rails
print_banner
end
def print_banner
puts "Loading Periodicity #{Periodicity::VERSION}"
puts "Running in #{RUBY_DESCRIPTION}"
end
def load_rails
require 'rails'
require File.expand_path("config/environment.rb")
::Rails.application.eager_load!
end
end
end

13
spec/cli_spec.rb Normal file
View File

@@ -0,0 +1,13 @@
require "spec_helper"
require 'periodicity/cli'
describe Periodicity::CLI do
let(:cli) { Periodicity::CLI.instance }
describe "#run" do
it "should try to initialize rails with #load_rails" do
expect(cli).to receive(:load_rails)
cli.run
end
end
end