diff options
Diffstat (limited to 'Library/Homebrew/cask/lib/hbc/source/path_base.rb')
| -rw-r--r-- | Library/Homebrew/cask/lib/hbc/source/path_base.rb | 108 |
1 files changed, 56 insertions, 52 deletions
diff --git a/Library/Homebrew/cask/lib/hbc/source/path_base.rb b/Library/Homebrew/cask/lib/hbc/source/path_base.rb index bd85ab425..5725380ec 100644 --- a/Library/Homebrew/cask/lib/hbc/source/path_base.rb +++ b/Library/Homebrew/cask/lib/hbc/source/path_base.rb @@ -1,69 +1,73 @@ require "rubygems" -class Hbc::Source::PathBase - # derived classes must define method self.me? +module Hbc + module Source + class PathBase + # derived classes must define method self.me? - def self.path_for_query(query) - query_string = query.to_s - Pathname.new(query_string.end_with?(".rb") ? query_string : query_string + ".rb") - end + def self.path_for_query(query) + query_string = query.to_s + Pathname.new(query_string.end_with?(".rb") ? query_string : query_string + ".rb") + end - attr_reader :path + attr_reader :path - def initialize(path) - @path = Pathname(path).expand_path - end + def initialize(path) + @path = Pathname(path).expand_path + end - def load - raise Hbc::CaskError, "File '#{path}' does not exist" unless path.exist? - raise Hbc::CaskError, "File '#{path}' is not readable" unless path.readable? - raise Hbc::CaskError, "File '#{path}' is not a plain file" unless path.file? - load_cask - end + def load + raise CaskError, "File '#{path}' does not exist" unless path.exist? + raise CaskError, "File '#{path}' is not readable" unless path.readable? + raise CaskError, "File '#{path}' is not a plain file" unless path.file? + load_cask + end - def to_s - # stringify to fully-resolved location - path.to_s - end + def to_s + # stringify to fully-resolved location + path.to_s + end - private + private - def load_cask - instance_eval(cask_contents, __FILE__, __LINE__) - rescue Hbc::CaskError, StandardError, ScriptError => e - # bug: e.message.concat doesn't work with Hbc::CaskError exceptions - raise e, e.message.concat(" while loading '#{path}'") - end + def load_cask + instance_eval(cask_contents, __FILE__, __LINE__) + rescue CaskError, StandardError, ScriptError => e + # bug: e.message.concat doesn't work with CaskError exceptions + raise e, e.message.concat(" while loading '#{path}'") + end - def cask_contents - File.open(path, "rb") do |handle| - contents = handle.read - if defined?(Encoding) - contents.force_encoding("UTF-8") - else - contents + def cask_contents + File.open(path, "rb") do |handle| + contents = handle.read + if defined?(Encoding) + contents.force_encoding("UTF-8") + else + contents + end + end end - end - end - def cask(header_token, &block) - build_cask(Hbc::Cask, header_token, &block) - end + def cask(header_token, &block) + build_cask(Cask, header_token, &block) + end - def test_cask(header_token, &block) - build_cask(Hbc::TestCask, header_token, &block) - end + def test_cask(header_token, &block) + build_cask(TestCask, header_token, &block) + end - def build_cask(cask_class, header_token, &block) - if header_token.is_a?(Hash) - # Cask file is using old `cask :v1 => 'token'` syntax - header_token = header_token.values.first - end - raise Hbc::CaskTokenDoesNotMatchError.new(cask_token, header_token) unless cask_token == header_token - cask_class.new(cask_token, sourcefile_path: path, &block) - end + def build_cask(cask_class, header_token, &block) + if header_token.is_a?(Hash) + # Cask file is using old `cask :v1 => 'token'` syntax + header_token = header_token.values.first + end + raise CaskTokenDoesNotMatchError.new(cask_token, header_token) unless cask_token == header_token + cask_class.new(cask_token, sourcefile_path: path, &block) + end - def cask_token - path.basename.to_s.sub(%r{\.rb}, "") + def cask_token + path.basename.to_s.sub(%r{\.rb}, "") + end + end end end |
