Module: DRab::DRabProtocol
- Defined in:
- lib/drab/drab.rb,
lib/drab/drab.rb
Class Method Summary collapse
- .add_protocol(prot) ⇒ Object
-
.auto_load(uri) ⇒ Object
:nodoc:.
- .open(uri, config, first = true) ⇒ Object
- .open_server(uri, config, first = true) ⇒ Object
- .uri_option(uri, config, first = true) ⇒ Object
Class Method Details
.add_protocol(prot) ⇒ Object
660 661 662 |
# File 'lib/drab/drab.rb', line 660 def add_protocol(prot) @protocol.push(prot) end |
.auto_load(uri) ⇒ Object
:nodoc:
716 717 718 719 720 |
# File 'lib/drab/drab.rb', line 716 def auto_load(uri) # :nodoc: if uri =~ /^drab([a-z0-9]+):/ require("drab/#{$1}") rescue nil end end |
.open(uri, config, first = true) ⇒ Object
665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 |
# File 'lib/drab/drab.rb', line 665 def open(uri, config, first=true) @protocol.each do |prot| begin return prot.open(uri, config) rescue DRabBadScheme rescue DRabConnError raise($!) rescue raise(DRabConnError, "#{uri} - #{$!.inspect}") end end if first && (config[:auto_load] != false) auto_load(uri) return open(uri, config, false) end raise DRabBadURI, 'can\'t parse uri:' + uri end |
.open_server(uri, config, first = true) ⇒ Object
684 685 686 687 688 689 690 691 692 693 694 695 696 |
# File 'lib/drab/drab.rb', line 684 def open_server(uri, config, first=true) @protocol.each do |prot| begin return prot.open_server(uri, config) rescue DRabBadScheme end end if first && (config[:auto_load] != false) auto_load(uri) return open_server(uri, config, false) end raise DRabBadURI, 'can\'t parse uri:' + uri end |
.uri_option(uri, config, first = true) ⇒ Object
699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 |
# File 'lib/drab/drab.rb', line 699 def uri_option(uri, config, first=true) @protocol.each do |prot| begin uri, opt = prot.uri_option(uri, config) # opt = nil if opt == '' return uri, opt rescue DRabBadScheme end end if first && (config[:auto_load] != false) auto_load(uri) return uri_option(uri, config, false) end raise DRabBadURI, 'can\'t parse uri:' + uri end |