Class: Licensee::Project

Inherits:
Object
  • Object
show all
Defined in:
lib/licensee/project.rb,
lib/licensee/project_file.rb,
lib/licensee/project_files/readme.rb,
lib/licensee/project_files/license_file.rb,
lib/licensee/project_files/package_info.rb

Direct Known Subclasses

FSProject, GitProject

Defined Under Namespace

Classes: File, LicenseFile, PackageInfo, Readme

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(detect_packages: false, detect_readme: false) ⇒ Project

Returns a new instance of Project.



9
10
11
12
# File 'lib/licensee/project.rb', line 9

def initialize(detect_packages: false, detect_readme: false)
  @detect_packages = detect_packages
  @detect_readme = detect_readme
end

Instance Attribute Details

#detect_packagesObject (readonly) Also known as: detect_packages?

Returns the value of attribute detect_packages.



5
6
7
# File 'lib/licensee/project.rb', line 5

def detect_packages
  @detect_packages
end

#detect_readmeObject (readonly) Also known as: detect_readme?

Returns the value of attribute detect_readme.



5
6
7
# File 'lib/licensee/project.rb', line 5

def detect_readme
  @detect_readme
end

Instance Method Details

#licenseObject

Returns the matching License instance if a license can be detected



15
16
17
# File 'lib/licensee/project.rb', line 15

def license
  @license ||= matched_file && matched_file.license
end

#license_fileObject



23
24
25
26
27
28
29
# File 'lib/licensee/project.rb', line 23

def license_file
  return @license_file if defined? @license_file
  @license_file = begin
    content, name = find_file { |name| LicenseFile.name_score(name) }
    LicenseFile.new(content, name) if content && name
  end
end

#matched_fileObject



19
20
21
# File 'lib/licensee/project.rb', line 19

def matched_file
  @matched_file ||= (license_file || readme || package_file)
end

#package_fileObject



41
42
43
44
45
46
47
48
# File 'lib/licensee/project.rb', line 41

def package_file
  return unless detect_packages?
  return @package_file if defined? @package_file
  @package_file = begin
    content, name = find_file { |name| PackageInfo.name_score(name) }
    PackageInfo.new(content, name) if content && name
  end
end

#readmeObject



31
32
33
34
35
36
37
38
39
# File 'lib/licensee/project.rb', line 31

def readme
  return unless detect_readme?
  return @readme if defined? @readme
  @readme = begin
    content, name = find_file { |name| Readme.name_score(name) }
    content = Readme.license_content(content)
    Readme.new(content, name) if content && name
  end
end