error.rb

来自「subversion-1.4.3-1.tar.gz 配置svn的源码」· RB 代码 · 共 62 行

RB
62
字号
require "svn/ext/core"module Svn  class Error < StandardError    TABLE = {}    Ext::Core.constants.each do |const_name|      if /^SVN_ERR_(.*)/ =~ const_name        value = Ext::Core.const_get(const_name)        module_eval(<<-EOC, __FILE__, __LINE__)          class #{$1} < Error            def initialize(message="", file=nil, line=nil)              super(#{value}, message, file, line)            end          end        EOC        TABLE[value] = const_get($1)      end    end        class << self      def new_corresponding_error(code, message, file=nil, line=nil)        if TABLE.has_key?(code)          TABLE[code].new(message, file, line)        else          new(code, message, file, line)        end      end    end    attr_reader :code, :error_message, :file, :line    def initialize(code, message, file=nil, line=nil)      @code = code      @error_message = to_locale_encoding(message)      @file = file      @line = line      msg = ""      if file        msg << "#{file}"        msg << ":#{line}" if line        msg << " "      end      msg << @error_message      super(msg)    end    private    begin      require "gettext"      require "iconv"      def to_locale_encoding(str)        Iconv.iconv(Locale.charset, "UTF-8", str).join      end    rescue LoadError      def to_locale_encoding(str)        str      end    end  endend

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?