pg_export 1.0.0.rc6 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +23 -2
  3. data/CHANGELOG.md +6 -3
  4. data/README.md +43 -34
  5. data/bin/pg_export +13 -131
  6. data/bin/setup +0 -2
  7. data/lib/pg_export/commands_factory.rb +158 -0
  8. data/lib/pg_export/configuration.rb +15 -16
  9. data/lib/pg_export/configuration_parser.rb +126 -0
  10. data/lib/pg_export/{lib/pg_export/factories → factories}/dump_factory.rb +1 -1
  11. data/lib/pg_export/{lib/pg_export/factories → factories}/ftp_gateway_factory.rb +1 -1
  12. data/lib/pg_export/{lib/pg_export/repositories/gateway_dump_file_repository.rb → factories/gateway_dump_file_factory.rb} +4 -4
  13. data/lib/pg_export/{lib/pg_export/factories → factories}/ssh_gateway_factory.rb +1 -1
  14. data/lib/pg_export/{lib/pg_export/operations → operations}/decrypt_dump.rb +1 -1
  15. data/lib/pg_export/{lib/pg_export/operations → operations}/encrypt_dump.rb +1 -1
  16. data/lib/pg_export/{lib/pg_export/operations → operations}/open_connection.rb +1 -1
  17. data/lib/pg_export/{lib/pg_export/operations → operations}/remove_old_dumps.rb +1 -1
  18. data/lib/pg_export/{lib/pg_export/repositories → repositories}/gateway_dump_repository.rb +2 -2
  19. data/lib/pg_export/{lib/pg_export/transactions → transactions}/export_dump.rb +10 -10
  20. data/lib/pg_export/{lib/pg_export/transactions → transactions}/import_dump_interactively.rb +19 -10
  21. data/lib/pg_export/{lib/pg_export/value_objects → value_objects}/result.rb +1 -1
  22. data/lib/pg_export/version.rb +1 -1
  23. data/lib/pg_export.rb +12 -14
  24. data/pg_export.gemspec +1 -3
  25. metadata +52 -51
  26. data/lib/pg_export/factory.rb +0 -148
  27. /data/lib/pg_export/{lib/pg_export/adapters → adapters}/shell_adapter.rb +0 -0
  28. /data/lib/pg_export/{lib/pg_export/entities → entities}/dump.rb +0 -0
  29. /data/lib/pg_export/{lib/pg_export/factories → factories}/cipher_factory.rb +0 -0
  30. /data/lib/pg_export/{lib/pg_export/gateways → gateways}/ftp.rb +0 -0
  31. /data/lib/pg_export/{lib/pg_export/gateways → gateways}/ssh.rb +0 -0
  32. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/interactive/build_dump.rb +0 -0
  33. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/interactive/close_connection.rb +0 -0
  34. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/interactive/decrypt_dump.rb +0 -0
  35. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/interactive/download_dump.rb +0 -0
  36. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/interactive/encrypt_dump.rb +0 -0
  37. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/interactive/fetch_dumps.rb +0 -0
  38. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/interactive/open_connection.rb +0 -0
  39. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/interactive/remove_old_dumps.rb +0 -0
  40. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/interactive/restore.rb +0 -0
  41. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/interactive/select_database.rb +0 -0
  42. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/interactive/select_dump.rb +0 -0
  43. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/interactive/upload_dump.rb +0 -0
  44. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/interactive_listener.rb +0 -0
  45. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/plain/build_dump.rb +0 -0
  46. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/plain/close_connection.rb +0 -0
  47. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/plain/decrypt_dump.rb +0 -0
  48. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/plain/download_dump.rb +0 -0
  49. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/plain/encrypt_dump.rb +0 -0
  50. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/plain/fetch_dumps.rb +0 -0
  51. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/plain/open_connection.rb +0 -0
  52. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/plain/prepare_params.rb +0 -0
  53. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/plain/remove_old_dumps.rb +0 -0
  54. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/plain/restore.rb +0 -0
  55. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/plain/upload_dump.rb +0 -0
  56. /data/lib/pg_export/{lib/pg_export/listeners → listeners}/plain_listener.rb +0 -0
  57. /data/lib/pg_export/{lib/pg_export/transactions → transactions}/evaluator.rb +0 -0
  58. /data/lib/pg_export/{lib/pg_export/ui → ui}/interactive/input.rb +0 -0
  59. /data/lib/pg_export/{lib/pg_export/ui → ui}/plain/input.rb +0 -0
  60. /data/lib/pg_export/{lib/pg_export/value_objects → value_objects}/dump_file.rb +0 -0
