Module: Rbcli

Defined in:
lib/rbcli.rb,
lib/rbcli/version.rb,
lib/rbcli/engine/parser.rb,
lib/rbcli/logging/logging.rb,
lib/rbcli/engine/load_project.rb,
lib/rbcli/configuration/config.rb,
lib/rbcli/configuration/configurate.rb,
lib/rbcli/stateful_systems/storagetypes/localstate.rb,
lib/rbcli/stateful_systems/storagetypes/remotestate_dynamodb.rb

Overview

User Interface

Defined Under Namespace

Modules: Autoupdate, Config, Configurate, ConfigurateStorage, Logger, Parser, State Classes: Command, Scriptwrapper

Constant Summary collapse

VERSION =
"0.1.10"

Class Method Summary collapse

Class Method Details

.config ⇒ Object



34
35
36
# File 'lib/rbcli/configuration/config.rb', line 34

def self.config
	Rbcli::Config::config
end

.configuration ⇒ Object



104
105
106
# File 'lib/rbcli/configuration/configurate.rb', line 104

def self.configuration
	Rbcli::Configurate::configuration
end

.debug(obj) ⇒ Object



73
74
75
# File 'lib/rbcli/logging/logging.rb', line 73

def self.debug obj
	puts obj.to_s.red
end

.load_project ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/rbcli/engine/load_project.rb', line 2

def self.load_project
	project_root = File.expand_path "#{File.dirname(caller[0].split(':')[0])}/../"

	# We require all ruby files as-is
	%w(config hooks application application/commands).each do |dir|
		dirpath = "#{project_root}/#{dir}"
		Dir.glob "#{dirpath}/*.rb" do |file|
			require file
		end if Dir.exists? dirpath
	end

	# We automatically pull in default user configs
	configspath = "#{project_root}/default_user_configs"
	Dir.glob "#{configspath}/*.{yml,yaml}" do |file|
		Rbcli::Configurate.me {config_defaults file}
	end
end

.local_state ⇒ Object



15
16
17
# File 'lib/rbcli/stateful_systems/storagetypes/localstate.rb', line 15

def self.local_state
	Rbcli::ConfigurateStorage.data[:localstate]
end

.log ⇒ Object



69
70
71
# File 'lib/rbcli/logging/logging.rb', line 69

def self.log
	Rbcli::Logger::log
end

.parse ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/rbcli/engine/parser.rb', line 61

def self.parse
	if Rbcli.configuration[:first_run]
		if Rbcli.local_state
			if Rbcli.local_state.rbclidata.key? :first_run
				Rbcli::Parser::parse
			else
				Rbcli.configuration[:first_run].call
				Rbcli.local_state.set_rbclidata :first_run, true
				Rbcli::Parser::parse unless Rbcli.configuration[:halt_after_first_run]
			end
		else
			raise StandardError.new "Error: Can not use `first_run` without also configuring `local_state`."
		end
	else
		Rbcli::Parser::parse
	end
end

.remote_state ⇒ Object



19
20
21
# File 'lib/rbcli/stateful_systems/storagetypes/remotestate_dynamodb.rb', line 19

def self.remote_state
	Rbcli::ConfigurateStorage.data[:remotestate]
end