diff --git a/History.md b/History.md index 6656b9b7..5ddf711d 100644 --- a/History.md +++ b/History.md @@ -1,3 +1,10 @@ +# Version 3.0.1 +Release date: unreleased + +### Changed + +* Restored ability for `Capybara.server=` to accept a proc which was accidentally removed in 3.0.0 + # Version 3.0.0 Release date: 2018-04-05 diff --git a/lib/capybara/config.rb b/lib/capybara/config.rb index 4043c0f5..4af9d197 100644 --- a/lib/capybara/config.rb +++ b/lib/capybara/config.rb @@ -53,7 +53,9 @@ module Capybara # def server=(name) name, options = *name if name.is_a? Array - @server = if options + @server = if name.respond_to? :call + name + elsif options proc { |app, port, host| Capybara.servers[name.to_sym].call(app, port, host, options) } else Capybara.servers[name.to_sym] diff --git a/spec/capybara_spec.rb b/spec/capybara_spec.rb index d37e693c..baf9ec3c 100644 --- a/spec/capybara_spec.rb +++ b/spec/capybara_spec.rb @@ -64,6 +64,18 @@ RSpec.describe Capybara do end end + describe "server=" do + after do + Capybara.server = :default + end + + it "accepts a proc" do + server = ->(_app, _port) {} + Capybara.server = server + expect(Capybara.server).to eq server + end + end + describe 'app_host' do after do Capybara.app_host = nil