Class: Konnyaku

Inherits:
Object
  • Object
show all
Defined in:
lib/konnyaku.rb,
lib/konnyaku/version.rb,
lib/konnyaku/konnyaku.rb,
lib/konnyaku/translate.rb

Defined Under Namespace

Classes: Error

Constant Summary collapse

VERSION =
"0.1.1"

Class Method Summary collapse

Class Method Details

.runObject



3
4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/konnyaku/konnyaku.rb', line 3

def run
    tp = TracePoint.new(:raise) do |tp|
        lineno = tp.lineno
        path   = tp.path
        msg = tp.raised_exception.message
        puts "例外:#{tp.raised_exception.class} が発生しました"
        puts "ソースコード: #{path} の #{lineno.to_s} 行目にエラーの原因があります"
        
        msg = translate(msg) 
        puts msg
    end
    tp.enable
end

.translate(msg) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/konnyaku/translate.rb', line 3

def translate(msg)
    case msg
        when /uninitialized constant/
            return msg.gsub(/#{$&}/, "定義されていない定数") + " があります"
        when /undefined local variable or method/
            return msg.gsub(/#{$&}/, "定義されていない変数またはメソッド").gsub(/ for /, " が ").sub(/`|'/, "").gsub(/for/, "") + " にあります"
        when /undefined method/
            return msg.gsub(/#{$&}/, "定義されていないメソッド").gsub(/ for /, " が ").gsub(/`|'/, "") + " にあります"
        when /uninitialized class variable/
            return msg.gsub(/#{$&}/, "初期化されていないクラス変数").gsub(/ for.+$/, "").gsub(/ in /, " が ") + " クラスにあります"
    end 
end