docker-api 1.7.0 → 1.7.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -82,6 +82,7 @@ end
82
82
  require 'docker/version'
83
83
  require 'docker/error'
84
84
  require 'docker/util'
85
+ require 'docker/messages'
85
86
  require 'docker/connection'
86
87
  require 'docker/container'
87
88
  require 'docker/image'
@@ -54,13 +54,13 @@ class Docker::Container
54
54
  :stream => true, :stdout => true, :stderr => true
55
55
  }.merge(options)
56
56
  # Creates list to store stdout and stderr messages
57
- msgs = [[],[]]
57
+ msgs = Docker::Messages.new
58
58
  connection.post(
59
59
  path_for(:attach),
60
60
  opts,
61
61
  :response_block => attach_for(block, msgs)
62
62
  )
63
- msgs
63
+ [msgs.stdout_messages, msgs.stderr_messages]
64
64
  end
65
65
 
66
66
  # Create an Image from a Container's change.s
@@ -143,16 +143,16 @@ class Docker::Container
143
143
 
144
144
  # Method that takes chunks and calls the attached block for each mux'd message
145
145
  def attach_for(block, msg_stack)
146
+ messages = Docker::Messages.new
146
147
  lambda do |c,r,t|
147
- stdout_msgs, stderr_msgs = Docker::Util.decipher_messages(c)
148
- msg_stack[0] += stdout_msgs
149
- msg_stack[1] += stderr_msgs
148
+ messages = messages.decipher_messages(c)
149
+ msg_stack.append(messages)
150
150
 
151
151
  unless block.nil?
152
- stdout_msgs.each do |msg|
152
+ messages.stdout_messages.each do |msg|
153
153
  block.call(:stdout, msg)
154
154
  end
155
- stderr_msgs.each do |msg|
155
+ messages.stderr_messages.each do |msg|
156
156
  block.call(:stderr, msg)
157
157
  end
158
158
  end
@@ -0,0 +1,52 @@
1
+ # This class represents all the messages either received by chunks from attach
2
+ class Docker::Messages
3
+
4
+ attr_accessor :buffer, :stdout_messages, :stderr_messages
5
+
6
+ def initialize(stdout_messages = [], stderr_messages = [], buffer = "")
7
+ @stdout_messages = stdout_messages
8
+ @stderr_messages = stderr_messages
9
+ @buffer = buffer
10
+ end
11
+
12
+ def add_message(source, message)
13
+ case source
14
+ when 1
15
+ stdout_messages << message
16
+ when 2
17
+ stderr_messages << message
18
+ end
19
+ end
20
+
21
+ def get_message(raw_text)
22
+ header = raw_text.slice!(0,8)
23
+ if header.length < 8
24
+ @buffer = header
25
+ return
26
+ end
27
+ type, length = header.unpack("CxxxN")
28
+
29
+ message = raw_text.slice!(0,length)
30
+ if message.length < length
31
+ @buffer = header + message
32
+ else
33
+ add_message(type, message)
34
+ end
35
+ end
36
+
37
+ def append(messages)
38
+ @stdout_messages += messages.stdout_messages
39
+ @stderr_messages += messages.stderr_messages
40
+ end
41
+
42
+ # Method to break apart application/vnd.docker.raw-stream headers
43
+ def decipher_messages(body)
44
+ raw_text = buffer + body.dup
45
+ messages = Docker::Messages.new
46
+ while !raw_text.empty?
47
+ messages.get_message(raw_text)
48
+ end
49
+
50
+ messages
51
+ end
52
+ end
@@ -62,23 +62,4 @@ module Docker::Util
62
62
  credentials = credentials.to_json if credentials.is_a?(Hash)
63
63
  { 'X-Registry-Auth' => Base64.encode64(credentials).gsub(/\n/, '') }
64
64
  end
65
-
66
- # Method to break apart application/vnd.docker.raw-stream headers
67
- def decipher_messages(body)
68
- raw_text = body.dup
69
- stdout_messages = []
70
- stderr_messages = []
71
- while !raw_text.empty?
72
- header = raw_text.slice!(0,8)
73
- next if header.nil?
74
- length = header[4..7].chars
75
- .map { |c| c.getbyte(0) }
76
- .inject(0) { |total, curr| (total << 8) + curr }
77
- message = raw_text.slice!(0,length)
78
- stdout_messages << message if header.getbyte(0) == 1
79
- stderr_messages << message if header.getbyte(0) == 2
80
- end
81
-
82
- [stdout_messages, stderr_messages]
83
- end
84
65
  end
