Class: Konnyaku
- Inherits:
-
Object
- Object
- Konnyaku
- 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
.run ⇒ Object
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. 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 |