@@ -0,0 +1,126 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'optparse'
4
+ require 'pg_export/configuration'
5
+
6
+ class PgExport
7
+ class ConfigurationParser
8
+ class Error < OptionParser::ParseError; end
9
+
10
+ class << self
11
+ def parse
12
+ h = {
13
+ encryption_key: ENV['PG_EXPORT_ENCRYPTION_KEY'],
14
+ encryption_algorithm: ENV['PG_EXPORT_ENCRYPTION_ALGORITHM'],
15
+ gateway_user: ENV['PG_EXPORT_GATEWAY_USER'],
16
+ gateway_host: ENV['PG_EXPORT_GATEWAY_HOST'],
17
+ gateway_password: ENV['PG_EXPORT_GATEWAY_PASSWORD'],
18
+ logger_format: ENV['PG_EXPORT_LOGGER_FORMAT'],
19
+ keep_dumps: ENV['PG_EXPORT_KEEP_DUMPS'],
20
+ gateway: ENV['PG_EXPORT_GATEWAY'],
21
+ database: ENV['PG_EXPORT_DATABASE'],
22
+ mode: ENV['PG_EXPORT_MODE'],
23
+ command: :export_dump
24
+ }
25
+
26
+ option_parser(h).parse!
27
+ h[:database] = ARGV.first unless ARGV.empty?
28
+
29
+ Configuration.new(**h)
30
+ rescue OptionParser::ParseError => e
31
+ error = Error.new(*e.args)
32
+ error.reason = e.reason
33
+ raise error
34
+ end
35
+
36
+ def help
37
+ option_parser.to_s
38
+ end
39
+
40
+ BANNER = <<~TXT
41
+ NAME
42
+ pg_export - CLI for exporting/importing PostgreSQL dumps via FTP/SSH
43
+
44
+ SYNOPSIS
45
+ pg_export DATABASE [OPTION..]
46
+ pg_export --interactive DATABASE [OPTION..]
47
+
48
+ EXIT VALUES
49
+ 0 - Success
50
+ 1 - Error
51
+
52
+ ARGUMENTS
53
+ DATABASE - database name to export (when default mode)
54
+ - phrase to filter database dumps by (when interactive mode)
55
+
56
+ OPTIONS
57
+ TXT
58
+
59
+ EXAMPLE = <<~TXT
60
+ ENV
61
+ Each of the above options can be also set using enviromental variables.
62
+ Use full option names prepending with PG_EXPORT_ phrase.
63
+ Command line options takes precedence over the ENVs.
64
+
65
+ Eg. commands:
66
+ pg_export -s -U user -H host database_name -k 10
67
+
68
+ Is equivalent to:
69
+ export PG_EXPORT_GATEWAY_USER=user
70
+ export PG_EXPORT_GATEWAY_HOST=host
71
+ export PG_EXPORT_KEEP=20
72
+ pg_export -s database_name -k 10
73
+ TXT
74
+
75
+ N = "\n "
76
+
77
+ O = {
78
+ g: 'Allowed values: ftp, ssh. Default: ftp',
79
+ U: 'Gateway (ftp or ssh) user',
80
+ H: 'Gateway (ftp or ssh) host',
81
+ P: 'Gateway (ftp or ssh) password',
82
+ d: "In plain mode: database name to export;#{N}In interactive mode: phrase to filter by",
83
+ e: 'Dumps will be SSL encrypted using this key. Should have exactly 16 characters',
84
+ a: "Encryption cipher algorithm (default: AES-128-CBC);#{N}For available option see `$ openssl list -cipher-algorithms`",
85
+ k: 'Number of dump files to keep on FTP/SSH (default: 10)',
86
+ s: 'Same as "--gateway ssh". When set, the --gateway option is ignored',
87
+ f: 'Same as "--gateway ftp". When set, the --gateway option is ignored',
88
+ t: 'Prepends log messages with timestamps',
89
+ m: 'Mutes log messages. When set, the -t option is ignored. Prints message only on error',
90
+ i: 'Interactive mode, for importing dumps. Whan set, the -t and -m options are ignored',
91
+ w: 'Try connecting to the gateway (FTP or SSH) to verify the connection and exit',
92
+ c: 'Print the configuration and exit',
93
+ v: 'Print version',
94
+ h: 'Print this message and exit'
95
+ }.freeze
96
+ private_constant :BANNER, :EXAMPLE, :N, :O
97
+
98
+ def option_parser(h = {})
99
+ OptionParser.new do |o|
100
+ o.banner = BANNER
101
+ o.program_name = 'pg_export'
102
+ o.version = PgExport::VERSION
103
+ o.on('-g', '--gateway GATEWAY', %w[ftp ssh], O[:g]) { |v| h[:gateway] = v }
104
+ o.on('-U', '--user USER', String, O[:U]) { |v| h[:gateway_user] = v }
105
+ o.on('-H', '--host HOST', String, O[:H]) { |v| h[:gateway_host] = v }
106
+ o.on('-P', '--password PASSWORD', String, O[:P]) { |v| h[:gateway_password] = v }
107
+ o.on('-d', '--database DATABASE', String, O[:d]) { |v| h[:database] = v }
108
+ o.on('-e', '--encryption_key KEY', String, O[:e]) { |v| h[:encryption_key] = v }
109
+ o.on('-a', '--algorithm ALGORITHM', String, O[:a]) { |v| h[:encryption_algorithm] = v }
110
+ o.on('-k', '--keep KEEP', Integer, O[:k]) { |v| h[:keep_dumps] = v }
111
+ o.on('-s', '--ssh', O[:s]) { h[:gateway] = 'ssh' }
112
+ o.on('-f', '--ftp', O[:f]) { h[:gateway] = 'ftp' }
113
+ o.on('-t', '--timestamped', O[:t]) { h[:logger_format] = 'timestamped' }
114
+ o.on('-m', '--muted', O[:m]) { h[:logger_format] = 'muted' }
115
+ o.on('-i', '--interactive', O[:i]) { h[:command] = :import_dump_interactively }
116
+ o.on('-w', '--welcome', O[:w]) { h[:command] = :gateway_welcome }
117
+ o.on('-c', '--configuration', O[:c]) { h[:command] = :print_configuration }
118
+ o.on('-v', '--version', O[:v]) { h[:command] = :print_version }
119
+ o.on('-h', '--help', O[:h]) { h[:command] = :print_help }
120
+ o.separator ''
121
+ o.separator EXAMPLE
122
+ end
123
+ end
124
+ end
125
+ end
126
+ end
@@ -3,7 +3,7 @@
3
3
  require 'open3'
