bibliothecary 6.9.0 → 6.9.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f7ca2bc28f1c3a196e4720cfdac9666f17e6d5ec10ce27f8456a457c1f53c515
4
- data.tar.gz: c615681be7d7e01dd4b3c41a29801f427e4f29c596f409350edb0b2ff5732e25
3
+ metadata.gz: 7b4f1697f4fcbba2dcb21acb917705fa323f711cb9d8228b0bd4910ea629ba40
4
+ data.tar.gz: e25145a37b29d74198e51b73e4c00eeeb9b0b2b09adc365ac523714bc4d79055
5
5
  SHA512:
6
- metadata.gz: 9b263efaf273fb07ba8d4aec80dd04862c07bd82da0e53654d140826a7294a277bcdedb74d8cee9fe0592ec9374dc05fcb1d8d6f17e31612dc2f6c7fa60aab31
7
- data.tar.gz: 116f2f45ebd796f1fdb505d87be5be6cfdb2e71694769e65e633e751d0d46e1ea1de41a0744ae095141244bebb901524f9baf9dd2c5c925b8c469b5b08e216b8
6
+ metadata.gz: b390db66abe4a3cc89a88574aafb202c5c8b94847a41eac5d0749360e9d1f61c96cd2e332a5a793e6f69fa0ee39ab8874581941ca083e9d6685c6237977122f3
7
+ data.tar.gz: 004ad44ccac55b16fb434a22b62785f57b7de51947f2ea29f314261a2e35659ecdd3a99e96f10fca90ac9821d62e9a148ad6442b1e8754f6c23aedc12318f643
@@ -1 +1 @@
1
- 2.6.6
1
+ 2.7.1
data/README.md CHANGED
@@ -140,6 +140,7 @@ All available config options are in: https://github.com/librariesio/bibliothecar
140
140
  - Gopkg.lock
141
141
  - go.mod
142
142
  - go.sum
143
+ - go-resolved-dependencies.json
143
144
  - Elm
144
145
  - elm-package.json
145
146
  - elm_dependencies.json
@@ -29,6 +29,10 @@ module Bibliothecary
29
29
  runner.load_file_info_list(path)
30
30
  end
31
31
 
32
+ def self.load_file_info_list_from_paths(paths)
33
+ runner.load_file_info_list_from_paths(paths)
34
+ end
35
+
32
36
  def self.analyse_file(file_path, contents)
33
37
  runner.analyse_file(file_path, contents)
34
38
  end
@@ -45,6 +49,10 @@ module Bibliothecary
45
49
  runner.find_manifests(path)
46
50
  end
47
51
 
52
+ def self.find_manifests_from_paths(paths)
53
+ runner.find_manifests_from_paths(paths)
54
+ end
55
+
48
56
  def self.ignored_dirs
49
57
  configuration.ignored_dirs
50
58
  end
@@ -57,7 +57,11 @@ module Bibliothecary
57
57
  match_filename("Gopkg.lock") => {
58
58
  kind: 'lockfile',
59
59
  parser: :parse_dep_lockfile
60
- }
60
+ },
61
+ match_filename("go-resolved-dependencies.json") => {
62
+ kind: 'lockfile',
63
+ parser: :parse_go_resolved
64
+ },
61
65
  }
62
66
  end
63
67
 
@@ -140,6 +144,12 @@ module Bibliothecary
140
144
  deps.uniq
141
145
  end
142
146
 
147
+ def self.parse_go_resolved(file_contents)
148
+ JSON.parse(file_contents)
149
+ .select { |dep| dep["Main"] != "true" }
150
+ .map { |dep| { name: dep["Path"], requirement: dep["Version"], type: 'runtime' } }
151
+ end
152
+
143
153
  def self.map_dependencies(manifest, attr_name, dep_attr_name, version_attr_name, type)
144
154
  manifest.fetch(attr_name,[]).map do |dependency|
