bibliothecary 0.3.0 → 0.4.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
  SHA1:
3
- metadata.gz: 02faff8131e3124d6ba5ce3a74805c61ccfd5757
4
- data.tar.gz: 56a75db0780b803b9df037ae13417396a4345804
3
+ metadata.gz: e2de900a7b2537246834228f5cebbae0aaadc98b
4
+ data.tar.gz: 7149d4a8e47ba273f06f480ab9b88154f1f88405
5
5
  SHA512:
6
- metadata.gz: 05201570924d5b58d953a6cce071d20d699b25c7009b48b31bc23ff8cc7dc6e642187e48eb1670e7df7d554086e84ad0abfc990c194aa6564128038fc80b90fd
7
- data.tar.gz: 039dd8629e9ea67d9668f488d40615486f8931639f7ed30ff7af01a538236ebacf6c7ad5f1b5f08c0b928402afee24f5926a39748de82d80c37c8e59e8093d0f
6
+ metadata.gz: f7c20722b36918a752199520b563fde442fed3c56fbd8dfa77c23e67dd7ea15902d72c3adaa70c694a7a740a438a707a0dde481ddd6fe4e7f44b7458e343599b
7
+ data.tar.gz: 6eb481f28a6e5df3a0ce70c80039de825a104116b48bb524ab0574a6c1632f0b18b98b4c314a1151d6f93f625436a8bc26c08b51026427bfcf670e9a0ff056f8
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_dependency "toml-rb", "~> 0.3.9"
22
22
  spec.add_dependency "librariesio-gem-parser"
23
+ spec.add_dependency "rogdl"
23
24
 
24
25
  spec.add_development_dependency "bundler", "~> 1.11"
25
26
  spec.add_development_dependency "rake", "~> 11.0"
@@ -1,3 +1,69 @@
1
- # Cartfile
2
- # Cartfile.lock
3
- # Cartfile.resolved
1
+ require 'cartfile_parser'
2
+
3
+ module Bibliothecary
4
+ module Parsers
5
+ class Carthage
6
+ PLATFORM_NAME = 'Carthage'
7
+
8
+ def self.parse(filename, file_contents)
9
+ if filename.match(/^Cartfile$/)
10
+ manifest = CartfileParser.new(:runtime, file_contents).dependencies
11
+ elsif filename.match(/^Cartfile\.private$/)
12
+ manifest = CartfileParser.new(:runtime, file_contents).dependencies
13
+ elsif filename.match(/^Cartfile\.resolved$/)
14
+ manifest = CartfileParser.new(:runtime, file_contents).dependencies
15
+ else
16
+ []
17
+ end
18
+ end
19
+
20
+ def self.analyse(folder_path, file_list)
21
+ [
22
+ analyse_cartfile(folder_path, file_list),
23
+ analyse_cartfile_private(folder_path, file_list),
24
+ analyse_cartfile_resolved(folder_path, file_list)
25
+ ]
26
+ end
27
+
28
+ def self.analyse_cartfile(folder_path, file_list)
29
+ path = file_list.find{|path| path.gsub(folder_path, '').gsub(/^\//, '').match(/^Cartfile$/) }
30
+ return unless path
31
+
32
+ manifest = CartfileParser.new(:runtime, File.open(path).read)
33
+
34
+ {
35
+ platform: PLATFORM_NAME,
36
+ path: path,
37
+ dependencies: manifest.dependencies
38
+ }
39
+ end
40
+
41
+ def self.analyse_cartfile_private(folder_path, file_list)
42
+ path = file_list.find{|path| path.gsub(folder_path, '').gsub(/^\//, '').match(/^Cartfile\.private$/) }
43
+ return unless path
44
+
45
+ manifest = CartfileParser.new(:runtime, File.open(path).read)
46
+
47
+ {
48
+ platform: PLATFORM_NAME,
49
+ path: path,
50
+ dependencies: manifest.dependencies
51
+ }
52
+ end
53
+
54
+ def self.analyse_cartfile_resolved(folder_path, file_list)
55
+ path = file_list.find{|path| path.gsub(folder_path, '').gsub(/^\//, '').match(/^Cartfile\.resolved$/) }
56
+ return unless path
57
+
58
+ manifest = CartfileParser.new(:runtime, File.open(path).read)
59
+
60
+ {
61
+ platform: PLATFORM_NAME,
62
+ path: path,
63
+ dependencies: manifest.dependencies
64
+ }
65
+ end
66
+
67
+ end
68
+ end
69
+ end
@@ -1,3 +1,3 @@
1
1
  module Bibliothecary
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -0,0 +1,29 @@
1
+ require 'rogdl'
2
+
3
+ class CartfileParser
4
+ attr_reader :contents, :type
5
+ def initialize(type, contents)
6
+ @contents = contents
7
+ @type = type || 'runtime'
8
+ end
9
+
10
+ def to_json
11
+ Oj.dump(dependencies, mode: :compat) unless contents.nil?
12
+ end
13
+
14
+ def dependencies
15
+ parse.inject([]) do |deps, dep|
16
+ deps.push({
17
+ name: dep[1],
18
+ version: [dep[2],dep[3]].join(' ') || ">= 0",
19
+ type: type,
20
+ })
21
+ end.uniq
22
+ end
23
+
24
+ def parse
25
+ parser = Rogdl::Parser.new
26
+ parser.translate(contents)
27
+ parser.lines.reject { |line| line.empty? }
28
+ end
29
+ 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: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Nesbitt
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-29 00:00:00.000000000 Z
11
+ date: 2016-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: toml-rb
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rogdl
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -120,6 +134,7 @@ files:
120
134
  - lib/bibliothecary/parsers/pypi.rb
121
135
  - lib/bibliothecary/parsers/rubygems.rb
122
136
  - lib/bibliothecary/version.rb
137
+ - lib/cartfile_parser.rb
123
138
  homepage: https://github.com/librariesio/bibliothecary
124
139
  licenses:
125
140
  - AGPL-3.0
@@ -140,8 +155,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
155
  version: '0'
141
156
  requirements: []
142
157
  rubyforge_project:
143
- rubygems_version: 2.5.1
158
+ rubygems_version: 2.6.4
144
159
  signing_key:
145
160
  specification_version: 4
146
161
  summary: Find and parse manifests
147
162
  test_files: []
163
+ has_rdoc: