bibliothecary 6.0.0 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 935cbd8787482396ccc60336f384f873e3a8b00776f90c65d6371d210ed4db62
4
- data.tar.gz: e44a452c0d267f0be2be07fd283819fc920dd6e6ec72f1e571373bbccc2edd65
3
+ metadata.gz: 8efd048d47996bf9bcc3252e2c66817d4123a36208734267a6b9e84315fc4278
4
+ data.tar.gz: a961e90ed80a1f9d67f7dc0d88ddd411d663a25d13a52bca3a5d96c970cc0a42
5
5
  SHA512:
6
- metadata.gz: 120b368ed812d188291666c23a3611ac9e6e6448aa7acd65f207148db2ed585664f3e649f92f6803858d6c89dc823a9c291178e2a39381f737dafe317a0e43a9
7
- data.tar.gz: 2a8afdf930ef8b387682c67580428744040e1e5b5deab1dfc4737c256d3dc06515b0b3aeb4af25160b523ac7583c76d343445cf86383820dada6fa9eb6d56985
6
+ metadata.gz: 27025e8a5dea37b1ad5adbc61218263c32c439f41372957a82f93be2cbed642b3cc08fe7a627345e16d6803a3af734cf8ebfd3a9b150048713b55cc0625d10ee
7
+ data.tar.gz: 4439392a1558355966cbe4d3fabef5257b6192056f0021a363073337927dc7c2af179a0bcd686e23c6e83f9c0bc4cb50357daf854de177ed2a03daaa91158446
data/README.md CHANGED
@@ -44,6 +44,16 @@ Search a directory for manifest files and parse the contents:
44
44
  Bibliothecary.analyse('./')
