Class: Bibliothecary::Parsers::Carthage

Inherits:
Object
  • Object
show all
Defined in:
lib/bibliothecary/parsers/carthage.rb

Constant Summary collapse

PLATFORM_NAME =
'Carthage'

Class Method Summary collapse

Class Method Details

.analyse(folder_path, file_list) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/bibliothecary/parsers/carthage.rb', line 20

def self.analyse(folder_path, file_list)
  [
    analyse_cartfile(folder_path, file_list),
    analyse_cartfile_private(folder_path, file_list),
    analyse_cartfile_resolved(folder_path, file_list)
  ]
end

.analyse_cartfile(folder_path, file_list) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/bibliothecary/parsers/carthage.rb', line 28

def self.analyse_cartfile(folder_path, file_list)
  path = file_list.find{|path| path.gsub(folder_path, '').gsub(/^\//, '').match(/^Cartfile$/) }
  return unless path

  manifest = CartfileParser.new(:runtime, File.open(path).read)

  {
    platform: PLATFORM_NAME,
    path: path,
    dependencies: manifest.dependencies
  }
end

.analyse_cartfile_private(folder_path, file_list) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/bibliothecary/parsers/carthage.rb', line 41

def self.analyse_cartfile_private(folder_path, file_list)
  path = file_list.find{|path| path.gsub(folder_path, '').gsub(/^\//, '').match(/^Cartfile\.private$/) }
  return unless path

  manifest = CartfileParser.new(:runtime, File.open(path).read)

  {
    platform: PLATFORM_NAME,
    path: path,
    dependencies: manifest.dependencies
  }
end

.analyse_cartfile_resolved(folder_path, file_list) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/bibliothecary/parsers/carthage.rb', line 54

def self.analyse_cartfile_resolved(folder_path, file_list)
  path = file_list.find{|path| path.gsub(folder_path, '').gsub(/^\//, '').match(/^Cartfile\.resolved$/) }
  return unless path

  manifest = CartfileParser.new(:runtime, File.open(path).read)

  {
    platform: PLATFORM_NAME,
    path: path,
    dependencies: manifest.dependencies
  }
end

.parse(filename, file_contents) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/bibliothecary/parsers/carthage.rb', line 8

def self.parse(filename, file_contents)
  if filename.match(/^Cartfile$/)
    manifest = CartfileParser.new(:runtime, file_contents).dependencies
  elsif filename.match(/^Cartfile\.private$/)
    manifest = CartfileParser.new(:runtime, file_contents).dependencies
  elsif filename.match(/^Cartfile\.resolved$/)
    manifest = CartfileParser.new(:runtime, file_contents).dependencies
  else
    []
  end
end