Module: RSpecBackgroundProcess::BackgroundProcess::Server
- Defined in:
- lib/rspec-background-process/server.rb
Class Method Summary collapse
Instance Method Summary collapse
- #allocate_ports ⇒ Object
- #allocated_port(port_no) ⇒ Object
- #ports ⇒ Object
- #template_variables ⇒ Object
- #to_s ⇒ Object
Class Method Details
.extended(mod) ⇒ Object
12 13 14 |
# File 'lib/rspec-background-process/server.rb', line 12 def self.extended(mod) mod.allocate_ports end |
Instance Method Details
#allocate_ports ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/rspec-background-process/server.rb', line 22 def allocate_ports base_port = [:base_port] or fail "no base_port option set for #{self}: #{@options}" port_count = [:port_count] or fail "no port_count option set for #{self}: #{@options}" global_ports = [:global_context][:ports] ||= Set[] begin @ports = (base_port ... base_port + port_count).to_a base_port += port_count end until (global_ports & @ports).empty? [:global_context][:ports] = global_ports + @ports end |
#allocated_port(port_no) ⇒ Object
40 41 42 |
# File 'lib/rspec-background-process/server.rb', line 40 def allocated_port(port_no) @ports[port_no.to_i - 1] or fail "no port #{port_no} allocated: #{@ports}" end |
#ports ⇒ Object
36 37 38 |
# File 'lib/rspec-background-process/server.rb', line 36 def ports @ports end |
#template_variables ⇒ Object
16 17 18 19 20 |
# File 'lib/rspec-background-process/server.rb', line 16 def template_variables super.merge( /allocated port (\d)/ => ->(port_no) { allocated_port(port_no) } ) end |
#to_s ⇒ Object
44 45 46 |
# File 'lib/rspec-background-process/server.rb', line 44 def to_s super + "{ports: #{ports.join(', ')}}" end |