tomo 1.21.2 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7b7ef495e4c77ac639e0322487357df44d5a31a503811231833f947851cb1086
4
- data.tar.gz: 4c718faf4f997614b8baa3cafa8839d80f0e94cd270c906a3ce48d97b5413ffd
3
+ metadata.gz: 37bdfaccc033913ce90f1f6efe579494272950799a735339e5f1ef17c4d10ce1
4
+ data.tar.gz: e88924edaee4847ca1656dfe0381c275ef04d9d0f8ecd09499a5b98e0c71c211
5
5
  SHA512:
6
- metadata.gz: 2fe7b74a2bb78bcbbb4f9a954cf8ae38e76574f17649d40f1d047aab805c3948e199dd0203a4670133265336bbc51aeb6be5590180016608dbf9c1c9c881f3e0
7
- data.tar.gz: 0adbee05ac60610a9141b854e5a5e20d04d2e0d5dd0e46c58fe7b2ca34b81d9d47429962dae1527d20f6b2fac518e479b629266a74df445ec71b60d803f6bb52
6
+ metadata.gz: 3ef5995f18228bb9c1631d89f88bbd63258f193c51a3ce40d506b5d56e4d9b4f2c5d030eef211db57ca81d57d4350f360e94ffb8979e00105c42ad8a644cfa7f
7
+ data.tar.gz: '08eac8929502a70fdb7c4696b875a3ab58cd25783990bb5d2bcff124aff251b59330394063a8c0277dc28b937e1a270f96107e6169efd5824609b9af7a798f21'
@@ -11,6 +11,9 @@ module Tomo
11
11
  option :debug, "--[no-]debug", "Enable/disable verbose debug logging" do |debug|
12
12
  Tomo.debug = debug
13
13
  end
14
+ option :quiet, "--[no-]quiet", "Silence all progress output" do |quiet|
15
+ Tomo.quiet = quiet
16
+ end
14
17
  option :trace, "--[no-]trace", "Display full backtrace on error" do |trace|
15
18
  CLI.show_backtrace = trace
16
19
  end
data/lib/tomo/logger.rb CHANGED
@@ -15,6 +15,7 @@ module Tomo
15
15
  end
16
16
 
17
17
  def script_start(script)
18
+ return if Tomo.quiet?
18
19
  return unless script.echo?
19
20
 
20
21
  puts yellow(script.echo_string)
@@ -27,6 +28,7 @@ module Tomo
27
28
  end
28
29
 
29
30
  def script_end(script, result)
31
+ return if Tomo.quiet?
30
32
  return unless result.failure?
31
33
  return unless script.silent?
32
34
  return unless script.raise_on_error?
@@ -35,14 +37,20 @@ module Tomo
35
37
  end
36
38
 
37
39
  def connect(host)
40
+ return if Tomo.quiet?
41
+
38
42
  puts gray("→ Connecting to #{host}")
39
43
  end
40
44
 
41
45
  def task_start(task)
46
+ return if Tomo.quiet?
47
+
42
48
  puts blue("• #{task}")
43
49
  end
44
50
 
45
51
  def info(message)
52
+ return if Tomo.quiet?
53
+
46
54
  puts message
47
55
  end
48
56
 
@@ -10,6 +10,10 @@ module Tomo::Plugin::Rails
10
10
  remote.rails("console", settings[:run_args], attach: true)
11
11
  end
12
12
 
13
+ def query
14
+ remote.rails("query", settings[:run_args], attach: true)
15
+ end
16
+
13
17
  def db_console
14
18
  remote.rails("dbconsole", "--include-password", settings[:run_args], attach: true)
15
19
  end
@@ -23,11 +23,22 @@ module Tomo
23
23
 
24
24
  def fetch(name, stack=[])
25
25
  raise_circular_dependency_error(name, stack) if stack.include?(name)
26
+
27
+ stack += [name]
26
28
  value = settings.fetch(name)
27
- return value unless value.is_a?(String)
28
29
 
30
+ if value.is_a?(String)
31
+ interpolate_string(value, stack)
32
+ elsif value.is_a?(Hash)
33
+ value.transform_values { |v| v.is_a?(String) ? interpolate_string(v, stack) : v }
34
+ else
35
+ value
36
+ end
37
+ end
38
+
39
+ def interpolate_string(value, stack)
29
40
  value.gsub(/%{(\w+)}/) do
30
- fetch(Regexp.last_match[1].to_sym, stack + [name])
41
+ fetch(Regexp.last_match[1].to_sym, stack)
31
42
  end
32
43
  end
33
44
 
data/lib/tomo/task_api.rb CHANGED
@@ -18,6 +18,10 @@ module Tomo
18
18
  Tomo.dry_run?
19
19
  end
20
20
 
21
+ def quiet?
22
+ Tomo.quiet?
23
+ end
24
+
21
25
  def logger
22
26
  Tomo.logger
23
27
  end
@@ -37,6 +37,7 @@ module Tomo
37
37
  ensure
38
38
  Tomo.debug = false
39
39
  Tomo.dry_run = false
40
+ Tomo.quiet = false
40
41
  Tomo::CLI.show_backtrace = false
41
42
  Tomo::CLI::Completions.instance_variable_set(:@active, false)
42
43
  end
data/lib/tomo/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Tomo
4
- VERSION = "1.21.2"
4
+ VERSION = "1.22.0"
5
5
  end
data/lib/tomo.rb CHANGED
@@ -27,7 +27,7 @@ module Tomo
27
27
 
28
28
  class << self
29
29
  attr_accessor :logger
30
- attr_writer :debug, :dry_run
30
+ attr_writer :debug, :dry_run, :quiet
31
31
 
32
32
  def debug?
33
33
  !!@debug
@@ -37,6 +37,10 @@ module Tomo
37
37
  !!@dry_run
38
38
  end
39
39
 
40
+ def quiet?
41
+ !!@quiet
42
+ end
43
+
40
44
  def bundled?
41
45
  !!(defined?(Bundler) && ENV["BUNDLE_GEMFILE"])
42
46
  end
@@ -44,5 +48,6 @@ module Tomo
44
48
 
45
49
  self.debug = false
46
50
  self.dry_run = false
51
+ self.quiet = false
47
52
  self.logger = Logger.new
48
53
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tomo
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.21.2
4
+ version: 1.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Brictson
@@ -188,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
188
188
  - !ruby/object:Gem::Version
189
189
  version: '0'
190
190
  requirements: []
191
- rubygems_version: 4.0.3
191
+ rubygems_version: 4.0.6
192
192
  specification_version: 4
193
193
  summary: A friendly CLI for deploying Rails apps ✨
194
194
  test_files: []