@@ -1,6 +1,6 @@
1
1
  module Docker
2
2
  # The version of the docker-api gem.
3
- VERSION = '1.7.0'
3
+ VERSION = '1.7.2'
4
4
 
5
5
  # The version of the compatible Docker remote API.
6
6
  API_VERSION = '1.6'
@@ -129,12 +129,32 @@ describe Docker::Container do
129
129
 
130
130
  before { subject.start }
131
131
 
132
- it 'yields each chunk', :vcr do
133
- chunk = nil
134
- subject.attach do |stream, c|
135
- chunk ||= c
132
+ context 'with normal sized chunks' do
133
+ it 'yields each chunk', :vcr do
134
+ chunk = nil
135
+ subject.attach do |stream, c|
136
+ chunk ||= c
137
+ end
138
+ expect(chunk).to eq("/\n")
139
+ end
140
+ end
141
+
142
+ context 'with very small chunks' do
143
+ before do
144
+ Docker.options = { :chunk_size => 1 }
145
+ end
146
+
147
+ after do
148
+ Docker.options = {}
149
+ end
150
+
151
+ it 'yields each chunk', :vcr do
152
+ chunk = nil
153
+ subject.attach do |stream, c|
154
+ chunk ||= c
155
+ end
156
+ expect(chunk).to eq("/\n")
136
157
  end
137
- expect(chunk).to eq("/\n")
138
158
  end
139
159
  end
140
160
 
@@ -0,0 +1,96 @@
1
+ require 'spec_helper'
2
+
3
+ describe Docker::Messages do
4
+ shared_examples_for "two equal messages" do
5
+ it "has the same messages as we expect" do
6
+ expect(messages.stdout_messages).to eq(expected.stdout_messages)
7
+ expect(messages.stderr_messages).to eq(expected.stderr_messages)
8
+ expect(messages.buffer).to eq(expected.buffer)
9
+ end
10
+ end
11
+
12
+ describe '.decipher_messages' do
13
+ shared_examples_for "decipher_messages of raw_test" do
14
+ let(:messages) {
15
+ subject.decipher_messages(raw_text)
16
+ }
17
+
18
+ it_behaves_like "two equal messages"
19
+ end
20
+
21
+ context 'given both standard out and standard error' do
22
+ let(:raw_text) {
23
+ "\x01\x00\x00\x00\x00\x00\x00\x01a\x02\x00\x00\x00\x00\x00\x00\x01b"
24
+ }
25
+ let(:expected) {
26
+ Docker::Messages.new(["a"], ["b"], "")
27
+ }
28
+
29
+ it_behaves_like "decipher_messages of raw_test"
30
+ end
31
+
32
+ context 'given a single header' do
33
+ let(:raw_text) { "\x01\x00\x00\x00\x00\x00\x00\x01a" }
34
+ let(:expected) {
35
+ Docker::Messages.new(["a"], [], "")
36
+ }
37
+
38
+ it_behaves_like "decipher_messages of raw_test"
39
+ end
40
+
41
+ context 'given two headers' do
42
+ let(:raw_text) {
43
+ "\x01\x00\x00\x00\x00\x00\x00\x01a\x01\x00\x00\x00\x00\x00\x00\x01b"
44
+ }
45
+
46
+ let(:expected) {
47
+ Docker::Messages.new(["a", "b"], [], "")
48
+ }
49
+
50
+ it_behaves_like "decipher_messages of raw_test"
51
+ end
52
+
53
+ context 'given a header for text longer then 255 characters' do
54
+ let(:raw_text) {
55
+ "\x01\x00\x00\x00\x00\x00\x01\x01" + ("a" * 257)
56
+ }
57
+ let(:expected) {
58
+ Docker::Messages.new([("a" * 257)], [], "")
59
+ }
60
+
61
+ it_behaves_like "decipher_messages of raw_test"
62
+ end
63
+ end
64
+
65
+ describe "#append" do
66
+ context "appending one set of messages on another" do
67
+ let(:messages) {
68
+ Docker::Messages.new([], [], "")
69
+ }
70
+
71
+ before do
72
+ messages.append(new_messages)
73
+ end
74
+
75
+ context "with a buffer" do
76
+ let(:new_messages) {
77
+ Docker::Messages.new(["a"], [], "b")
78
+ }
79
+ let(:expected) {
80
+ Docker::Messages.new(["a"], [], "")
81
+ }
82
+ it_behaves_like "two equal messages"
83
+ end
84
+
85
+ context "without a buffer" do
86
+ let(:new_messages) {
87
+ Docker::Messages.new(["a"], [], "")
88
+ }
89
+ let(:expected) {
90
+ Docker::Messages.new(["a"], [], "")
91
+ }
92
+ it_behaves_like "two equal messages"
93
+ end
94
+ end
95
+ end
96
+ end
@@ -71,56 +71,4 @@ describe Docker::Util do
71
71
  end