145
155
  {
@@ -124,8 +124,9 @@ module Bibliothecary
124
124
  split = gradle_dep_match.captures[0]
125
125
 
126
126
  # org.springframework.boot:spring-boot-starter-web:2.1.0.M3 (*)
127
- # Lines can end with (n) or (*) to indicate that something was not resolved (n) or resolved previously (*).
128
- dep = line.split(split)[1].sub(/\(n\)$/, "").sub(/\(\*\)$/,"").strip.split(":")
127
+ # Lines can end with (c), (n), or (*)
128
+ # to indicate that something was a dependency constraint (c), not resolved (n), or resolved previously (*).
129
+ dep = line.split(split)[1].sub(/(\((c|n|\*)\))$/, "").strip.split(":")
129
130
  version = dep[-1]
130
131
  version = version.split("->")[-1].strip if line.include?("->")
131
132
  {
@@ -228,7 +229,7 @@ module Bibliothecary
228
229
  # the xml root is <project> so lookup the non property name in the xml
229
230
  # this converts ${project/group.id} -> ${group/id}
230
231
  non_prop_name = property_name.gsub(".", "/").gsub("project/", "")
231
- return value if !xml.respond_to?("properties") && parent_properties.empty? && !xml.locate(non_prop_name)
232
+ return "${#{property_name}}" if !xml.respond_to?("properties") && parent_properties.empty? && xml.locate(non_prop_name).empty?
232
233
 
233
234
  prop_field = xml.properties.locate(property_name).first
234
235
  parent_prop = parent_properties[property_name]
@@ -70,10 +70,12 @@ module Bibliothecary
70
70
  if frameworks.size > 0
71
71
  # we should really return multiple manifests, but bibliothecary doesn't
72
72
  # do that yet so at least pick deterministically.
73
- frameworks[frameworks.keys.sort.last]
74
- else
75
- []
73
+
74
+ # Note, frameworks can be empty, so remove empty ones and then return the last sorted item if any
75
+ frameworks = frameworks.delete_if { |k, v| v.empty? }
76
+ return frameworks[frameworks.keys.sort.last] unless frameworks.empty?
76
77
  end
78
+ []
77
79
  end
78
80
 
79
81
  def self.parse_packages_config(file_contents)
@@ -46,6 +46,19 @@ module Bibliothecary
46
46
  Bibliothecary::Parsers.constants.map{|c| Bibliothecary::Parsers.const_get(c) }.sort_by{|c| c.to_s.downcase }
47
47
  end
48
48
 
49
+ def load_file_info_list_from_paths(paths)
50
+ file_list = []
51
+ paths.each do |path|
52
+ info = FileInfo.new(nil, path)
53
+
54
+ next if ignored_files.include?(info.relative_path)
55
+
56
+ init_package_manager(info)
57
+ file_list.push(info)
58
+ end
59
+ file_list
60
+ end
61
+
49
62
  def load_file_info_list(path)
50
63
  file_list = []
51
64
  Find.find(path) do |subpath|
@@ -65,6 +78,10 @@ module Bibliothecary
65
78
  RelatedFilesInfo.create_from_file_infos(load_file_info_list(path).reject { |info| info.package_manager.nil? })
66
79
  end
67
80
 
81
+ def find_manifests_from_paths(paths)
82
+ RelatedFilesInfo.create_from_file_infos(load_file_info_list_from_paths(paths).reject { |info| info.package_manager.nil? })
83
+ end
84
+
68
85
  def analyse_file(file_path, contents)
69
86
  package_managers.select { |pm| pm.match?(file_path, contents) }.map do |pm|
70
87
  pm.analyse_contents(file_path, contents)
@@ -1,3 +1,3 @@
1
1
  module Bibliothecary
2
- VERSION = "6.9.0"
2
+ VERSION = "6.9.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bibliothecary
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.9.0
4
+ version: 6.9.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Nesbitt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-08 00:00:00.000000000 Z
11
+ date: 2021-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: toml-rb
@@ -288,7 +288,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
288
288
  - !ruby/object:Gem::Version
289
289
  version: '0'
290
290
  requirements: []
291
- rubygems_version: 3.0.8
291
+ rubygems_version: 3.1.2
292
292
  signing_key:
293
293
  specification_version: 4
294
294
  summary: Find and parse manifests