Sha256: e9b241741b0a09747dd54cd7f5e5fa243d23cc8679c5b99b2983a86c64582af0

Contents?: true

Size: 943 Bytes

Versions: 8

Compression:

Stored size: 943 Bytes

Contents

require_relative './spec_directory'
require_relative './spec_file'

module Snapdragon
  class Path
    attr_reader :path, :line_number

    def initialize(raw_path)
      @raw_path = raw_path
      if has_line_number?
        @path, @line_number = raw_path.split(':')
        @line_number = @line_number.to_i
      else
        @path = raw_path
      end
    end

    def spec_files
      if exists?
        if is_a_directory?
          spec_dir = Snapdragon::SpecDirectory.new(self)
          return spec_dir.spec_files
        else
          return [Snapdragon::SpecFile.new(self)]
        end
      end
      return []
    end

    def has_line_number?
      return true if @raw_path =~ /^.*:\d+$/
      return false
    end

    def absolute_path
      File.expand_path(@path)
    end

    private

    def is_a_directory?
      return ::File.directory?(@path)
    end

    def exists?
      return ::File.exists?(@path)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
snapdragon-3.0.0 lib/snapdragon/path.rb
snapdragon-2.0.0 lib/snapdragon/path.rb
snapdragon-1.0.0 lib/snapdragon/path.rb
snapdragon-0.2.0 lib/snapdragon/path.rb
snapdragon-0.1.12 lib/snapdragon/path.rb
snapdragon-0.1.11 lib/snapdragon/path.rb
snapdragon-0.1.10 lib/snapdragon/path.rb
snapdragon-0.1.9 lib/snapdragon/path.rb