45
45
  ```
46
46
 
47
+ There are a number of parsers that rely on web services to parse the file formats, those urls can be configured like so:
48
+
49
+ ```ruby
50
+ Bibliothecary.configure do |config|
51
+ config.carthage_parser_host = 'http://my-carthage-parsing-service.com'
52
+ end
53
+ ```
54
+
55
+ All available config options are in: https://github.com/librariesio/bibliothecary/blob/master/lib/bibliothecary/configuration.rb
56
+
47
57
  ## Supported package manager file formats
48
58
 
49
59
  - npm
@@ -124,10 +134,14 @@ Bibliothecary.analyse('./')
124
134
  - Godeps/Godeps.json
125
135
  - vendor/manifest
126
136
  - vendor/vendor.json
137
+ - Gopkg.toml
138
+ - Gopkg.lock
127
139
  - Elm
128
140
  - elm-package.json
129
141
  - elm_dependencies.json
130
142
  - elm-stuff/exact-dependencies.json
143
+ - Haxelib
144
+ - haxelib.json
131
145
 
132
146
  ## Development
133
147
 
data/lib/bibliothecary.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require "bibliothecary/version"
2
2
  require "bibliothecary/analyser"
3
+ require "bibliothecary/configuration"
3
4
 
4
5
  Dir[File.expand_path('../bibliothecary/parsers/*.rb', __FILE__)].each do |file|
5
6
  require file
@@ -32,10 +33,26 @@ module Bibliothecary
32
33
  end
33
34
 
34
35
  def self.ignored_files
35
- ['.git', 'node_modules', 'bower_components', 'spec/fixtures', 'vendor', 'dist']
36
+ configuration.ignored_files
36
37
  end
37
38
 
38
39
  def self.ignored_files_regex
39
40
  ignored_files.join('|')
40
41
  end
42
+
43
+ class << self
44
+ attr_writer :configuration
45
+ end
46
+
47
+ def self.configuration
48
+ @configuration ||= Configuration.new
49
+ end
50
+
51
+ def self.reset
52
+ @configuration = Configuration.new
53
+ end
54
+
55
+ def self.configure
56
+ yield(configuration)
57
+ end
41
58
  end
@@ -0,0 +1,21 @@
1
+ module Bibliothecary
2
+ class Configuration
3
+ attr_accessor :ignored_files
4
+ attr_accessor :carthage_parser_host
5
+ attr_accessor :clojars_parser_host
6
+ attr_accessor :mix_parser_host
7
+ attr_accessor :gradle_parser_host
8
+ attr_accessor :yarn_parser_host
9
+ attr_accessor :swift_parser_host
10
+
11
+ def initialize
12
+ @ignored_files = ['.git', 'node_modules', 'bower_components', 'spec/fixtures', 'vendor', 'dist']
13
+ @carthage_parser_host = 'https://carthage.libraries.io'
14
+ @clojars_parser_host = 'https://clojars.libraries.io'
15
+ @mix_parser_host = 'https://mix.libraries.io'
16
+ @gradle_parser_host = 'https://gradle-parser.libraries.io'
17
+ @yarn_parser_host = 'https://yarn-parser.libraries.io'
18
+ @swift_parser_host = 'http://swift.libraries.io'
19
+ end
20
+ end
21
+ end
@@ -33,7 +33,7 @@ module Bibliothecary
33
33
  end
34
34
 
35
35
  def self.map_dependencies(manifest, path)
36
- response = Typhoeus.post("https://carthage.libraries.io/#{path}", params: {body: manifest})
36
+ response = Typhoeus.post("#{Bibliothecary.configuration.carthage_parser_host}/#{path}", params: {body: manifest})
37
37
  json = JSON.parse(response.body)
38
38
 
39
39
  json.map do |dependency|
@@ -16,7 +16,7 @@ module Bibliothecary
16
16
  end
17
17
 
18
18
  def self.parse_manifest(manifest)
19
- response = Typhoeus.post("https://clojars.libraries.io/project.clj", body: manifest)
19
+ response = Typhoeus.post("#{Bibliothecary.configuration.clojars_parser_host}/project.clj", body: manifest)
20
20
  json = JSON.parse response.body
21
21
  index = json.index("dependencies")
22
22
 
@@ -19,7 +19,7 @@ module Bibliothecary
19
19
  end
20
20
 
21
21
  def self.parse_mix(manifest)
22
- response = Typhoeus.post("https://mix.libraries.io/", body: manifest)
22
+ response = Typhoeus.post("#{Bibliothecary.configuration.mix_parser_host}/", body: manifest)
23
23
  json = JSON.parse response.body
24
24
 
25
25
  json.map do |name, version|
@@ -32,7 +32,7 @@ module Bibliothecary
32
32
  end
33
33
 
34
34
  def self.parse_mix_lock(manifest)
35
- response = Typhoeus.post("https://mix.libraries.io/lock", body: manifest)
35
+ response = Typhoeus.post("#{Bibliothecary.configuration.mix_parser_host}/lock", body: manifest)
36
36
  json = JSON.parse response.body
37
37
 
38
38
  json.map do |name, info|
@@ -56,7 +56,7 @@ module Bibliothecary
56
56
  end
57
57
 
58
58
  def self.parse_gradle(manifest)
59
- response = Typhoeus.post("https://gradle-parser.libraries.io/parse", body: manifest)
59
+ response = Typhoeus.post("#{Bibliothecary.configuration.gradle_parser_host}/parse", body: manifest)
60
60
  json = JSON.parse(response.body)
61
61
  return [] unless json['dependencies']
62
62
  json['dependencies'].map do |dependency|
@@ -55,7 +55,7 @@ module Bibliothecary
55
55
  end
56
56
 
57
57
  def self.parse_yarn_lock(file_contents)
58
- response = Typhoeus.post("https://yarn-parser.libraries.io/parse", body: file_contents)
58
+ response = Typhoeus.post("#{Bibliothecary.configuration.yarn_parser_host}/parse", body: file_contents)
59
59
  return [] unless response.response_code == 200
60
60
  json = JSON.parse(response.body, symbolize_names: true)
61
61
  json.uniq.map do |dep|
@@ -13,7 +13,7 @@ module Bibliothecary
13
13
  end
14
14
 
15
15
  def self.parse_package_swift(manifest)
16
- response = Typhoeus.post("http://swift.libraries.io/to-json", body: manifest)
16
+ response = Typhoeus.post("#{Bibliothecary.configuration.swift_parser_host}/to-json", body: manifest)
17
17
  json = JSON.parse(response.body)
18
18
  json["dependencies"].map do |dependency|
19
19
  name = dependency['url'].gsub(/^https?:\/\//, '').gsub(/\.git$/,'')
@@ -1,3 +1,3 @@
1
1
  module Bibliothecary
2
- VERSION = "6.0.0"
2
+ VERSION = "6.1.0"
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.0.0
4
+ version: 6.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Nesbitt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-16 00:00:00.000000000 Z
11
+ date: 2018-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: toml-rb
@@ -181,6 +181,7 @@ files:
181
181
  - lib/bibliothecary.rb
182
182
  - lib/bibliothecary/analyser.rb
183
183
  - lib/bibliothecary/cli.rb
184
+ - lib/bibliothecary/configuration.rb
184
185
  - lib/bibliothecary/parsers/bower.rb
185
186
  - lib/bibliothecary/parsers/cargo.rb
186
187
  - lib/bibliothecary/parsers/carthage.rb