72
72
  end
73
73
  end
74
-
75
- describe '#decipher_messages' do
76
- context 'given both standard out and standard error' do
77
- let(:raw_text) {
78
- "\x01\x00\x00\x00\x00\x00\x00\x01a\x02\x00\x00\x00\x00\x00\x00\x01b"
79
- }
80
- let(:expected_messages) { [["a"], ["b"]] }
81
-
82
- it "returns a single message" do
83
- expect(
84
- Docker::Util.decipher_messages(raw_text)
85
- ).to eq(expected_messages)
86
- end
87
- end
88
-
89
- context 'given a single header' do
90
- let(:raw_text) { "\x01\x00\x00\x00\x00\x00\x00\x01a" }
91
- let(:expected_messages) { [["a"], []] }
92
-
93
- it "returns a single message" do
94
- expect(
95
- Docker::Util.decipher_messages(raw_text)
96
- ).to eq(expected_messages)
97
- end
98
- end
99
-
100
- context 'given two headers' do
101
- let(:raw_text) {
102
- "\x01\x00\x00\x00\x00\x00\x00\x01a\x01\x00\x00\x00\x00\x00\x00\x01b"
103
- }
104
- let(:expected_messages) { [["a", "b"], []] }
105
-
106
- it "returns both messages" do
107
- expect(
108
- Docker::Util.decipher_messages(raw_text)
109
- ).to eq(expected_messages)
110
- end
111
- end
112
-
113
- context 'given a header for text longer then 255 characters' do
114
- let(:raw_text) {
115
- "\x01\x00\x00\x00\x00\x00\x01\x01" + ("a" * 257)
116
- }
117
- let(:expected_messages) { [[("a" * 257)], []] }
118
-
119
- it "returns both messages" do
120
- expect(
121
- Docker::Util.decipher_messages(raw_text)
122
- ).to eq(expected_messages)
123
- end
124
- end
125
- end
126
74
  end
@@ -8,7 +8,7 @@ http_interactions:
8
8
  string: ! '{"Cmd":["pwd"],"Image":"base"}'
9
9
  headers:
10
10
  User-Agent:
11
- - Swipely/Docker-API 1.6.0
11
+ - Swipely/Docker-API 1.7.0
12
12
  Content-Type:
13
13
  - application/json
14
14
  response:
@@ -24,21 +24,21 @@ http_interactions:
24
24
  MjE=
25
25
  !binary "RGF0ZQ==":
26
26
  - !binary |-
27
- V2VkLCAzMCBPY3QgMjAxMyAxNjo1ODo1MyBHTVQ=
27
+ RnJpLCAwOCBOb3YgMjAxMyAxOTo1OTo1NiBHTVQ=
28
28
  body:
29
29
  encoding: US-ASCII
30
- string: ! '{"Id":"8fcf3ea9f6de"}'
30
+ string: ! '{"Id":"7cb80f7f5737"}'
31
31
  http_version:
32
- recorded_at: Wed, 30 Oct 2013 16:58:53 GMT
32
+ recorded_at: Fri, 08 Nov 2013 19:59:56 GMT
33
33
  - request:
34
34
  method: post
35
- uri: unix:///var/run/docker.sock/v1.6/containers/8fcf3ea9f6de/start
35
+ uri: unix:///var/run/docker.sock/v1.6/containers/7cb80f7f5737/start
36
36
  body:
37
37
  encoding: UTF-8
38
38
  string: ! '{}'
39
39
  headers:
40
40
  User-Agent:
41
- - Swipely/Docker-API 1.6.0
41
+ - Swipely/Docker-API 1.7.0
42
42
  Content-Type:
43
43
  - application/json
44
44
  response:
@@ -54,21 +54,21 @@ http_interactions:
54
54
  MA==
55
55
  !binary "RGF0ZQ==":
56
56
  - !binary |-
57
- V2VkLCAzMCBPY3QgMjAxMyAxNjo1ODo1MyBHTVQ=
57
+ RnJpLCAwOCBOb3YgMjAxMyAxOTo1OTo1NiBHTVQ=
58
58
  body:
59
59
  encoding: US-ASCII
60
60
  string: ''
61
61
  http_version:
62
- recorded_at: Wed, 30 Oct 2013 16:58:53 GMT
62
+ recorded_at: Fri, 08 Nov 2013 19:59:56 GMT
63
63
  - request:
64
64
  method: post
65
- uri: unix:///var/run/docker.sock/v1.6/containers/8fcf3ea9f6de/attach?stderr=true&stdout=true&stream=true
65
+ uri: unix:///var/run/docker.sock/v1.6/containers/7cb80f7f5737/attach?stderr=true&stdout=true&stream=true
66
66
  body:
67
67
  encoding: US-ASCII
68
68
  string: ''
69
69
  headers:
70
70
  User-Agent:
71
- - Swipely/Docker-API 1.6.0
71
+ - Swipely/Docker-API 1.7.0
72
72
  Content-Type:
73
73
  - text/plain
74
74
  response:
@@ -84,5 +84,5 @@ http_interactions:
84
84
  string: !binary |-
85
85
  AQAAAAAAAAIvCg==
86
86
  http_version:
87
- recorded_at: Wed, 30 Oct 2013 16:58:54 GMT
88
- recorded_with: VCR 2.6.0
87
+ recorded_at: Fri, 08 Nov 2013 19:59:56 GMT
88
+ recorded_with: VCR 2.7.0
@@ -0,0 +1,88 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: unix:///var/run/docker.sock/v1.6/containers/create
6
+ body:
7
+ encoding: UTF-8
8
+ string: ! '{"Cmd":["pwd"],"Image":"base"}'
9
+ headers:
10
+ User-Agent:
11
+ - Swipely/Docker-API 1.7.0
12
+ Content-Type:
13
+ - application/json
14
+ response:
15
+ status:
16
+ code: 201
17
+ message:
18
+ headers:
19
+ !binary "Q29udGVudC1UeXBl":
20
+ - !binary |-
21
+ YXBwbGljYXRpb24vanNvbg==
22
+ !binary "Q29udGVudC1MZW5ndGg=":
23
+ - !binary |-
24
+ MjE=
25
+ !binary "RGF0ZQ==":
26
+ - !binary |-
27
+ RnJpLCAwOCBOb3YgMjAxMyAxOTo1OTo1NiBHTVQ=
28
+ body:
29
+ encoding: US-ASCII
30
+ string: ! '{"Id":"ded9600a2f37"}'
31
+ http_version:
32
+ recorded_at: Fri, 08 Nov 2013 19:59:56 GMT
33
+ - request:
34
+ method: post
35
+ uri: unix:///var/run/docker.sock/v1.6/containers/ded9600a2f37/start
36
+ body:
37
+ encoding: UTF-8
38
+ string: ! '{}'
39
+ headers:
40
+ User-Agent:
41
+ - Swipely/Docker-API 1.7.0
42
+ Content-Type:
43
+ - application/json
44
+ response:
45
+ status:
46
+ code: 204
47
+ message:
48
+ headers:
49
+ !binary "Q29udGVudC1UeXBl":
50
+ - !binary |-
51
+ dGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOA==
52
+ !binary "Q29udGVudC1MZW5ndGg=":
53
+ - !binary |-
54
+ MA==
55
+ !binary "RGF0ZQ==":
56
+ - !binary |-
57
+ RnJpLCAwOCBOb3YgMjAxMyAxOTo1OTo1NiBHTVQ=
58
+ body:
59
+ encoding: US-ASCII
60
+ string: ''
61
+ http_version:
62
+ recorded_at: Fri, 08 Nov 2013 19:59:56 GMT
63
+ - request:
64
+ method: post
65
+ uri: unix:///var/run/docker.sock/v1.6/containers/ded9600a2f37/attach?stderr=true&stdout=true&stream=true
66
+ body:
67
+ encoding: US-ASCII
68
+ string: ''
69
+ headers:
70
+ User-Agent:
71
+ - Swipely/Docker-API 1.7.0
72
+ Content-Type:
73
+ - text/plain
74
+ response:
75
+ status:
76
+ code: 200
77
+ message:
78
+ headers:
79
+ !binary "Q29udGVudC1UeXBl":
80
+ - !binary |-
81
+ YXBwbGljYXRpb24vdm5kLmRvY2tlci5yYXctc3RyZWFt
82
+ body:
83
+ encoding: US-ASCII
84
+ string: !binary |-
85
+ AQAAAAAAAAIvCg==
86
+ http_version:
87
+ recorded_at: Fri, 08 Nov 2013 19:59:56 GMT
88
+ recorded_with: VCR 2.7.0
metadata CHANGED
@@ -1,139 +1,158 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docker-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.7.2
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Swipely, Inc.
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-11-05 00:00:00.000000000 Z
12
+ date: 2013-11-08 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: excon
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - '>='
19
+ - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: '0.28'
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - '>='
27
+ - - ! '>='
25
28
  - !ruby/object:Gem::Version
