Sha256: e88daa04d5889b22ffa2bcabc4c37b1f6c559293fc14dd6be64cc2cec2e146bb

Contents?: true

Size: 771 Bytes

Versions: 5

Compression:

Stored size: 771 Bytes

Contents

# encoding: UTF-8

module Tetra
  # encapsulates a Tetra kit directory
  class Kit
    include Logging

    def initialize(project)
      @project = project
    end

    # finds an executable in a bin/ subdirectory of kit
    def find_executable(name)
      @project.from_directory do
        Find.find("kit") do |path|
          next unless path =~ /bin\/#{name}$/

          log.debug("found #{name} executable: #{path}")
          return path
        end
      end

      log.debug("#{name} executable not found")
      fail ExecutableNotFoundError, name
    end
  end

  # an executable from the kit was not found
  class ExecutableNotFoundError < Exception
    attr_reader :executable

    def initialize(executable)
      @executable = executable
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
tetra-0.52.0 lib/tetra/kit.rb
tetra-0.51.0 lib/tetra/kit.rb
tetra-0.50.0 lib/tetra/kit.rb
tetra-0.49.0 lib/tetra/kit.rb
tetra-0.48.0 lib/tetra/kit.rb