Class: Javascripto::Package

Inherits:
Object
  • Object
show all
Defined in:
lib/javascripto/package.rb

Direct Known Subclasses

File

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(package_name, files) ⇒ Package

Returns a new instance of Package.



6
7
8
9
10
11
12
# File 'lib/javascripto/package.rb', line 6

def initialize(package_name, files)
  @package_name = package_name
  @package_files, @package_dependencies = [], []
  files.each do |file|
    add_file_and_dependencies(file)
  end
end

Instance Attribute Details

#package_dependenciesObject (readonly)

Returns the value of attribute package_dependencies.



4
5
6
# File 'lib/javascripto/package.rb', line 4

def package_dependencies
  @package_dependencies
end

#package_filesObject (readonly)

Returns the value of attribute package_files.



4
5
6
# File 'lib/javascripto/package.rb', line 4

def package_files
  @package_files
end

#package_nameObject (readonly)

Returns the value of attribute package_name.



4
5
6
# File 'lib/javascripto/package.rb', line 4

def package_name
  @package_name
end

Instance Method Details

#add_file_and_dependencies(file, stack = []) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/javascripto/package.rb', line 14

def add_file_and_dependencies(file, stack = [])
   # If the file is already contained in another package
  if file.package
    # ..add the other package as a dependency...
    @package_dependencies << file.package unless self == file.package
  else
    # ...otherwise, add this file and all of its unpackaged dependecies to this package.
    file.file_dependencies.each do |dependency|
      add_file_and_dependencies(dependency, stack << file)
    end
    @package_files << file
    file.package = self
  end
end

#cacheObject

A unique key to be use for caching.



30
31
32
# File 'lib/javascripto/package.rb', line 30

def cache
  @package_name
end