dip 5.0.0 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a87d6ff7ea5665545d848e94b4c9d0b2a1cbcc5a4af392b122a38026666db45a
4
- data.tar.gz: 73069ac850450b0dbf2f2ab927a399f880a4d02b02b0e8d9a3645240cfeba0c8
3
+ metadata.gz: 965a10ab510e886e51a4e307a152358177caceb7c6504ac2c15d222c537ebb12
4
+ data.tar.gz: 2d9c98f79718a7774ba7f12f66ecb8495b7f965db3f6aac855586cfe8bb0b7cd
5
5
  SHA512:
6
- metadata.gz: f1492bf810a27125097852ad6cace0f245a7b296656b800e644061f42e31473662ef75b110bb969f9275d7418f41b3e03cf145f183e93b3e8d2b39359d7ebbd8
7
- data.tar.gz: 76a43d9ca8ef960b2b602573802b8395411247fd9e720e5d6d01a824049898351afa1d78c517e7cbefa2550e6e82b51d32376671b77ef5875c437d3850c01146
6
+ metadata.gz: 3d44176de01f624cff9e98b578c23e525e7c4b6ddc4ad9bdf35cfa54923851f6bea24633c377f20167263deb0b133482f92d3203adffbc6e79b09cdf0c390f71
7
+ data.tar.gz: ff3ba16f8461fe8e1eb8a5070e312f88702c06c2f2cdcf4f4e0a61390bee09bdd69ce3510c1bd26100addc1bca163e876aa9a78aa615fb2394b2d2a55fbaea01
data/README.md CHANGED
@@ -80,7 +80,7 @@ It can be found at [releases page](https://github.com/bibendi/dip/releases)
80
80
  or type bellow into your terminal:
81
81
 
82
82
  ```sh
83
- curl -L https://github.com/bibendi/dip/releases/download/5.0.0/dip-`uname -s`-`uname -m` > /usr/local/bin/dip
83
+ curl -L https://github.com/bibendi/dip/releases/download/v6.0.0/dip-`uname -s`-`uname -m` > /usr/local/bin/dip
84
84
  chmod +x /usr/local/bin/dip
85
85
  ```
86
86
 
data/exe/dip CHANGED
@@ -6,7 +6,7 @@ $LOAD_PATH.unshift(lib_path) unless $LOAD_PATH.include?(lib_path)
6
6
 
7
7
  begin
8
8
  require 'pry-byebug' if ENV["DIP_ENV"] == "debug"
9
- rescue LoadError # rubocop:disable Lint/SuppressedException
9
+ rescue LoadError
10
10
  # do nothing
11
11
  end
12
12
 
@@ -20,7 +20,7 @@ module Dip
20
20
  def execute
21
21
  Dip.env["DIP_DNS"] ||= find_dns
22
22
 
23
- compose_argv = Array(find_files) + Array(find_project_name) + argv
23
+ compose_argv = Array(find_files) + Array(cli_options) + argv
24
24
 
25
25
  shell("docker-compose", compose_argv)
26
26
  end
@@ -43,13 +43,14 @@ module Dip
43
43
  end
44
44
  end
45
45
 
46
- def find_project_name
47
- return unless (project_name = config[:project_name])
46
+ def cli_options
47
+ %i[project_name project_directory].flat_map do |name|
48
+ next unless (value = config[name])
49
+ next unless value.is_a?(String)
48
50
 
49
- if project_name.is_a?(String)
50
- project_name = ::Dip.env.interpolate(project_name)
51
- ["--project-name", project_name]
52
- end
51
+ value = ::Dip.env.interpolate(value)
52
+ ["--#{name.to_s.gsub('_', '-')}", value]
53
+ end.compact
53
54
  end
54
55
 
55
56
  def find_dns
@@ -13,6 +13,15 @@ module Dip
13
13
  class Config
14
14
  DEFAULT_PATH = "dip.yml"
15
15
 
16
+ CONFIG_DEFAULTS = {
17
+ environment: {},
18
+ compose: {},
19
+ interation: {},
20
+ provision: []
21
+ }.freeze
22
+
23
+ ConfigKeyMissingError = Class.new(ArgumentError)
24
+
16
25
  class ConfigFinder
17
26
  attr_reader :file_path
18
27
 
@@ -78,7 +87,7 @@ module Dip
78
87
 
79
88
  %i[environment compose interaction provision].each do |key|
80
89
  define_method(key) do
81
- config[key]
90
+ config[key] || (raise config_missing_error(key))
82
91
  end
83
92
  end
84
93
 
@@ -106,7 +115,12 @@ module Dip
106
115
  override_finder = ConfigFinder.new(work_dir, override: true)
107
116
  config.deep_merge!(self.class.load_yaml(override_finder.file_path)) if override_finder.exist?
108
117
 
109
- @config = config
118
+ @config = CONFIG_DEFAULTS.merge(config)
119
+ end
120
+
121
+ def config_missing_error(config_key)
122
+ msg = 'config for %<key>s is not defined in %<path>s' % {key: config_key, path: finder.file_path}
123
+ ConfigKeyMissingError.new(msg)
110
124
  end
111
125
  end
112
126
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dip
4
- VERSION = "5.0.0"
4
+ VERSION = "6.0.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dip
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - bibendi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-24 00:00:00.000000000 Z
11
+ date: 2020-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -92,14 +92,14 @@ dependencies:
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: '0.59'
95
+ version: '0.81'
96
96
  type: :development
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '0.59'
102
+ version: '0.81'
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: simplecov
105
105
  requirement: !ruby/object:Gem::Requirement
@@ -176,7 +176,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
176
176
  requirements:
177
177
  - - ">="
178
178
  - !ruby/object:Gem::Version
179
- version: '2.3'
179
+ version: '2.4'
180
180
  required_rubygems_version: !ruby/object:Gem::Requirement
181
181
  requirements:
182
182
  - - ">="