pry-remote-reloaded 1.2.0 → 3.0.0

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/CHANGELOG.md +16 -0
  3. data/lib/pry-remote-reloaded.rb +52 -51
  4. metadata +8 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 86d756e218eceefff8c1cea1c114c951f1a25293d43e77b628ca995ca1b56654
4
- data.tar.gz: 36948869f753ff647c8214027f8e8a049db73e41f6975b0ee1e301395357721c
3
+ metadata.gz: 38f0e97fed566e5ed687b4795bfcdfc283bdb0b735edea3f2b1d3169e2838244
4
+ data.tar.gz: 3f235f316d76c8909f1ddfadae37466e03d5b24afe1144ee9474b2215a3a917f
5
5
  SHA512:
6
- metadata.gz: e7f8248f6e51c5d52b90029a59f1bbca19584562bc774dd4fd40201d66fb540b69023a2ba547c832bbf41e97d0a8b384246b0e2af66266a1a3ca6be8f3149e42
7
- data.tar.gz: 3185242af9f2fe60f1a9dfd4598415a3e5d0d4e77e3780f9d67832517d72a6e05fd0197961fae7a90c073b426c5160fc8b6293853ae9d0e58ec4307c30f42d42
6
+ metadata.gz: d4c3b3cca08b280632864eef241a58010bd53fd1812cd6649f1b506de820eb81025c619a089b4b97e16f1b61ee7fae4d22590bbd26a43b0cee940178b0dc3157
7
+ data.tar.gz: 5e659b7d3dae7bdc9791dc330f14a4e98696a2947805347d393f3f5ed2481476fb504aa77cd050e515847c19b3f314cf57180417470cd1f04f98b1a2b83a7d9b
data/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ## 3.0.0 (2025-08-20)
2
+
3
+ * Allow configuring server URI instead of host and port (#4)
4
+ * The CLI still allows to configure server/port, but allows to pass the
5
+ URI which takes precedence
6
+ * This is a breaking change for `Object#remote_pry` as its signature is
7
+ changed to keyword arguments (`uri:, **options`)
8
+ * The `PryRemoteReloaded::Server.new` and `PryRemoteReloaded::Server.run`
9
+ signatures also changed to keyword arguments,
10
+ but thats only for internal use
11
+
12
+ ## 2.0.0 (205-08-19)
13
+
14
+ * Upgraded to slop 4.x (#3)
15
+ * Require Pry >= 0.15 (#3)
16
+
1
17
  ## 1.2.0 (2025-01-24)
2
18
 
3
19
  * Added the drb dependency
@@ -7,6 +7,8 @@ require 'open3'
7
7
  module PryRemoteReloaded
8
8
  DefaultHost = ENV['PRY_REMOTE_DEFAULT_HOST'] || "127.0.0.1"
9
9
  DefaultPort = ENV['PRY_REMOTE_DEFAULT_PORT'] || 9876
10
+ DefaultURI = ENV.fetch('PRY_REMOTE_DEFAULT_URI',
11
+ "druby://#{DefaultHost}:#{DefaultPort}")
10
12
 
11
13
  # A class to represent an input object created from DRb. This is used because
12
14
  # Pry checks for arity to know if a prompt should be passed to the object.
@@ -140,13 +142,12 @@ module PryRemoteReloaded
140
142
  end
141
143
 
142
144
  class Server
143
- def self.run(object, host = DefaultHost, port = DefaultPort, options = {})
144
- new(object, host, port, options).run
145
+ def self.run(object, uri: DefaultURI, **options)
146
+ new(object, uri:, **options).run
145
147
  end
146
148
 
147
- def initialize(object, host = DefaultHost, port = DefaultPort, options = {})
148
- @host = host
149
- @port = port
149
+ def initialize(object, uri: DefaultURI, **options)
150
+ @uri = uri
150
151
 
151
152
  @object = object
152
153
  @options = options
@@ -154,7 +155,7 @@ module PryRemoteReloaded
154
155
  @client = PryRemoteReloaded::Client.new
155
156
  DRb.start_service uri, @client
156
157
  rescue Errno::EADDRINUSE => e
157
- puts "[pry-remote] Port already in use: #{e.message}"
158
+ puts "[pry-remote] Address already in use: #{e.message}"
158
159
  end
159
160
 
160
161
  # Code that has to be called for Pry-remote to work properly
@@ -249,59 +250,60 @@ module PryRemoteReloaded
249
250
  # @return [PryServer::Client] Client connecting to the pry-remote server
250
251
  attr_reader :client
251
252
 
252
- # @return [String] Host of the server
253
- attr_reader :host
254
-
255
- # @return [Integer] Port of the server
256
- attr_reader :port
257
-
258
253
  # @return [String] URI for DRb
259
- def uri
260
- "druby://#{host}:#{port}"
261
- end
254
+ attr_reader :uri
262
255
  end
263
256
 
264
257
  # Parses arguments and allows to start the client.
265
258
  class CLI
266
259
  def initialize(args = ARGV)
267
- params = Slop.parse args, :help => true do
268
- banner "#$PROGRAM_NAME [OPTIONS]"
269
-
270
- on :s, :server=, "Host of the server (#{DefaultHost})", :argument => :optional,
271
- :default => DefaultHost
272
- on :p, :port=, "Port of the server (#{DefaultPort})", :argument => :optional,
273
- :as => Integer, :default => DefaultPort
274
- on :w, :wait, "Wait for the pry server to come up",
275
- :default => false
276
- on :r, :persist, "Persist the client to wait for the pry server to come up each time",
277
- :default => false
278
- on :c, :capture, "Captures $stdout and $stderr from the server (true)",
279
- :default => true
280
- on :f, "Disables loading of .pryrc and its plugins, requires, and command history "
260
+ opts = Slop.parse do |conf|
261
+ conf.banner = "#$PROGRAM_NAME [OPTIONS]"
262
+ conf.separator
263
+
264
+ conf.string '-s', '--server', "Host of the server (#{DefaultHost})",
265
+ default: DefaultHost
266
+ conf.int '-p', '--port', "Port of the server (#{DefaultPort})",
267
+ default: DefaultPort
268
+ conf.string '-u', '--uri', 'URI of the server, instead of ' \
269
+ "server/port (#{DefaultURI})"
270
+
271
+ conf.bool '-w', '--wait', 'Wait for the pry server to come up',
272
+ default: false
273
+ conf.bool '-r', '--persist', 'Persist the client to wait for the ' \
274
+ 'pry server to come up each time',
275
+ default: false
276
+ conf.bool '-c', '--capture', 'Captures $stdout and $stderr from ' \
277
+ 'the server (true)',
278
+ default: true
279
+ conf.bool '-f', 'Disables loading of .pryrc and its plugins, ' \
280
+ 'requires, and command history',
281
+ default: false
282
+
283
+ conf.on '-h', '--help' do
284
+ puts conf
285
+ exit
286
+ end
281
287
  end
282
288
 
283
- exit if params.help?
284
-
285
- @host = params[:server]
286
- @port = params[:port]
289
+ if opts[:uri]
290
+ @uri = opts[:uri]
291
+ else
292
+ @uri = "druby://#{opts[:server]}:#{opts[:port]}"
293
+ end
287
294
 
288
- @wait = params[:wait]
289
- @persist = params[:persist]
290
- @capture = params[:capture]
295
+ @wait = opts[:wait]
296
+ @persist = opts[:persist]
297
+ @capture = opts[:capture]
291
298
 
292
- Pry.initial_session_setup unless params[:f]
299
+ Pry.initial_session_setup unless opts[:f]
300
+ rescue Slop::UnknownOption => e
301
+ $stderr.puts(e)
302
+ exit 1
293
303
  end
294
304
 
295
- # @return [String] Host of the server
296
- attr_reader :host
297
-
298
- # @return [Integer] Port of the server
299
- attr_reader :port
300
-
301
305
  # @return [String] URI for DRb
302
- def uri
303
- "druby://#{host}:#{port}"
304
- end
306
+ attr_reader :uri
305
307
 
306
308
  attr_reader :wait
307
309
  attr_reader :persist
@@ -375,11 +377,10 @@ end
375
377
  class Object
376
378
  # Starts a remote Pry session
377
379
  #
378
- # @param [String] host Host of the server
379
- # @param [Integer] port Port of the server
380
- # @param [Hash] options Options to be passed to Pry.start
381
- def remote_pry(host = PryRemoteReloaded::DefaultHost, port = PryRemoteReloaded::DefaultPort, options = {})
382
- PryRemoteReloaded::Server.new(self, host, port, options).run
380
+ # @param uri [String] URI for DRb server
381
+ # @param options [Hash{Symbol => Mixed}] options to be passed to Pry.start
382
+ def remote_pry(uri: PryRemoteReloaded::DefaultURI, **options)
383
+ PryRemoteReloaded::Server.new(self, uri:, **options).run
383
384
  end
384
385
 
385
386
  # a handy alias as many people may think the method is named after the gem
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pry-remote-reloaded
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mon ouie
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-01-24 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: slop
@@ -16,28 +15,28 @@ dependencies:
16
15
  requirements:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: '3.0'
18
+ version: '4.10'
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - "~>"
25
24
  - !ruby/object:Gem::Version
26
- version: '3.0'
25
+ version: '4.10'
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: pry
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - ">="
32
31
  - !ruby/object:Gem::Version
33
- version: '0.14'
32
+ version: '0.15'
34
33
  type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - ">="
39
38
  - !ruby/object:Gem::Version
40
- version: '0.14'
39
+ version: '0.15'
41
40
  - !ruby/object:Gem::Dependency
42
41
  name: drb
43
42
  requirement: !ruby/object:Gem::Requirement
@@ -67,7 +66,6 @@ files:
67
66
  homepage: https://github.com/Jack12816/pry-remote-reloaded
68
67
  licenses: []
69
68
  metadata: {}
70
- post_install_message:
71
69
  rdoc_options: []
72
70
  require_paths:
73
71
  - lib
@@ -75,15 +73,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
75
73
  requirements:
76
74
  - - ">="
77
75
  - !ruby/object:Gem::Version
78
- version: '0'
76
+ version: '3.1'
79
77
  required_rubygems_version: !ruby/object:Gem::Requirement
80
78
  requirements:
81
79
  - - ">="
82
80
  - !ruby/object:Gem::Version
83
81
  version: '0'
84
82
  requirements: []
85
- rubygems_version: 3.3.8
86
- signing_key:
83
+ rubygems_version: 3.6.9
87
84
  specification_version: 4
88
85
  summary: Connect to Pry remotely
89
86
  test_files: []