pg-ephemeral 0.0.1.pre2-aarch64-linux → 0.0.3-aarch64-linux

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/pg-ephemeral +0 -0
  3. data/lib/pg_ephemeral.rb +26 -19
  4. metadata +1 -43
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '07841ed5c3fc5e6aaffd34a390f70d116d09c70967bb6cd77e978e64b9c61a79'
4
- data.tar.gz: a226bfcd3557aa93c39a4d692645fb619232a37c9f7ac861f68c972a94cd3a88
3
+ metadata.gz: 45169bb80e9ec4a27cfd940185049da5b88b526803573a0cc6ffa2feaba74033
4
+ data.tar.gz: e80eb2e4a2493d08cb9f50c95d063aca4f9e8d8b58d39bf4cfd1671df195cadb
5
5
  SHA512:
6
- metadata.gz: dd081fe15c4de317a31f7075acf327fa9258bb9a00606e5b7d517dafd14c2c57e1662f8034bac1c57bf0637f02d9cb54a8e35db61e1bb292fff62581ce47f66b
7
- data.tar.gz: 983610fda5c29cd7ec54db96674d2e8eb9caded63f93d025dd4a0b49c03ccbd94d643219613ad6b728d3fa4fa4529978900a977dd9621b36065ddf0bcb5be509
6
+ metadata.gz: 609a6f2c3dde0d73b9e26a5c0c045b4c0130edd425800229d950d0dca07f8b8273fb7a7c1a8421b0b7eadcafa9867e16a0846c7414afcd1b2172eaeba86fb6e1
7
+ data.tar.gz: 3e5ce1dfccf9bd797b532fbde1d010cff9b90f4c9f5fae6cc12f9ad53b8a2fa654e5efd053ffc16a36a023b1cd0c4545eddb4bd871e20b584588fc2a36e8d18e
data/bin/pg-ephemeral CHANGED
Binary file
data/lib/pg_ephemeral.rb CHANGED
@@ -29,7 +29,7 @@ module PgEphemeral
29
29
  end
30
30
 
31
31
  def self.platform_supported?
32
- stdout, status = Open3.capture2(binary_path, 'platform')
32
+ _stdout, status = Open3.capture2(binary_path, 'platform', 'support')
33
33
  status.success?
34
34
  end
35
35
 
@@ -50,6 +50,9 @@ module PgEphemeral
50
50
  end
51
51
 
52
52
  def self.run_server(instance_name, config, &block)
53
+ result_read, result_write = IO.pipe
54
+ control_read, control_write = IO.pipe
55
+
53
56
  command = [binary_path]
54
57
 
55
58
  if config
@@ -57,25 +60,29 @@ module PgEphemeral
57
60
  end
58
61
 
59
62
  command.concat([
60
- 'instance',
61
- '--name', instance_name,
62
63
  'integration-server',
63
- 'v0'
64
+ '--instance', instance_name,
65
+ '--result-fd', result_write.fileno.to_s,
66
+ '--control-fd', control_read.fileno.to_s
64
67
  ])
65
68
 
66
- Open3.popen2(*command) do |stdin, stdout, wait_thread|
67
- config_json = stdout.gets
69
+ pid = Process.spawn(*command, result_write.fileno => result_write, control_read.fileno => control_read)
68
70
 
69
- raise 'Failed to read server configuration' unless config_json
71
+ result_write.close
72
+ control_read.close
70
73
 
71
- url = JSON.parse(config_json).fetch('url')
72
- server = Server.new(url, stdin, wait_thread)
74
+ config_json = result_read.gets
75
+ result_read.close
73
76
 
74
- begin
75
- block.call(server)
76
- ensure
77
- server.shutdown
78
- end
77
+ raise 'Failed to read server configuration' unless config_json
78
+
79
+ url = JSON.parse(config_json).fetch('url')
80
+ server = Server.new(url, control_write, pid)
81
+
82
+ begin
83
+ block.call(server)
84
+ ensure
85
+ server.shutdown
79
86
  end
80
87
  end
81
88
  private_class_method :run_server
@@ -83,15 +90,15 @@ module PgEphemeral
83
90
  class Server
84
91
  attr_reader :url
85
92
 
86
- def initialize(url, stdin, wait_thread)
93
+ def initialize(url, control_write, pid)
87
94
  @url = url
88
- @stdin = stdin
89
- @wait_thread = wait_thread
95
+ @control_write = control_write
96
+ @pid = pid
90
97
  end
91
98
 
92
99
  def shutdown
93
- @stdin.close unless @stdin.closed?
94
- @wait_thread.value
100
+ @control_write.close unless @control_write.closed?
101
+ Process.wait(@pid)
95
102
  end
96
103
  end
97
104
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg-ephemeral
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.pre2
4
+ version: 0.0.3
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - Markus Schirp
@@ -23,48 +23,6 @@ dependencies:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
25
  version: '1.5'
26
- - !ruby/object:Gem::Dependency
27
- name: bundler
28
- requirement: !ruby/object:Gem::Requirement
29
- requirements:
30
- - - "~>"
31
- - !ruby/object:Gem::Version
32
- version: '2.0'
33
- type: :development
34
- prerelease: false
35
- version_requirements: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '2.0'
40
- - !ruby/object:Gem::Dependency
41
- name: mutant-rspec
42
- requirement: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: 0.13.0
47
- type: :development
48
- prerelease: false
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - "~>"
52
- - !ruby/object:Gem::Version
53
- version: 0.13.0
54
- - !ruby/object:Gem::Dependency
55
- name: rspec
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: '3.0'
61
- type: :development
62
- prerelease: false
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '3.0'
68
26
  description: Provides ephemeral PostgreSQL instances for testing, wrapping the pg-ephemeral
69
27
  project binary
70
28
  email: