class Gemterms::Project

A collection of components to be evaluated as a set.

Attributes

components[R]

Public Class Methods

new() click to toggle source
# File lib/gemterms/project.rb, line 50
def initialize
  @components = []
end

Public Instance Methods

<<(component) click to toggle source
# File lib/gemterms/project.rb, line 31
def <<(component)
  @components << component
end
components_for_license(license) click to toggle source
# File lib/gemterms/project.rb, line 46
def components_for_license(license)
  @components.select { |c| c.licenses.include?(license) }
end
count() click to toggle source

@return [ int ] number of components in the project

# File lib/gemterms/project.rb, line 36
def count
  @components.length
end
count_unlicensed() click to toggle source

@return [ int ] count of components in this projects that have “Unknown” licenses

# File lib/gemterms/project.rb, line 42
def count_unlicensed
  @components.count { |c| c.licensed? }
end
licenses(include_unknown = true) click to toggle source
# File lib/gemterms/project.rb, line 54
def licenses(include_unknown = true)
  result = @components.map { |c| c.licenses }.flatten
  result.reject! { |l| l.unknown? } unless include_unknown
  result
end
unique_licenses(include_unknown = true) click to toggle source

@param [ true, false ] include_unknown If true, unknown licenses are included in the returned list. Defaults to true.

@return [ Array<License> ] array of unique licenses in use by this project.

# File lib/gemterms/project.rb, line 65
def unique_licenses(include_unknown = true)
  self.licenses.uniq
end