4
4
  require 'tempfile'
5
5
 
6
- require 'pg_export/lib/pg_export/entities/dump'
6
+ require 'pg_export/entities/dump'
7
7
 
8
8
  class PgExport
9
9
  module Factories
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'pg_export/lib/pg_export/gateways/ftp'
3
+ require 'pg_export/gateways/ftp'
4
4
 
5
5
  class PgExport
6
6
  module Factories
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'open3'
4
- require 'pg_export/lib/pg_export/entities/dump'
5
- require 'pg_export/lib/pg_export/value_objects/dump_file'
4
+ require 'pg_export/entities/dump'
5
+ require 'pg_export/value_objects/dump_file'
6
6
 
7
7
  class PgExport
8
- module Repositories
9
- class GatewayDumpFileRepository
8
+ module Factories
9
+ class GatewayDumpFileFactory
10
10
  def by_name(name:, gateway:)
11
11
  file = ValueObjects::DumpFile.new
12
12
  gateway.get(file, name)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'pg_export/lib/pg_export/gateways/ssh'
3
+ require 'pg_export/gateways/ssh'
4
4
 
5
5
  class PgExport
6
6
  module Factories
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'pg_export'
4
- require 'pg_export/lib/pg_export/value_objects/result'
4
+ require 'pg_export/value_objects/result'
5
5
 
