summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAgis Anastasopoulos <agis.anast@gmail.com>2015-10-27 15:11:50 +0200
committerAgis Anastasopoulos <agis.anast@gmail.com>2015-10-27 17:55:31 +0200
commit2931b2923dc7c4c7c941b6b405a3bf8c0f904dc4 (patch)
treea38dc3db742e9e4b7ee37d2ebc7858bffcfd7a8a
parent2ba15dc9f588cc444d9492a6ed3f66bde2ca2804 (diff)
downloadbundler-extract-exception-classes.tar.gz
Extract exception classes to a separate fileextract-exception-classes
-rw-r--r--lib/bundler.rb72
-rw-r--r--lib/bundler/errors.rb82
2 files changed, 83 insertions, 71 deletions
diff --git a/lib/bundler.rb b/lib/bundler.rb
index f4373662ba..bf3bbb1929 100644
--- a/lib/bundler.rb
+++ b/lib/bundler.rb
@@ -9,6 +9,7 @@ require "bundler/rubygems_integration"
require "bundler/version"
require "bundler/constants"
require "bundler/current_ruby"
+require "bundler/errors"
module Bundler
preserve_gem_path
@@ -49,77 +50,6 @@ module Bundler
autoload :SystemRubyVersion, "bundler/ruby_version"
autoload :UI, "bundler/ui"
- class BundlerError < StandardError
- def self.status_code(code)
- define_method(:status_code) { code }
- end
- end
-
- class GemfileNotFound < BundlerError; status_code(10); end
- class GemNotFound < BundlerError; status_code(7); end
- class GemfileError < BundlerError; status_code(4); end
- class InstallError < BundlerError; status_code(5); end
- class InstallHookError < BundlerError; status_code(8); end
- class PathError < BundlerError; status_code(13); end
- class GitError < BundlerError; status_code(11); end
- class DeprecatedError < BundlerError; status_code(12); end
- class GemspecError < BundlerError; status_code(14); end
- class InvalidOption < BundlerError; status_code(15); end
- class ProductionError < BundlerError; status_code(16); end
- class HTTPError < BundlerError; status_code(17); end
- class RubyVersionMismatch < BundlerError; status_code(18); end
- class SecurityError < BundlerError; status_code(19); end
- class LockfileError < BundlerError; status_code(20); end
- class CyclicDependencyError < BundlerError; status_code(21); end
- class GemfileLockNotFound < BundlerError; status_code(22); end
-
- # Internal errors, should be rescued
- class VersionConflict < BundlerError
- attr_reader :conflicts
-
- def initialize(conflicts, msg = nil)
- super(msg)
- @conflicts = conflicts
- end
-
- status_code(6)
- end
-
- class GemRequireError < BundlerError
- attr_reader :orig_exception
-
- def initialize(orig_exception, msg)
- super(msg)
- @orig_exception = orig_exception
- end
-
- status_code(24)
- end
-
- class GemfileEvalError < GemfileError; end
- class MarshalError < StandardError; end
-
- class PermissionError < BundlerError
- def initialize(path, permission_type = :write)
- @path = path
- @permission_type = permission_type
- end
-
- def message
- action = case @permission_type
- when :read then "read from"
- when :write then "write to"
- when :executable, :exec then "execute"
- else @permission_type.to_s
- end
- "There was an error while trying to #{action} `#{@path}`. " \
- "It is likely that you need to grant #{@permission_type} permissions " \
- "for that path."
- end
-
- status_code(23)
- end
-
class << self
attr_writer :bundle_path
diff --git a/lib/bundler/errors.rb b/lib/bundler/errors.rb
new file mode 100644
index 0000000000..0ed59017b8
--- /dev/null
+++ b/lib/bundler/errors.rb
@@ -0,0 +1,82 @@
+module Bundler
+ class BundlerError < StandardError
+ def self.status_code(code)
+ define_method(:status_code) { code }
+ end
+ end
+
+ class GemfileNotFound < BundlerError; status_code(10); end
+ class GemNotFound < BundlerError; status_code(7); end
+ class GemfileError < BundlerError; status_code(4); end
+ class InstallError < BundlerError; status_code(5); end
+ class InstallHookError < BundlerError; status_code(8); end
+ class PathError < BundlerError; status_code(13); end
+ class GitError < BundlerError; status_code(11); end
+ class DeprecatedError < BundlerError; status_code(12); end
+ class GemspecError < BundlerError; status_code(14); end
+ class InvalidOption < BundlerError; status_code(15); end
+ class ProductionError < BundlerError; status_code(16); end
+ class HTTPError < BundlerError; status_code(17); end
+ class RubyVersionMismatch < BundlerError; status_code(18); end
+ class SecurityError < BundlerError; status_code(19); end
+ class LockfileError < BundlerError; status_code(20); end
+ class CyclicDependencyError < BundlerError; status_code(21); end
+ class GemfileLockNotFound < BundlerError; status_code(22); end
+ class GemfileEvalError < GemfileError; end
+ class MarshalError < StandardError; end
+
+ # Internal errors, should be rescued
+ class VersionConflict < BundlerError
+ attr_reader :conflicts
+
+ def initialize(conflicts, msg = nil)
+ super(msg)
+ @conflicts = conflicts
+ end
+
+ status_code(6)
+ end
+
+ class GemRequireError < BundlerError
+ attr_reader :orig_exception
+
+ def initialize(orig_exception, msg)
+ super(msg)
+ @orig_exception = orig_exception
+ end
+
+ status_code(24)
+ end
+
+ class PermissionError < BundlerError
+ def initialize(path, permission_type = :write)
+ @path = path
+ @permission_type = permission_type
+ end
+
+ def message
+ action = case @permission_type
+ when :read then "read from"
+ when :write then "write to"
+ when :executable, :exec then "execute"
+ else @permission_type.to_s
+ end
+ "There was an error while trying to #{action} `#{@path}`. " \
+ "It is likely that you need to grant #{@permission_type} permissions " \
+ "for that path."
+ end
+
+ status_code(23)
+ end
+
+ class YAMLSyntaxError < BundlerError
+ attr_reader :orig_exception
+
+ def initialize(orig_exception, msg)
+ super(msg)
+ @orig_exception = orig_exception
+ end
+
+ status_code(25)
+ end
+end