Module: BPS::Publisher
- Defined in:
- lib/bps.rb,
lib/bps/publisher/in_mem.rb,
lib/bps/publisher/abstract.rb
Defined Under Namespace
Class Method Summary collapse
Class Method Details
.register(*schemes, &resolver) ⇒ Object
11 12 13 14 15 16 |
# File 'lib/bps.rb', line 11 def self.register(*schemes, &resolver) @registry ||= {} schemes.each do |scheme| @registry[scheme] = resolver end end |
.resolve(url) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/bps.rb', line 18 def self.resolve(url) url = url.is_a?(::URI) ? url.dup : URI.parse(url) rsl = @registry[url.scheme] raise ArgumentError, "Unable to resolve publisher #{url}, scheme #{url.scheme} is not registered" unless rsl opts = {} CGI.parse(url.query.to_s).each do |key, values| opts[key.to_sym] = values.first end rsl.call(url, **opts) end |