26
29
  version: '0.28'
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: json
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - '>='
35
+ - - ! '>='
32
36
  - !ruby/object:Gem::Version
33
37
  version: '0'
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - '>='
43
+ - - ! '>='
39
44
  - !ruby/object:Gem::Version
40
45
  version: '0'
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: archive-tar-minitar
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - '>='
51
+ - - ! '>='
46
52
  - !ruby/object:Gem::Version
47
53
  version: '0'
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - '>='
59
+ - - ! '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: rake
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
- - - '>='
67
+ - - ! '>='
60
68
  - !ruby/object:Gem::Version
61
69
  version: '0'
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
- - - '>='
75
+ - - ! '>='
67
76
  - !ruby/object:Gem::Version
68
77
  version: '0'
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: rspec
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
- - - '>='
83
+ - - ! '>='
74
84
  - !ruby/object:Gem::Version
75
85
  version: '0'
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
- - - '>='
91
+ - - ! '>='
81
92
  - !ruby/object:Gem::Version
82
93
  version: '0'
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: cane
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
- - - '>='
99
+ - - ! '>='
88
100
  - !ruby/object:Gem::Version
89
101
  version: '0'
90
102
  type: :development
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
- - - '>='
107
+ - - ! '>='
95
108
  - !ruby/object:Gem::Version
96
109
  version: '0'
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: pry
99
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
100
114
  requirements:
101
- - - '>='
115
+ - - ! '>='
102
116
  - !ruby/object:Gem::Version
103
117
  version: '0'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
107
122
  requirements:
108
- - - '>='
123
+ - - ! '>='
109
124
  - !ruby/object:Gem::Version
110
125
  version: '0'
111
126
  - !ruby/object:Gem::Dependency
112
127
  name: vcr
113
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
114
130
  requirements:
115
- - - '>='
131
+ - - ! '>='
116
132
  - !ruby/object:Gem::Version
117
133
  version: 2.7.0
118
134
  type: :development
119
135
  prerelease: false
120
136
  version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
121
138
  requirements:
122
- - - '>='
139
+ - - ! '>='
123
140
  - !ruby/object:Gem::Version
124
141
  version: 2.7.0
125
142
  - !ruby/object:Gem::Dependency
126
143
  name: simplecov
127
144
  requirement: !ruby/object:Gem::Requirement
145
+ none: false
128
146
  requirements:
129
- - - '>='
147
+ - - ! '>='
130
148
  - !ruby/object:Gem::Version
131
149
  version: '0'
132
150
  type: :development
133
151
  prerelease: false
134
152
  version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
135
154
  requirements:
136
- - - '>='
155
+ - - ! '>='
137
156
  - !ruby/object:Gem::Version
138
157
  version: '0'
139
158
  description: A simple REST client for the Docker Remote API
@@ -159,12 +178,14 @@ files:
159
178
  - lib/docker/error.rb
160
179
  - lib/docker/event.rb
161
180
  - lib/docker/image.rb
181
+ - lib/docker/messages.rb
162
182
  - lib/docker/util.rb
163
183
  - lib/docker/version.rb
164
184
  - spec/docker/connection_spec.rb
165
185
  - spec/docker/container_spec.rb
166
186
  - spec/docker/event_spec.rb
167
187
  - spec/docker/image_spec.rb
188
+ - spec/docker/messages_spec.rb
168
189
  - spec/docker/util_spec.rb
169
190
  - spec/docker_spec.rb
170
191
  - spec/fixtures/build_from_dir/Dockerfile
@@ -176,7 +197,8 @@ files:
176
197
  - spec/vcr/Docker/_validate_version/when_nothing_is_raised/validate_version_/.yml
177
198
  - spec/vcr/Docker/_version/returns_the_version_as_a_Hash.yml
178
199
  - spec/vcr/Docker_Container/_all/when_the_HTTP_response_is_a_200/materializes_each_Container_into_a_Docker_Container.yml
