Module: DRab::DRabProtocol

Defined in:
lib/drab/drab.rb,
lib/drab/drab.rb

Class Method Summary collapse

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

Raises:



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

Raises:



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

Raises:



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