Sha256: 05fa0dbca87699a02ac54140c0aa02912af9b52786c13fad67457942541214bb

Contents?: true

Size: 1.19 KB

Versions: 11

Compression:

Stored size: 1.19 KB

Contents

# coding: utf-8

require 'fig/not_yet_parsed_package'
require 'fig/package_descriptor'


module Fig; end


class Fig::NonRepositoryPackages
  def initialize(parser)
    @parser           = parser

    reset_cached_data

    return
  end

  def reset_cached_data
    @packages_by_path = {}

    return
  end

  def [](file_path)
    file_path = File.expand_path file_path
    if package = @packages_by_path[file_path]
      return package
    end

    if ! File.exist? file_path
      return
    end

    load_package file_path

    return @packages_by_path[file_path]
  end


  private

  def load_package(file_path)
    content = File.read file_path

    descriptor =
      Fig::PackageDescriptor.new(nil, nil, nil, :file_path => file_path)

    unparsed_package                    = Fig::NotYetParsedPackage.new
    unparsed_package.descriptor         = descriptor
    unparsed_package.working_directory  =
      unparsed_package.include_file_base_directory =
      File.dirname(file_path)
    unparsed_package.source_description = file_path
    unparsed_package.unparsed_text      = content

    package = @parser.parse_package unparsed_package

    @packages_by_path[file_path] = package

    return
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
fig-1.27.10 lib/fig/non_repository_packages.rb
fig-1.27.8 lib/fig/non_repository_packages.rb
fig-1.27.5 lib/fig/non_repository_packages.rb
fig-1.27.4 lib/fig/non_repository_packages.rb
fig-1.27.3 lib/fig/non_repository_packages.rb
fig-1.27.0 lib/fig/non_repository_packages.rb
fig-1.26.1.beta.1 lib/fig/non_repository_packages.rb
fig-1.26.0 lib/fig/non_repository_packages.rb
fig-1.25.1.beta.1 lib/fig/non_repository_packages.rb
fig-1.25.0 lib/fig/non_repository_packages.rb
fig-1.24.1.beta.3 lib/fig/non_repository_packages.rb