bibliothecary 6.8.10 → 6.9.4

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: 0e741631279743ce1c101374e150651f3e234754a303b988c4c01a14e8ac384e
4
- data.tar.gz: 7cd1e774a59ae18e9810340b2da990d973d05c26e0fe1cc0778ffbec9cdb8d24
3
+ metadata.gz: f57d8637d49aae8bd8f583109656fb0d350cfc158fc1361ed7402d3a6fba99e1
4
+ data.tar.gz: b85cb6e9c207463d3fa866c6ce5f9d2e6fd9f53db5da13ed1a7ef3d692bf8c63
5
5
  SHA512:
6
- metadata.gz: 3a17720851d21d2f9289e9342a750d535c38b55cc4e1c58202855b557d7d52e46adcc768b0f629d6f4ff8104a7b954760a6f966fe48e1bee610efa28645f2cbe
7
- data.tar.gz: e11348d1eaf3b9fa87e50ad20c307845e5ece4b51cc09b032dd392927e986ade478a2d5c46b71b94ec005ca4048bedc927389dad5790b4f609aa62749d04547b
6
+ metadata.gz: 1a7983ac7b9dfb8b17bab91a9a30afce59dc4ae0b7c6c9259eadd2bd0dfb4354aa77a01193bd02737c4bf57c3b58ab2c7c2ad44c3106eef4a5a3e9a377a336fa
7
+ data.tar.gz: a824e5fb5bcba3393c4f75e26a79c63b75127419777b287a1e3870a659b1d35b345e40fb7a4e19a3cffbc98b72543eac0d27f9c3064f1006f6200d6e2f0be1e5
@@ -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,6 +70,7 @@ module Bibliothecary
70
70
  {
71
71
  name: dep[:name],
72
72
  requirement: dep[:version],
73
+ lockfile_requirement: dep[:requirement],
73
74
  type: dep[:type]
74
75
  }
75
76
  end
@@ -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.8.10"
2
+ VERSION = "6.9.4"
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.8.10
4
+ version: 6.9.4
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-06-29 00:00:00.000000000 Z
11
+ date: 2020-12-02 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.3
291
+ rubygems_version: 3.1.2
292
292
  signing_key:
293
293
  specification_version: 4
294
294
  summary: Find and parse manifests