Sha256: 20d1bf7d97b46168e6ad84ed00e93a75b03bfe0a0b98b70dbff5e75e04c4b7bc

Contents?: true

Size: 636 Bytes

Versions: 4

Compression:

Stored size: 636 Bytes

Contents

module Jass
  class Error < StandardError; end
  
  class JavaScriptError < Error
    attr_reader :attributes
    
    def initialize(attributes = {})
      @attributes = attributes || {}
      if stack = attributes['stack']
        set_backtrace stack.split("\n")
      end
    end
    
    def to_s
      generate_message
    end
    
    private
    
    def generate_message
      message = "#{attributes['message'] || 'Unknown error'}"
      if loc = attributes['loc']
        message << loc.inject(' in') { |s, (key, value)| s << " #{key}: #{value}" }
      end
    end
  end
  
  class DependencyError < JavaScriptError; end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
jass-0.9.5 lib/jass/errors.rb
jass-0.9.4 lib/jass/errors.rb
jass-0.9.3 lib/jass/errors.rb
jass-0.9.1 lib/jass/errors.rb