179
- - spec/vcr/Docker_Container/_attach/yields_each_chunk.yml
200
+ - spec/vcr/Docker_Container/_attach/with_normal_sized_chunks/yields_each_chunk.yml
201
+ - spec/vcr/Docker_Container/_attach/with_very_small_chunks/yields_each_chunk.yml
180
202
  - spec/vcr/Docker_Container/_changes/returns_the_changes_as_an_array.yml
181
203
  - spec/vcr/Docker_Container/_commit/creates_a_new_Image_from_the_Container_s_changes.yml
182
204
  - spec/vcr/Docker_Container/_commit/if_run_is_passed_it_saves_the_command_in_the_image/saves_the_command.yml
@@ -221,32 +243,34 @@ files:
221
243
  homepage: https://github.com/swipely/docker-api
222
244
  licenses:
223
245
  - MIT
224
- metadata: {}
225
246
  post_install_message:
226
247
  rdoc_options: []
227
248
  require_paths:
228
249
  - lib
229
250
  required_ruby_version: !ruby/object:Gem::Requirement
251
+ none: false
230
252
  requirements:
231
- - - '>='
253
+ - - ! '>='
232
254
  - !ruby/object:Gem::Version
233
255
  version: '0'
234
256
  required_rubygems_version: !ruby/object:Gem::Requirement
257
+ none: false
235
258
  requirements:
236
- - - '>='
259
+ - - ! '>='
237
260
  - !ruby/object:Gem::Version
238
261
  version: '0'
239
262
  requirements: []
240
263
  rubyforge_project:
241
- rubygems_version: 2.0.3
264
+ rubygems_version: 1.8.23
242
265
  signing_key:
243
- specification_version: 4
266
+ specification_version: 3
244
267
  summary: A simple REST client for the Docker Remote API
245
268
  test_files:
246
269
  - spec/docker/connection_spec.rb
247
270
  - spec/docker/container_spec.rb
248
271
  - spec/docker/event_spec.rb
249
272
  - spec/docker/image_spec.rb
273
+ - spec/docker/messages_spec.rb
250
274
  - spec/docker/util_spec.rb
251
275
  - spec/docker_spec.rb
252
276
  - spec/fixtures/build_from_dir/Dockerfile
@@ -258,7 +282,8 @@ test_files:
258
282
  - spec/vcr/Docker/_validate_version/when_nothing_is_raised/validate_version_/.yml
259
283
  - spec/vcr/Docker/_version/returns_the_version_as_a_Hash.yml
260
284
  - spec/vcr/Docker_Container/_all/when_the_HTTP_response_is_a_200/materializes_each_Container_into_a_Docker_Container.yml
261
- - spec/vcr/Docker_Container/_attach/yields_each_chunk.yml
285
+ - spec/vcr/Docker_Container/_attach/with_normal_sized_chunks/yields_each_chunk.yml
286
+ - spec/vcr/Docker_Container/_attach/with_very_small_chunks/yields_each_chunk.yml
262
287
  - spec/vcr/Docker_Container/_changes/returns_the_changes_as_an_array.yml
263
288
  - spec/vcr/Docker_Container/_commit/creates_a_new_Image_from_the_Container_s_changes.yml
264
289
  - spec/vcr/Docker_Container/_commit/if_run_is_passed_it_saves_the_command_in_the_image/saves_the_command.yml
@@ -300,3 +325,4 @@ test_files:
300
325
  - spec/vcr/Docker_Image/_run/when_the_argument_is_nil/no_command_configured_in_image/should_raise_an_error_if_no_command_is_specified.yml
301
326
  - spec/vcr/Docker_Image/_search/materializes_each_Image_into_a_Docker_Image.yml
302
327
  - spec/vcr/Docker_Image/_tag/tags_the_image_with_the_repo_name.yml
328
+ has_rdoc:
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: a4a13f5948a8df770804ade2a22dc3c31e7fc1b1
4
- data.tar.gz: c3ac3bb3d1219fb34fbb1e91b4ee63e7fc4486b9
5
- SHA512:
6
- metadata.gz: ff874b82925ea1dd68a05be8bdad589108967abc86d6a649efaf07606b35266284c4d596e0bdf603f56d7a5d8268a6f327a9e90311b0b7240cd9b517b909ac1f
7
- data.tar.gz: abd742b0ee713c369d1034b90c96ed6e8c6ba48ccac6fa36129ecd36c5a8c6340860cf89486d90feaacebf105a30f6df8ec17e5954dd63c85cc73dcd0cf19953