mirror of
https://github.com/plashchynski/crono.git
synced 2026-03-23 09:51:48 +01:00
Add initial CLI class
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
13
spec/cli_spec.rb
Normal 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
|
||||
Reference in New Issue
Block a user