6
6
  class PgExport
7
7
  module Operations
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'pg_export/lib/pg_export/value_objects/result'
3
+ require 'pg_export/value_objects/result'
4
4
 
5
5
  class PgExport
6
6
  module Operations
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'pg_export/lib/pg_export/value_objects/result'
3
+ require 'pg_export/value_objects/result'
4
4
 
5
5
  class PgExport
6
6
  module Operations
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'pg_export/lib/pg_export/value_objects/result'
3
+ require 'pg_export/value_objects/result'
4
4
 
5
5
  class PgExport
6
6
  module Operations
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'open3'
4
- require 'pg_export/lib/pg_export/entities/dump'
5
- require 'pg_export/lib/pg_export/value_objects/dump_file'
4
+ require 'pg_export/entities/dump'
5
+ require 'pg_export/value_objects/dump_file'
6
6
 
7
7
  class PgExport
8
8
  module Repositories
@@ -1,15 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'pg_export/lib/pg_export/transactions/evaluator'
4
- require 'pg_export/lib/pg_export/value_objects/dump_file'
5
- require 'pg_export/lib/pg_export/value_objects/result'
3
+ require 'pg_export/transactions/evaluator'
4
+ require 'pg_export/value_objects/dump_file'
5
+ require 'pg_export/adapters/shell_adapter'
6
+ require 'pg_export/value_objects/result'
6
7
 
7
8
  class PgExport
8
9
  module Transactions
9
10
  class ExportDump
10
- def initialize(dump_factory:, bash_adapter:, encrypt_dump:, open_connection:, remove_old_dumps:, listeners:)
11
+ def initialize(dump_factory:, shell_adapter:, encrypt_dump:, open_connection:, remove_old_dumps:, listeners:)
11
12
  @dump_factory = dump_factory
12
- @bash_adapter = bash_adapter
13
+ @shell_adapter = shell_adapter
13
14
 
14
15
  @evaluator = Evaluator.new(listeners)
15
16
  @evaluator << method(:prepare_params)
@@ -27,8 +28,7 @@ class PgExport
27
28
 
28
29
  private
29
30
 
30
- attr_reader :evaluator, :dump_factory, :bash_adapter
31
-
31
+ attr_reader :evaluator, :dump_factory, :shell_adapter
32
32
 
33
33
  def prepare_params(database_name:)
34
34
  database_name = database_name.to_s
@@ -41,10 +41,10 @@ class PgExport
41
41
  def build_dump(database_name:)
42
42
  dump = dump_factory.plain(
43
43
  database: database_name,
44
- file: bash_adapter.pg_dump(ValueObjects::DumpFile.new, database_name)
44
+ file: shell_adapter.pg_dump(ValueObjects::DumpFile.new, database_name)
45
45
  )
46
46
  ValueObjects::Success.new(dump: dump)
47
- rescue bash_adapter.class::PgDumpError => e
47
+ rescue Adapters::ShellAdapter::PgDumpError => e
48
48
  ValueObjects::Failure.new(message: 'Unable to dump database: ' + e.to_s)
49
49
  end
50
50
 
@@ -55,7 +55,7 @@ class PgExport
55
55
 
56
56
  def close_connection(removed_dumps:, gateway:)
57
57
  gateway.close
58
- ValueObjects::Success.new(gateway: gateway)
58
+ ValueObjects::Success.new
59
59
  end
60
60
  end
61
61
  end
@@ -1,16 +1,25 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'pg_export/lib/pg_export/transactions/evaluator'
4
- require 'pg_export/lib/pg_export/value_objects/result'
3
+ require 'pg_export/transactions/evaluator'
4
+ require 'pg_export/adapters/shell_adapter'
5
+ require 'pg_export/value_objects/result'
5
6
 
6
7
  class PgExport
7
8
  module Transactions
8
9
  class ImportDumpInteractively
9
- def initialize(input:, bash_adapter:, gateway_dump_repository:, gateway_dump_file_repository:, open_connection:, decrypt_dump:, listeners:)
10
+ def initialize(
11
+ input:,
12
+ shell_adapter:,
13
+ gateway_dump_repository:,
14
+ gateway_dump_file_factory:,
15
+ open_connection:,
16
+ decrypt_dump:,
17
+ listeners:
18
+ )
10
19
  @input = input
