compact_index_client 0.1.0 → 2.0.0

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
  SHA1:
3
- metadata.gz: 18f334a60412f00251629bf03ce547871b37a714
4
- data.tar.gz: 22e80a4875200879d9ee784f3ec9a392930a894a
3
+ metadata.gz: 9c94f99287d3f49fc248f190beb0f14f45e7a136
4
+ data.tar.gz: 1f03bc6759acb7ac448f3bde2e8f2f2e7d155e56
5
5
  SHA512:
6
- metadata.gz: 633282b34accd47e64833d523a4c9d226020eed42b36b1a4fcf79b00f36404b3a2b84d39c86ad4570a3c2ba6bc00accb30e962e4d0ac5dca2de5a8e22e70d1e0
7
- data.tar.gz: be2f1c89aeffffc872bce26d168f24c1e023530c58dd9c0155f6cb8c1860b09401608e0524a9c99fb0a5682e419bf60069dc16bdbfb3f0555d57639ebdc9b7e4
6
+ metadata.gz: 2c451c41fabb75204c4d11ae43bc535e151d9b686f5dbf7f655ecdccb6934984cfac38042b233fdbed8c08461ab7165b598344bc2c2b64ab559c665cda4b4745
7
+ data.tar.gz: b0bd3dc61158d39a8284999b60ad3a7702b0c2fcf74faee1e4945b661f974b7c3e999b4c1b3aa5ae136aca3cb4a7687cfca4e6ee5594ccc0b1ec9609a6b8151a
data/README.md CHANGED
@@ -1,3 +1,6 @@
1
+ # Deprecation
2
+ This gem is deprecated and is no longer supported by the Bundler team.
3
+
1
4
  # CompactIndexClient
2
5
 
3
6
  ## Installation
@@ -18,6 +18,8 @@ Gem::Specification.new do |spec|
18
18
  spec.executables = spec.files.grep(%r{^exe/}) {|f| File.basename(f) }
19
19
  spec.require_paths = ["lib"]
20
20
 
21
+ spec.post_install_message = "This gem is deprecated and is no longer supported by the Bundler team."
22
+
21
23
  spec.add_development_dependency "bundler", "~> 1.10"
22
24
  spec.add_development_dependency "rake", "~> 10.0"
23
25
  spec.add_development_dependency "rspec"
@@ -1,3 +1,3 @@
1
1
  class CompactIndexClient
2
- VERSION = "0.1.0"
2
+ VERSION = "2.0.0"
3
3
  end
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: compact_index_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel E. Giddins
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-08-23 00:00:00.000000000 Z
11
+ date: 2017-05-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.10'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.10'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '10.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  description:
@@ -59,11 +59,10 @@ executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
- - ".gitignore"
63
- - ".rspec"
64
- - ".rubocop.yml"
65
- - ".rubocop_todo.yml"
66
- - ".travis.yml"
62
+ - .gitignore
63
+ - .rspec
64
+ - .rubocop.yml
65
+ - .rubocop_todo.yml
67
66
  - CHANGELOG.md
68
67
  - Gemfile
69
68
  - Gemfile.lock
@@ -76,31 +75,29 @@ files:
76
75
  - bin/rubocop
77
76
  - bin/setup
78
77
  - compact_index_client.gemspec
79
- - lib/compact_index_client.rb
80
- - lib/compact_index_client/cache.rb
81
- - lib/compact_index_client/updater.rb
82
78
  - lib/compact_index_client/version.rb
83
79
  homepage: https://github.com/bundler/compact_index_client
84
80
  licenses:
85
81
  - MIT
86
82
  metadata: {}
87
- post_install_message:
83
+ post_install_message: This gem is deprecated and is no longer supported by the Bundler
84
+ team.
88
85
  rdoc_options: []
89
86
  require_paths:
90
87
  - lib
91
88
  required_ruby_version: !ruby/object:Gem::Requirement
92
89
  requirements:
93
- - - ">="
90
+ - - '>='
94
91
  - !ruby/object:Gem::Version
95
92
  version: '0'
96
93
  required_rubygems_version: !ruby/object:Gem::Requirement
97
94
  requirements:
98
- - - ">="
95
+ - - '>='
99
96
  - !ruby/object:Gem::Version
100
97
  version: '0'
101
98
  requirements: []
102
99
  rubyforge_project:
103
- rubygems_version: 2.4.8
100
+ rubygems_version: 2.0.14.1
104
101
  signing_key:
105
102
  specification_version: 4
106
103
  summary: The client for the new Bundler compact index format.
@@ -1,8 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 1.8.7
4
- - 1.9.3
5
- - 2.0.0
6
- - 2.1.7
7
- - 2.2.3
8
- before_install: gem install bundler -v 1.10.6
@@ -1,57 +0,0 @@
1
- require "pathname"
2
- require "set"
3
-
4
- class CompactIndexClient
5
- require "compact_index_client/cache"
6
- require "compact_index_client/updater"
7
- require "compact_index_client/version"
8
-
9
- def initialize(directory, fetcher)
10
- @directory = Pathname.new(directory)
11
- @updater = Updater.new(fetcher)
12
- @cache = Cache.new(@directory)
13
- @endpoints = Set.new
14
- @info_checksums_by_name = {}
15
- end
16
-
17
- def names
18
- update(@cache.names_path, "names")
19
- @cache.names
20
- end
21
-
22
- def versions
23
- update(@cache.versions_path, "versions")
24
- versions, @info_checksums_by_name = @cache.versions
25
- versions
26
- end
27
-
28
- def dependencies(names)
29
- names.each {|n| update_info(n) }
30
- names.map do |name|
31
- @cache.dependencies(name).map {|d| d.unshift(name) }
32
- end.flatten(1)
33
- end
34
-
35
- def spec(name, version, platform = nil)
36
- update_info(name)
37
- @cache.specific_dependency(name, version, platform)
38
- end
39
-
40
- private
41
-
42
- def update(local_path, remote_path)
43
- return if @endpoints.include?(remote_path)
44
- @updater.update(local_path, url(remote_path))
45
- @endpoints << remote_path
46
- end
47
-
48
- def update_info(name)
49
- path = @cache.dependencies_path(name)
50
- return if @info_checksums_by_name[name] == @updater.checksum_for_file(path)
51
- update(path, "info/#{name}")
52
- end
53
-
54
- def url(path)
55
- path
56
- end
57
- end
@@ -1,80 +0,0 @@
1
- class CompactIndexClient
2
- class Cache
3
- attr_reader :directory
4
-
5
- def initialize(directory)
6
- @directory = Pathname.new(directory).expand_path
7
- FileUtils.mkdir_p dependencies_path(nil)
8
- end
9
-
10
- def names
11
- lines(names_path)
12
- end
13
-
14
- def names_path
15
- directory + "names"
16
- end
17
-
18
- def versions
19
- versions_by_name = Hash.new {|hash, key| hash[key] = [] }
20
- info_checksums_by_name = {}
21
- lines(versions_path).map do |line|
22
- next if line == "-1"
23
- name, versions_string, info_checksum = line.split(" ", 3)
24
- info_checksums_by_name[name] = info_checksum || ""
25
- versions_by_name[name].concat(versions_string.split(",").map! do |version|
26
- version.split("-", 2).unshift(name)
27
- end)
28
- end
29
- [versions_by_name, info_checksums_by_name]
30
- end
31
-
32
- def versions_path
33
- directory + "versions"
34
- end
35
-
36
- def dependencies(name)
37
- lines(dependencies_path(name)).map do |line|
38
- parse_gem(line)
39
- end
40
- end
41
-
42
- def dependencies_path(name)
43
- directory + "dependencies" + name.to_s
44
- end
45
-
46
- def specific_dependency(name, version, platform)
47
- pattern = [version, platform].compact.join("-")
48
- matcher = /\A#{Regexp.escape(pattern)}\b/ unless pattern.empty?
49
- lines(dependencies_path(name)).each do |line|
50
- return parse_gem(line) if line =~ matcher
51
- end if matcher
52
- nil
53
- end
54
-
55
- private
56
-
57
- def lines(path)
58
- return [] unless path.file?
59
- lines = path.read.lines
60
- header = lines.index("---\n")
61
- lines = header ? lines[header + 1..-1] : lines
62
- lines.each!(&:strip!)
63
- end
64
-
65
- def parse_gem(string)
66
- version_and_platform, rest = string.split(" ", 2)
67
- version, platform = version_and_platform.split("-", 2)
68
- dependencies, requirements = rest.split("|", 2).map {|s| s.split(",") } if rest
69
- dependencies = dependencies ? dependencies.map {|d| parse_dependency(d) } : []
70
- requirements = requirements ? requirements.map {|r| parse_dependency(r) } : []
71
- [version, platform, dependencies, requirements]
72
- end
73
-
74
- def parse_dependency(string)
75
- dependency = string.split(":")
76
- dependency[-1] = dependency[-1].split("&")
77
- dependency
78
- end
79
- end
80
- end
@@ -1,29 +0,0 @@
1
- class CompactIndexClient
2
- class Updater
3
- attr_reader :fetcher
4
- def initialize(fetcher)
5
- @fetcher = fetcher
6
- end
7
-
8
- def update(local_path, remote_path)
9
- headers = {}
10
- if local_path.file?
11
- headers["If-None-Match"] = checksum_for_file(local_path)
12
- headers["Range"] = "bytes=#{local_path.size}-"
13
- end
14
- response = fetcher.call(remote_path, headers)
15
- return if response.is_a?(Net::HTTPNotModified)
16
- mode = response.is_a?(Net::HTTPPartialContent) ? "a" : "w"
17
- local_path.open(mode) {|f| f << response.body }
18
-
19
- return if checksum_for_file(local_path) == response["ETag"]
20
- local_path.delete
21
- update(local_path, remote_path)
22
- end
23
-
24
- def checksum_for_file(path)
25
- return nil unless path.file?
26
- Digest::MD5.file(path).hexdigest
27
- end
28
- end
29
- end