lib/puppet-debugger/code/code_file.rb in puppet-debugger-0.4.1 vs lib/puppet-debugger/code/code_file.rb in puppet-debugger-0.4.2
- old
+ new
@@ -1,98 +1,98 @@
+# frozen_string_literal: true
class CodeFile
- class SourceNotFound < Exception
+ class SourceNotFound < RuntimeError
end
- DEFAULT_EXT = '.pp'
+ DEFAULT_EXT = '.pp'
- # List of all supported languages.
- # @return [Hash]
- EXTENSIONS = {
- %w(.py) => :python,
- %w(.js) => :javascript,
- %w(.pp) => :puppet,
- %w(.css) => :css,
- %w(.xml) => :xml,
- %w(.php) => :php,
- %w(.html) => :html,
- %w(.diff) => :diff,
- %w(.java) => :java,
- %w(.json) => :json,
- %w(.c .h) => :c,
- %w(.rhtml) => :rhtml,
- %w(.yaml .yml) => :yaml,
- %w(.cpp .hpp .cc .h cxx) => :cpp,
- %w(.rb .ru .irbrc .gemspec .pryrc) => :ruby,
- }
+ # List of all supported languages.
+ # @return [Hash]
+ EXTENSIONS = {
+ %w(.py) => :python,
+ %w(.js) => :javascript,
+ %w(.pp) => :puppet,
+ %w(.css) => :css,
+ %w(.xml) => :xml,
+ %w(.php) => :php,
+ %w(.html) => :html,
+ %w(.diff) => :diff,
+ %w(.java) => :java,
+ %w(.json) => :json,
+ %w(.c .h) => :c,
+ %w(.rhtml) => :rhtml,
+ %w(.yaml .yml) => :yaml,
+ %w(.cpp .hpp .cc .h cxx) => :cpp,
+ %w(.rb .ru .irbrc .gemspec .pryrc) => :ruby
+ }.freeze
- # @return [Symbol] The type of code stored in this wrapper.
- attr_reader :code_type
+ # @return [Symbol] The type of code stored in this wrapper.
+ attr_reader :code_type
- # @param [String] filename The name of a file with code to be detected
- # @param [Symbol] code_type The type of code the `filename` contains
- def initialize(filename, code_type = type_from_filename(filename))
- @filename = filename
- @code_type = code_type
- end
+ # @param [String] filename The name of a file with code to be detected
+ # @param [Symbol] code_type The type of code the `filename` contains
+ def initialize(filename, code_type = type_from_filename(filename))
+ @filename = filename
+ @code_type = code_type
+ end
- # @return [String] The code contained in the current `@filename`.
- def code
- path = abs_path
- @code_type = type_from_filename(path)
- File.read(path)
- end
+ # @return [String] The code contained in the current `@filename`.
+ def code
+ path = abs_path
+ @code_type = type_from_filename(path)
+ File.read(path)
+ end
- private
+ private
- # @raise [MethodSource::SourceNotFoundError] if the `filename` is not
- # readable for some reason.
- # @return [String] absolute path for the given `filename`.
- def abs_path
- code_path.detect { |path| readable?(path) } or
- raise SourceNotFound,
- "Cannot open #{ @filename.inspect } for reading."
- end
+ # @raise [MethodSource::SourceNotFoundError] if the `filename` is not
+ # readable for some reason.
+ # @return [String] absolute path for the given `filename`.
+ def abs_path
+ code_path.detect { |path| readable?(path) } ||
+ raise(SourceNotFound,
+ "Cannot open #{@filename.inspect} for reading.")
+ end
- # @param [String] path
- # @return [Boolean] if the path, with or without the default ext,
- # is a readable file then `true`, otherwise `false`.
- def readable?(path)
- File.readable?(path) && !File.directory?(path) or
- File.readable?(path << DEFAULT_EXT)
- end
+ # @param [String] path
+ # @return [Boolean] if the path, with or without the default ext,
+ # is a readable file then `true`, otherwise `false`.
+ def readable?(path)
+ File.readable?(path) && !File.directory?(path) ||
+ File.readable?(path << DEFAULT_EXT)
+ end
- # @return [Array] All the paths that contain code that Pry can use for its
- # API's. Skips directories.
- def code_path
- [from_pwd, from_pry_init_pwd, *from_load_path]
- end
+ # @return [Array] All the paths that contain code that Pry can use for its
+ # API's. Skips directories.
+ def code_path
+ [from_pwd, from_pry_init_pwd, *from_load_path]
+ end
- # @param [String] filename
- # @param [Symbol] default (:unknown) the file type to assume if none could be
- # detected.
- # @return [Symbol, nil] The CodeRay type of a file from its extension, or
- # `nil` if `:unknown`.
- def type_from_filename(filename, default = :unknown)
- _, @code_type = EXTENSIONS.find do |k, _|
- k.any? { |ext| ext == File.extname(filename) }
- end
-
- code_type || default
+ # @param [String] filename
+ # @param [Symbol] default (:unknown) the file type to assume if none could be
+ # detected.
+ # @return [Symbol, nil] The CodeRay type of a file from its extension, or
+ # `nil` if `:unknown`.
+ def type_from_filename(filename, default = :unknown)
+ _, @code_type = EXTENSIONS.find do |k, _|
+ k.any? { |ext| ext == File.extname(filename) }
end
- # @return [String]
- def from_pwd
- File.expand_path(@filename, Dir.pwd)
- end
+ code_type || default
+ end
- # @return [String]
- def from_pry_init_pwd
- File.expand_path(@filename, Dir.pwd)
- end
+ # @return [String]
+ def from_pwd
+ File.expand_path(@filename, Dir.pwd)
+ end
- # @return [String]
- def from_load_path
- $LOAD_PATH.map { |path| File.expand_path(@filename, path) }
- end
+ # @return [String]
+ def from_pry_init_pwd
+ File.expand_path(@filename, Dir.pwd)
+ end
+ # @return [String]
+ def from_load_path
+ $LOAD_PATH.map { |path| File.expand_path(@filename, path) }
+ end
end