11
- @bash_adapter = bash_adapter
20
+ @shell_adapter = shell_adapter
12
21
  @gateway_dump_repository = gateway_dump_repository
13
- @gateway_dump_file_repository = gateway_dump_file_repository
22
+ @gateway_dump_file_factory = gateway_dump_file_factory
14
23
 
15
24
  @evaluator = Evaluator.new(listeners)
16
25
  @evaluator << open_connection
@@ -29,7 +38,7 @@ class PgExport
29
38
 
30
39
  private
31
40
 
32
- attr_reader :evaluator, :input, :bash_adapter, :gateway_dump_repository, :gateway_dump_file_repository
41
+ attr_reader :evaluator, :input, :shell_adapter, :gateway_dump_repository, :gateway_dump_file_factory
33
42
 
34
43
  def fetch_dumps(database_name:, gateway:)
35
44
  dumps = gateway_dump_repository.all(database_name: database_name, gateway: gateway)
@@ -44,7 +53,7 @@ class PgExport
44
53
  end
45
54
 
46
55
  def download_dump(dump:, gateway:)
47
- dump.file = gateway_dump_file_repository.by_name(name: dump.name, gateway: gateway)
56
+ dump.file = gateway_dump_file_factory.by_name(name: dump.name, gateway: gateway)
48
57
  ValueObjects::Success.new(dump: dump, gateway: gateway)
49
58
  end
50
59
 
@@ -59,9 +68,9 @@ class PgExport
59
68
  end
60
69
 
61
70
  def restore(dump:, database:)
62
- bash_adapter.pg_restore(dump.file, database)
63
- ValueObjects::Success.new({})
64
- rescue bash_adapter.class::PgRestoreError => e
71
+ shell_adapter.pg_restore(dump.file, database)
72
+ ValueObjects::Success.new(nil)
73
+ rescue Adapters::ShellAdapter::PgRestoreError => e
65
74
  ValueObjects::Failure.new(message: e.to_s)
66
75
  end
67
76
  end
@@ -5,7 +5,7 @@ class PgExport
5
5
  class Result
6
6
  attr_reader :value
7
7
 
8
- def initialize(value)
8
+ def initialize(value = nil)
9
9
  @value = value
10
10
  end
11
11
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class PgExport
4
- VERSION = '1.0.0.rc6'
4
+ VERSION = '1.0.0'
5
5
  end
data/lib/pg_export.rb CHANGED
@@ -2,27 +2,25 @@
2
2
 
3
3
  require 'pg_export/version'
4
4
  require 'pg_export/configuration'
5
- require 'pg_export/factory'
5
+ require 'pg_export/configuration_parser'
6
+ require 'pg_export/commands_factory'
6
7
 
7
8
  class PgExport
8
- class InitializationError < StandardError; end
9
+ def initialize(config)
10
+ raise ArgumentError, 'config is not a PgExport::Configuration' unless config.is_a?(PgExport::Configuration)
9
11
 
10
- attr_reader :config
11
-
12
- def initialize
13
- @config = PgExport::Configuration.build(ENV)
14
- @factory = PgExport::Factory.new(config: config)
15
- end
16
-
17
- def call(database_name, &block)
18
- factory.transaction.call(database_name: database_name, &block)
12
+ @command_name = config.command
13
+ @database_name = config.database
14
+ @commands_factory = PgExport::CommandsFactory.new(config: config)
19
15
  end
20
16
 
21
- def gateway_welcome
22
- container.gateway_factory.gateway.welcome
17
+ def call
18
+ commands_factory
19
+ .public_send(command_name)
20
+ .call(database_name: database_name)
23
21
  end
24
22
 
25
23
  private
26
24
 
27
- attr_reader :factory
25
+ attr_reader :command_name, :database_name, :commands_factory
28
26
  end
