Sha256: 23bd9496188e60ff31aa7a6160ff0f2df17658b1afb7980eb2c59098f44ee0ff
Contents?: true
Size: 1.96 KB
Versions: 3
Compression:
Stored size: 1.96 KB
Contents
# Copyright: Copyright (c) 2005 Nicolas Pouillard. All rights reserved. # Author: Nicolas Pouillard <ertai@lrde.epita.fr>. # License: Gnu General Public License. # $LastChangedBy: polrop $ # $Id: svn.rb 159 2005-02-18 12:07:23Z polrop $ require 'uri_ex' require 'abstract' module URI class Svn < Generic COMPONENT = [ :scheme, :host, :path ].freeze def self.build ( args ) tmp = Util::make_components_hash(self, args) return super(tmp) end def checkout # klass = SvnSchemes.guess(scheme) # klass.new tmp = TempPath.new('svn-checkout') out = TempPath.new('svn-checkout-out') err = TempPath.new('svn-checkout-err') tmp.mkpath target = to_s.sub(/^svn\./, '') tmp += pathname.basename unless system "svn checkout #{target} #{tmp} > #{out} 2> #{err}" raise CheckoutError, to_s end [tmp, out, err] end end # class Svn module SvnSchemes def self.guess ( aScheme ) init @@svn_schemes[aScheme] end def self.init return if defined? @@svn_schemes @@svn_schemes = {} constants.each do |const| klass = const_get(const) next if klass.abstract? @@svn_schemes[klass.scheme] = klass end @@svn_schemes.freeze end def self.svn_schemes init @@svn_schemes end class AbstractSvnScheme include Abstract def self.scheme const_get(:SCHEME) end end class SvnScheme < AbstractSvnScheme include Concrete SCHEME = 'SVN' end class SvnSshScheme < AbstractSvnScheme include Concrete SCHEME = 'SVN+SSH' end class SvnHttpScheme < AbstractSvnScheme include Concrete SCHEME = 'SVN.HTTP' end class SvnHttpsScheme < AbstractSvnScheme include Concrete SCHEME = 'SVN.HTTPS' end end SvnSchemes.svn_schemes.each_key do |name| @@schemes[name] = Svn end end # module URI
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ttk-0.1.576 | ruby_ex/uri/svn.rb |
ttk-0.1.579 | ruby_ex/uri/svn.rb |
ttk-0.1.580 | ruby_ex/uri/svn.rb |