bibliothecary 6.9.2 → 6.9.7

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: b3778cb5e39ff53dd380c730271d2c834242776a0536b3bfd480d9b82143745c
4
- data.tar.gz: ef099f4e867aaf12bce84b09192ac1b4b0c7a1cd7fcbe578717435df22fab643
3
+ metadata.gz: 127bb145341b9464e7c551a835ce172f3791a065081940de00e9cdddd5a16aec
4
+ data.tar.gz: 12db3fb6e30ee437182d56768428b51b0f7c3473bb818922fb1310865b3c4f40
5
5
  SHA512:
6
- metadata.gz: 908961fc7d4b816951c79cef1610dc5976a75e7d18f344a7d08c0495e2b72ed68be4e7e642946bd764b551b11427f6b259f23dd36ee565ab0fde1122cb0bbbb2
7
- data.tar.gz: 97f3090baea9dbe5f614fd607ecbbf15305e5480ca28670fb735b2e81cdb0fc87834bafeac425e14db2061a5fb3a03d0e17af27a8305a03fdcf4bb9b5bbda263
6
+ metadata.gz: ba78060a9d3793cd2251181404d1d354b3e1c968c77b470201cdb5e94a1bc1a13f7c68d9b4ecc460c43f06550e3e9d433b3206569bf188d9acf1a1191e095c13
7
+ data.tar.gz: d8e20b2df9b305570f252cd1c403248e178c0a489b8180a10dbfc13a2a6e0e31af588508671c9c4286589c2e560d84b59a168c40e427ea3751433e0c4e9f8901
@@ -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
  {
@@ -126,11 +126,15 @@ module Bibliothecary
126
126
  # org.springframework.boot:spring-boot-starter-web:2.1.0.M3 (*)
127
127
  # Lines can end with (c), (n), or (*)
128
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
+ dep = line.split(split)[1].sub(/(\((c|n|\*)\))$/, "").sub(" -> ", ":").strip.split(":")
130
+
131
+ # A testImplementation line can look like this so just skip those
132
+ # \--- org.springframework.security:spring-security-test (n)
133
+ next unless dep.length >= 3
134
+
130
135
  version = dep[-1]
131
- version = version.split("->")[-1].strip if line.include?("->")
132
136
  {
133
- name: dep[0, dep.length - 1].join(":"),
137
+ name: dep[0..1].join(":"),
134
138
  requirement: version,
135
139
  type: type
136
140
  }
@@ -197,7 +201,7 @@ module Bibliothecary
197
201
  return nil if field.nil?
198
202
 
199
203
  value = field.nodes.first
200
- match = value.match(MAVEN_PROPERTY_REGEX)
204
+ match = value&.match(MAVEN_PROPERTY_REGEX)
201
205
  if match
202
206
  return extract_property(xml, match[1], value, parent_properties)
203
207
  else
@@ -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.2"
2
+ VERSION = "6.9.7"
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.2
4
+ version: 6.9.7
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-11-06 00:00:00.000000000 Z
11
+ date: 2021-01-29 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