data/pg_export.gemspec CHANGED
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path('lib', __dir__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'pg_export/version'
3
+ require_relative 'lib/pg_export/version'
6
4
 
7
5
  Gem::Specification.new do |spec|
8
6
  spec.name = 'pg_export'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_export
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.rc6
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Krzysztof Maicher
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-17 00:00:00.000000000 Z
11
+ date: 2023-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bcrypt_pbkdf
@@ -203,54 +203,55 @@ files:
203
203
  - bin/pg_export
204
204
  - bin/setup
205
205
  - lib/pg_export.rb
206
+ - lib/pg_export/adapters/shell_adapter.rb
207
+ - lib/pg_export/commands_factory.rb
206
208
  - lib/pg_export/configuration.rb
207
- - lib/pg_export/factory.rb
208
- - lib/pg_export/lib/pg_export/adapters/shell_adapter.rb
209
- - lib/pg_export/lib/pg_export/entities/dump.rb
210
- - lib/pg_export/lib/pg_export/factories/cipher_factory.rb
211
- - lib/pg_export/lib/pg_export/factories/dump_factory.rb
212
- - lib/pg_export/lib/pg_export/factories/ftp_gateway_factory.rb
213
- - lib/pg_export/lib/pg_export/factories/ssh_gateway_factory.rb
214
- - lib/pg_export/lib/pg_export/gateways/ftp.rb
215
- - lib/pg_export/lib/pg_export/gateways/ssh.rb
216
- - lib/pg_export/lib/pg_export/listeners/interactive/build_dump.rb
217
- - lib/pg_export/lib/pg_export/listeners/interactive/close_connection.rb
218
- - lib/pg_export/lib/pg_export/listeners/interactive/decrypt_dump.rb
219
- - lib/pg_export/lib/pg_export/listeners/interactive/download_dump.rb
220
- - lib/pg_export/lib/pg_export/listeners/interactive/encrypt_dump.rb
221
- - lib/pg_export/lib/pg_export/listeners/interactive/fetch_dumps.rb
222
- - lib/pg_export/lib/pg_export/listeners/interactive/open_connection.rb
223
- - lib/pg_export/lib/pg_export/listeners/interactive/remove_old_dumps.rb
224
- - lib/pg_export/lib/pg_export/listeners/interactive/restore.rb
225
- - lib/pg_export/lib/pg_export/listeners/interactive/select_database.rb
226
- - lib/pg_export/lib/pg_export/listeners/interactive/select_dump.rb
227
- - lib/pg_export/lib/pg_export/listeners/interactive/upload_dump.rb
228
- - lib/pg_export/lib/pg_export/listeners/interactive_listener.rb
229
- - lib/pg_export/lib/pg_export/listeners/plain/build_dump.rb
230
- - lib/pg_export/lib/pg_export/listeners/plain/close_connection.rb
231
- - lib/pg_export/lib/pg_export/listeners/plain/decrypt_dump.rb
232
- - lib/pg_export/lib/pg_export/listeners/plain/download_dump.rb
233
- - lib/pg_export/lib/pg_export/listeners/plain/encrypt_dump.rb
234
- - lib/pg_export/lib/pg_export/listeners/plain/fetch_dumps.rb
235
- - lib/pg_export/lib/pg_export/listeners/plain/open_connection.rb
236
- - lib/pg_export/lib/pg_export/listeners/plain/prepare_params.rb
237
- - lib/pg_export/lib/pg_export/listeners/plain/remove_old_dumps.rb
238
- - lib/pg_export/lib/pg_export/listeners/plain/restore.rb
239
- - lib/pg_export/lib/pg_export/listeners/plain/upload_dump.rb
240
- - lib/pg_export/lib/pg_export/listeners/plain_listener.rb
241
- - lib/pg_export/lib/pg_export/operations/decrypt_dump.rb
242
- - lib/pg_export/lib/pg_export/operations/encrypt_dump.rb
243
- - lib/pg_export/lib/pg_export/operations/open_connection.rb
244
- - lib/pg_export/lib/pg_export/operations/remove_old_dumps.rb
245
- - lib/pg_export/lib/pg_export/repositories/gateway_dump_file_repository.rb
246
- - lib/pg_export/lib/pg_export/repositories/gateway_dump_repository.rb
247
- - lib/pg_export/lib/pg_export/transactions/evaluator.rb
248
- - lib/pg_export/lib/pg_export/transactions/export_dump.rb
249
- - lib/pg_export/lib/pg_export/transactions/import_dump_interactively.rb
250
- - lib/pg_export/lib/pg_export/ui/interactive/input.rb
251
- - lib/pg_export/lib/pg_export/ui/plain/input.rb
252
- - lib/pg_export/lib/pg_export/value_objects/dump_file.rb
253
- - lib/pg_export/lib/pg_export/value_objects/result.rb
209
+ - lib/pg_export/configuration_parser.rb
210
+ - lib/pg_export/entities/dump.rb
211
+ - lib/pg_export/factories/cipher_factory.rb
212
+ - lib/pg_export/factories/dump_factory.rb
213
+ - lib/pg_export/factories/ftp_gateway_factory.rb
214
+ - lib/pg_export/factories/gateway_dump_file_factory.rb
215
+ - lib/pg_export/factories/ssh_gateway_factory.rb
216
+ - lib/pg_export/gateways/ftp.rb
217
+ - lib/pg_export/gateways/ssh.rb
218
+ - lib/pg_export/listeners/interactive/build_dump.rb
219
+ - lib/pg_export/listeners/interactive/close_connection.rb
220
+ - lib/pg_export/listeners/interactive/decrypt_dump.rb
221
+ - lib/pg_export/listeners/interactive/download_dump.rb
222
+ - lib/pg_export/listeners/interactive/encrypt_dump.rb
223
+ - lib/pg_export/listeners/interactive/fetch_dumps.rb
224
+ - lib/pg_export/listeners/interactive/open_connection.rb
225
+ - lib/pg_export/listeners/interactive/remove_old_dumps.rb
226
+ - lib/pg_export/listeners/interactive/restore.rb
227
+ - lib/pg_export/listeners/interactive/select_database.rb
228
+ - lib/pg_export/listeners/interactive/select_dump.rb
229
+ - lib/pg_export/listeners/interactive/upload_dump.rb
230
+ - lib/pg_export/listeners/interactive_listener.rb
231
+ - lib/pg_export/listeners/plain/build_dump.rb
232
+ - lib/pg_export/listeners/plain/close_connection.rb
233
+ - lib/pg_export/listeners/plain/decrypt_dump.rb
234
+ - lib/pg_export/listeners/plain/download_dump.rb
235
+ - lib/pg_export/listeners/plain/encrypt_dump.rb
236
+ - lib/pg_export/listeners/plain/fetch_dumps.rb
237
+ - lib/pg_export/listeners/plain/open_connection.rb
238
+ - lib/pg_export/listeners/plain/prepare_params.rb
239
+ - lib/pg_export/listeners/plain/remove_old_dumps.rb
240
+ - lib/pg_export/listeners/plain/restore.rb
241
+ - lib/pg_export/listeners/plain/upload_dump.rb
242
+ - lib/pg_export/listeners/plain_listener.rb
243
+ - lib/pg_export/operations/decrypt_dump.rb
244
+ - lib/pg_export/operations/encrypt_dump.rb
245
+ - lib/pg_export/operations/open_connection.rb
246
+ - lib/pg_export/operations/remove_old_dumps.rb
247
+ - lib/pg_export/repositories/gateway_dump_repository.rb
248
+ - lib/pg_export/transactions/evaluator.rb
249
+ - lib/pg_export/transactions/export_dump.rb
250
+ - lib/pg_export/transactions/import_dump_interactively.rb
251
+ - lib/pg_export/ui/interactive/input.rb
252
+ - lib/pg_export/ui/plain/input.rb
253
+ - lib/pg_export/value_objects/dump_file.rb
254
+ - lib/pg_export/value_objects/result.rb
254
255
  - lib/pg_export/version.rb
255
256
  - pg_export.gemspec
256
257
  homepage: https://github.com/maicher/pg_export
@@ -268,9 +269,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
268
269
  version: 2.3.0
269
270
  required_rubygems_version: !ruby/object:Gem::Requirement
270
271
  requirements:
271
- - - ">"
272
+ - - ">="
272
273
  - !ruby/object:Gem::Version
273
- version: 1.3.1
274
+ version: '0'
274
275
  requirements: []
275
276
  rubygems_version: 3.2.3
276
277
  signing_key: