docker-compose 0.8.4 → 1.0.0rc1

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
  SHA1:
3
- metadata.gz: 784b16c1d7485086f701cb404cfcf6c03d8985da
4
- data.tar.gz: cd9764dd13791b2bd2eec0114d9ffdd402f8221a
3
+ metadata.gz: 365d253ec8bea621b383762ab6d130991374aaef
4
+ data.tar.gz: 678be8f50dd021feffbf00e4c67eb0da5985321f
5
5
  SHA512:
6
- metadata.gz: a3f7cf959d520047d9c28f31ef4228c830a0447cd9f4cf5cfcbd0bc95c36b98ce4a0d50ca09025beeb0fd48509c450b99155029bbe5961823a2462da1a4f03ab
7
- data.tar.gz: b5657e1816d9575246c1b6f8621fb333d9bbd904bc79b9c929adc9e01e001cbc82d264184940578db17528549d0375e8ed1dda383e2cd9a87e8904d239da7a2f
6
+ metadata.gz: 42fe1651bc466fdcf4df95098ccc566b613d485f79b056f41eb3bc9a68c90cb1d5642bee1227e4ee7f4361106f7fef8071a7eacfe6994d5a93b25a3b5ed2c902
7
+ data.tar.gz: b096804ff73321e4efad1b29725feb4d2388068106f6f0a7d751c9e23236f4f8c6c06e32143c09959ef97cdc78b82ca9148c2ef8fe9bb35c1b35c86a75fdb42c
data/Gemfile CHANGED
@@ -4,6 +4,8 @@ source 'https://rubygems.org'
4
4
  # Specify your gem's dependencies in docker-compose.gemspec
5
5
  gemspec
6
6
 
7
+ gem 'backticks', path:'/Users/tony/Code/xeger/backticks'
8
+
7
9
  group :development do
8
10
  gem 'pry'
9
11
  gem 'pry-byebug'
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.required_ruby_version = Gem::Requirement.new("~> 2.0")
23
23
 
24
- spec.add_dependency 'backticks', '~> 0.5'
24
+ spec.add_dependency 'backticks', '>= 1.0.0rc1'
25
25
 
26
26
  spec.add_development_dependency 'bundler', '~> 1.10'
27
27
  spec.add_development_dependency 'rake', '~> 10.0'
@@ -17,8 +17,8 @@ module Docker::Compose
17
17
  class Session
18
18
  attr_reader :dir, :file
19
19
 
20
- def initialize(shell = Backticks::Runner.new(buffered:[:stderr], interactive: true),
21
- dir:Dir.pwd, file:'docker-compose.yml')
20
+ def initialize(shell = Backticks::Runner.new(buffered: [:stderr], interactive: true),
21
+ dir: Dir.pwd, file: 'docker-compose.yml')
22
22
  @shell = shell
23
23
  @dir = dir
24
24
  @file = file
@@ -45,7 +45,7 @@ module Docker::Compose
45
45
  inter = @shell.interactive
46
46
  @shell.interactive = false
47
47
 
48
- lines = run!('ps', q:true).split(/[\r\n]+/)
48
+ lines = run!('ps', q: true).split(/[\r\n]+/)
49
49
  containers = Collection.new
50
50
 
51
51
  lines.each do |id|
@@ -69,10 +69,12 @@ module Docker::Compose
69
69
  # @return [true] always returns true
70
70
  # @raise [Error] if command fails
71
71
  def up(*services,
72
- detached:false, timeout:10, no_build:false, no_deps:false)
73
- run!('up',
74
- { d: detached, timeout: timeout, no_build: no_build, no_deps: no_deps },
75
- services)
72
+ detached: false, timeout: 10, no_build: false, no_deps: false)
73
+ o = opts(d: [detached, false],
74
+ timeout: [timeout, 10],
75
+ no_build: [no_build, false],
76
+ no_deps: [no_deps, false])
77
+ run!('up', o, services)
76
78
  true
77
79
  end
78
80
 
@@ -87,8 +89,9 @@ module Docker::Compose
87
89
  run!('pull', *services)
88
90
  end
89
91
 
90
- def rm(*services, force:false, volumes:false)
91
- run!('rm', { f: force, v: volumes }, services)
92
+ def rm(*services, force: false, volumes: false)
93
+ o = opts(f: [force, false], v: [volumes, false])
94
+ run!('rm', o, services)
92
95
  end
93
96
 
94
97
  # Idempotently run an arbitrary command with a service container.
@@ -99,18 +102,12 @@ module Docker::Compose
99
102
  # @param [Boolean] no_deps if true, just run specified services without
100
103
  # running the services that they depend on
101
104
  # @param [Array] env a list of environment variables (see: -e flag)
102
- # @param [Array] env_vars DEPRECATED alias for env kwarg
103
105
  # @param [Boolean] rm remove the container when done
104
106
  # @raise [Error] if command fails
105
- def run(service, *cmd, detached:false, no_deps:false, env:[], env_vars:nil, rm:false)
106
- # handle deprecated kwarg
107
- if (env.nil? || env.empty?) && !env_vars.nil?
108
- env = env_vars
109
- end
110
-
107
+ def run(service, *cmd, detached: false, no_deps: false, env: [], rm: false)
108
+ o = opts(detached: [detached, false], no_deps: [no_deps, false], env: [env, []], rm: [rm, false])
111
109
  env_params = env.map { |v| { e: v } }
112
- run!('run',
113
- { d: detached, no_deps: no_deps, rm: rm }, *env_params, service, cmd)
110
+ run!('run', o, *env_params, service, cmd)
114
111
  end
115
112
 
116
113
  # Pause running services.
@@ -129,16 +126,18 @@ module Docker::Compose
129
126
  # @param [Array] services list of String service names to stop
130
127
  # @param [Integer] timeout how long to wait for each service to stop
131
128
  # @raise [Error] if command fails
132
- def stop(*services, timeout:10)
133
- run!('stop', { timeout: timeout }, services)
129
+ def stop(*services, timeout: 10)
130
+ o = opts(timeout: [timeout, 10])
131
+ run!('stop', o, services)
134
132
  end
135
133
 
136
134
  # Forcibly stop running services.
137
135
  # @param [Array] services list of String service names to stop
138
136
  # @param [String] name of murderous signal to use, default is 'KILL'
139
137
  # @see Signal.list for a list of acceptable signal names
140
- def kill(*services, signal:'KILL')
141
- run!('kill', { s: signal }, services)
138
+ def kill(*services, signal: 'KILL')
139
+ o = opts(signal: [signal, 'KILL'])
140
+ run!('kill', o, services)
142
141
  end
143
142
 
144
143
  # Figure out which host a port a given service port has been published to.
@@ -147,8 +146,9 @@ module Docker::Compose
147
146
  # @param [String] protocol 'tcp' or 'udp'
148
147
  # @param [Integer] index of container (if multiple instances running)
149
148
  # @raise [Error] if command fails
150
- def port(service, port, protocol:'tcp', index:1)
151
- run!('port', { protocol: protocol, index: index }, service, port)
149
+ def port(service, port, protocol: 'tcp', index: 1)
150
+ o = opts(protocol: [protocol, 'tcp'], index: [index, 1])
151
+ run!('port', o, service, port)
152
152
  end
153
153
 
154
154
  # Determine the installed version of docker-compose.
@@ -156,8 +156,9 @@ module Docker::Compose
156
156
  # @return [String, Hash] if short==true, returns a version string;
157
157
  # otherwise, returns a Hash of component-name strings to version strings
158
158
  # @raise [Error] if command fails
159
- def version(short:false)
160
- result = run!('version', short: short, file: false, dir: false)
159
+ def version(short: false)
160
+ o = opts(short: [short, false])
161
+ result = run!('version', o, file: false, dir: false)
161
162
 
162
163
  if short
163
164
  result.strip
@@ -171,9 +172,11 @@ module Docker::Compose
171
172
  end
172
173
  end
173
174
 
174
- def build(*services, force_rm:false, no_cache:false, pull:false)
175
- result = run!('build', services,
176
- force_rm:force_rm, no_cache:no_cache, pull:pull)
175
+ def build(*services, force_rm: false, no_cache: false, pull: false)
176
+ o = opts(force_rm: [force_rm, false],
177
+ no_cache: [no_cache, false],
178
+ pull: [pull, false])
179
+ result = run!('build', services, o)
177
180
  end
178
181
 
179
182
  # Run a docker-compose command without validating that the CLI parameters
@@ -187,15 +190,15 @@ module Docker::Compose
187
190
  # @raise [Error] if command fails
188
191
  def run!(*args)
189
192
  file_args = case @file
190
- when 'docker-compose.yml'
191
- []
192
- when Array
193
- # backticks sugar can't handle array values; build a list of hashes
194
- # IMPORTANT: preserve the order of the files so overrides work correctly
195
- file_args = @file.map{ |filepath| {:file => filepath} }
196
- else
197
- # a single String (or Pathname, etc); use normal sugar to add it
198
- [{file: @file.to_s}]
193
+ when 'docker-compose.yml'
194
+ []
195
+ when Array
196
+ # backticks sugar can't handle array values; build a list of hashes
197
+ # IMPORTANT: preserve the order of the files so overrides work correctly
198
+ file_args = @file.map { |filepath| { :file => filepath } }
199
+ else
200
+ # a single String (or Pathname, etc); use normal sugar to add it
201
+ [{ file: @file.to_s }]
199
202
  end
200
203
 
201
204
  Dir.chdir(@dir) do
@@ -211,7 +214,7 @@ module Docker::Compose
211
214
  private
212
215
 
213
216
  def docker_ps(id)
214
- cmd = @shell.run('docker', 'ps', a:true, f:"id=#{id}", format:Container::PS_FMT).join
217
+ cmd = @shell.run('docker', 'ps', a: true, f: "id=#{id}", format: Container::PS_FMT).join
215
218
  status, out, err = cmd.status, cmd.captured_output, cmd.captured_error
216
219
  raise Error.new('docker ps', status, "Unexpected output") unless status.success?
217
220
  lines = out.split(/[\r\n]+/)
@@ -222,6 +225,17 @@ module Docker::Compose
222
225
  return Container.new(*m)
223
226
  end
224
227
 
228
+ # strip default-values options. the value of each kw should be a pair:
229
+ # [0] is present value
230
+ # [1] is default value
231
+ def opts(**kws)
232
+ res = {}
233
+ kws.each_pair do |kw, v|
234
+ res[kw] = v[0] unless v[0] == v[1]
235
+ end
236
+ res
237
+ end
238
+
225
239
  # parse values enclosed within parentheses; values may contain nested
226
240
  # matching pairs of parentheses
227
241
  def parse(str)
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  module Docker
3
3
  module Compose
4
- VERSION = '0.8.4'
4
+ VERSION = '1.0.0rc1'
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docker-compose
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.4
4
+ version: 1.0.0rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tony Spataro
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-07-18 00:00:00.000000000 Z
11
+ date: 2016-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: backticks
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0.5'
19
+ version: 1.0.0rc1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '0.5'
26
+ version: 1.0.0rc1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -116,9 +116,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
116
116
  version: '2.0'
117
117
  required_rubygems_version: !ruby/object:Gem::Requirement
118
118
  requirements:
119
- - - ">="
119
+ - - ">"
120
120
  - !ruby/object:Gem::Version
121
- version: '0'
121
+ version: 1.3.1
122
122
  requirements: []
123
123
  rubyforge_project:
124
124
  rubygems_version: 2.4.5