Module: Jarl
- Defined in:
- lib/jarl/cli.rb,
lib/jarl/base.rb,
lib/jarl/config.rb,
lib/jarl/docker.rb,
lib/jarl/version.rb,
lib/jarl/jarl_file.rb,
lib/jarl/application.rb
Defined Under Namespace
Modules: Docker Classes: Application, CLI, Config, JarlFile
Constant Summary collapse
- DEFAULT_JARL_CONFIG_PATH =
'~/.jarl'- VERSION =
'0.9.0'
Class Method Summary collapse
-
.application_instances ⇒ Object
Returns list of running application instances.
-
.applications ⇒ Object
Returns list of registered applications.
-
.config ⇒ Object
Returns current config.
-
.find_application_instances_by(patterns) ⇒ Object
Returns list of running application instances matching the pattern(s).
-
.find_applications_by(patterns) ⇒ Object
Returns list of applications matching the pattern.
-
.jarl_files ⇒ Object
Returns list of found *.jarl files.
-
.load(options) ⇒ Object
Load config and application definitions.
- .reload! ⇒ Object
Class Method Details
.application_instances ⇒ Object
Returns list of running application instances
47 48 49 |
# File 'lib/jarl/base.rb', line 47 def self.application_instances @application_instances ||= applications.map(&:instances).flatten end |
.applications ⇒ Object
Returns list of registered applications
35 36 37 38 39 40 41 42 43 |
# File 'lib/jarl/base.rb', line 35 def self.applications @applications ||= jarl_files.map do |jf| begin jf.applications rescue StandardError => e abort "Failed to parse application definition in file '#{jf.path}': #{e}" end end.flatten end |
.config ⇒ Object
Returns current config
22 23 24 |
# File 'lib/jarl/base.rb', line 22 def self.config @config end |
.find_application_instances_by(patterns) ⇒ Object
Returns list of running application instances matching the pattern(s)
67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/jarl/base.rb', line 67 def self.find_application_instances_by(patterns) patterns = nil if patterns && patterns.empty? case patterns when nil application_instances when String application_instances.select { |i| i.full_name.index(patterns) } when Array application_instances.select { |i| patterns.any? { |p| i.full_name.index(p) } } else fail "Unexpected #{patterns.class} passed as argument to .find_application_instances_by" end end |
.find_applications_by(patterns) ⇒ Object
Returns list of applications matching the pattern
57 58 59 |
# File 'lib/jarl/base.rb', line 57 def self.find_applications_by(patterns) find_application_instances_by(patterns).map(&:application).uniq end |
.jarl_files ⇒ Object
Returns list of found *.jarl files
29 30 31 |
# File 'lib/jarl/base.rb', line 29 def self.jarl_files @jarl_files ||= load_jarl_files end |
.load(options) ⇒ Object
Load config and application definitions
7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/jarl/base.rb', line 7 def self.load() load_config(['config'] || DEFAULT_JARL_CONFIG_PATH) # puts "Jarl::CLI.options: #{options}" abort 'Docker is not installed' unless Docker.installed? if Jarl.jarl_files.empty? abort 'No *.jarl files found' elsif Jarl.applications.empty? abort 'No application definitions found' end true end |
.reload! ⇒ Object
83 84 85 86 87 88 |
# File 'lib/jarl/base.rb', line 83 def self.reload! @jarl_files = nil @applications = nil @application_instances = nil Docker.reload! end |