module CommitMsgUrlShortener class HookCode attr_reader :interpreter, :code def initialize interpreter, code @interpreter = interpreter @code = code end def self.fabricate path interpreter = File.basename(path).gsub(File.extname(path), '').downcase code = File.read(path).strip HookCode.new interpreter, code end end end