compact_index 0.9.1 → 0.9.3
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 +4 -4
- data/.travis.yml +5 -1
- data/CHANGELOG.md +12 -0
- data/README.md +12 -42
- data/lib/compact_index.rb +7 -11
- data/lib/compact_index/dependency.rb +11 -0
- data/lib/compact_index/gem.rb +3 -0
- data/lib/compact_index/gem_version.rb +11 -0
- data/lib/compact_index/version.rb +1 -1
- data/lib/compact_index/versions_file.rb +11 -16
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9b3856147725f1163a8a30cbdaf87a50ec11569d
|
4
|
+
data.tar.gz: 29d0a42db611e97e05e27e1f6539285769465039
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd16103ee70d0a4ee203fc94748c723494fa3da2c2c5d61ec8d610d8c7174ec8e9a943b0ff1e3618002137f75e5c4eeda159e45eb59b452499c49677443f4999
|
7
|
+
data.tar.gz: 80d01b2cb95206fb8c781f3c8ad118d050a9ce030e2bf42f2a6533121a477d2d639c18903ec285136081b29aed6e7f1640a45843d018dbdd2668b3153fefb721
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -41,39 +41,16 @@ from_date = @versions_file.updated_at
|
|
41
41
|
|
42
42
|
# Query the extra gems using the from date. Format should be as follows
|
43
43
|
extra_gems = [
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
{
|
53
|
-
number: "0.9.9"
|
54
|
-
platform: "java"
|
55
|
-
checksum: "abc123"
|
56
|
-
}
|
57
|
-
]
|
58
|
-
},
|
59
|
-
{
|
60
|
-
name: "gem2",
|
61
|
-
versions: [
|
62
|
-
{
|
63
|
-
number: "0.9.8"
|
64
|
-
platform: "ruby"
|
65
|
-
checksum: "abc123" #sha256 checksum available on rubygems.org
|
66
|
-
},
|
67
|
-
{
|
68
|
-
number: "0.9.9"
|
69
|
-
platform: "java"
|
70
|
-
checksum: "abc123"
|
71
|
-
}
|
72
|
-
]
|
73
|
-
}
|
44
|
+
CompactIndex::Gem.new("gem1", [
|
45
|
+
CompactIndex::GemVersion.new("0.9.8", "ruby", "abc123"),
|
46
|
+
CompactIndex::GemVersion.new("0.9.9", "jruby", "abc123"),
|
47
|
+
]),
|
48
|
+
CompactIndex::Gem.new("gem2", [
|
49
|
+
CompactIndex::GemVersion.new("0.9.8", "ruby", "abc123"),
|
50
|
+
CompactIndex::GemVersion.new("0.9.9", "jruby", "abc123"),
|
51
|
+
])
|
74
52
|
]
|
75
53
|
|
76
|
-
|
77
54
|
# Render the body for the versions response
|
78
55
|
CompactIndex.versions(@versions_file, extra_gems)
|
79
56
|
```
|
@@ -87,17 +64,10 @@ gem 'compact_index'
|
|
87
64
|
|
88
65
|
# Expected versions format
|
89
66
|
versions = [
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
{
|
95
|
-
gem: 'foo',
|
96
|
-
version: '=1.0.1',
|
97
|
-
checksum: 'abc123'
|
98
|
-
}
|
99
|
-
]
|
100
|
-
}
|
67
|
+
CompactIndex::GemVersion.new("1.0.1", "ruby", "abc123", "info123", [
|
68
|
+
CompactIndex::Dependency.new("foo", "=1.0.1", "abc123"),
|
69
|
+
CompactIndex::Dependency.new("bar", ">1.0, <2.0", "abc123"),
|
70
|
+
])
|
101
71
|
]
|
102
72
|
CompactIndex.info(versions)
|
103
73
|
```
|
data/lib/compact_index.rb
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
require "compact_index/gem"
|
2
|
+
require "compact_index/gem_version"
|
3
|
+
require "compact_index/dependency"
|
4
|
+
|
1
5
|
require "compact_index/version"
|
2
6
|
require "compact_index/versions_file"
|
3
7
|
|
@@ -6,7 +10,7 @@ module CompactIndex
|
|
6
10
|
"---\n" << gem_names.join("\n") << "\n"
|
7
11
|
end
|
8
12
|
|
9
|
-
def self.versions(versions_file, gems, args)
|
13
|
+
def self.versions(versions_file, gems = nil, args = {})
|
10
14
|
versions_file.contents(gems, args)
|
11
15
|
end
|
12
16
|
|
@@ -25,14 +29,14 @@ module CompactIndex
|
|
25
29
|
deps = version[:dependencies].map do |d|
|
26
30
|
[
|
27
31
|
d[:gem],
|
28
|
-
|
32
|
+
d.version_and_platform.gsub(/, /, "&")
|
29
33
|
].join(':')
|
30
34
|
end
|
31
35
|
else
|
32
36
|
deps = []
|
33
37
|
end
|
34
38
|
|
35
|
-
line = number_and_platform
|
39
|
+
line = version.number_and_platform
|
36
40
|
line << " "
|
37
41
|
line << deps.join(",")
|
38
42
|
line << "|"
|
@@ -43,12 +47,4 @@ module CompactIndex
|
|
43
47
|
|
44
48
|
line
|
45
49
|
end
|
46
|
-
|
47
|
-
def self.number_and_platform(number, platform)
|
48
|
-
if platform.nil? || platform == 'ruby'
|
49
|
-
number.dup
|
50
|
-
else
|
51
|
-
"#{number}-#{platform}"
|
52
|
-
end
|
53
|
-
end
|
54
50
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module CompactIndex
|
2
|
+
GemVersion = Struct.new(:number, :platform, :checksum, :info_checksum, :dependencies, :ruby_version, :rubygems_version) do
|
3
|
+
def number_and_platform
|
4
|
+
if platform.nil? || platform == 'ruby'
|
5
|
+
number.dup
|
6
|
+
else
|
7
|
+
"#{number}-#{platform}"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'time'
|
2
|
+
require 'date'
|
1
3
|
require 'compact_index'
|
2
4
|
|
3
5
|
class CompactIndex::VersionsFile
|
@@ -5,7 +7,7 @@ class CompactIndex::VersionsFile
|
|
5
7
|
@path = file || "/versions.list"
|
6
8
|
end
|
7
9
|
|
8
|
-
def contents(gems=nil, args = {})
|
10
|
+
def contents(gems = nil, args = {})
|
9
11
|
if args[:calculate_checksums]
|
10
12
|
gems = calculate_checksums(gems)
|
11
13
|
end
|
@@ -61,13 +63,15 @@ class CompactIndex::VersionsFile
|
|
61
63
|
|
62
64
|
# Transform hash in a list of line informations to be printed
|
63
65
|
gems = gems_hash.map do |gem, versions|
|
64
|
-
{ name
|
66
|
+
{ :name => gem, :versions => versions, :checksum => versions.first[:checksum] }
|
65
67
|
end
|
66
68
|
|
67
69
|
# Sort gems by name and versions by number
|
68
70
|
gems.sort! { |a,b| a[:name] <=> b[:name] }
|
69
71
|
gems.each do |entry|
|
70
|
-
entry[:versions].
|
72
|
+
entry[:versions].sort! do |a,b|
|
73
|
+
Gem::Version.create(a[:number]) <=> Gem::Version.create(b[:number])
|
74
|
+
end
|
71
75
|
end
|
72
76
|
|
73
77
|
gem_lines(gems)
|
@@ -76,9 +80,9 @@ class CompactIndex::VersionsFile
|
|
76
80
|
def parse_gems(gems)
|
77
81
|
gem_lines = gems.map do |entry|
|
78
82
|
{
|
79
|
-
name
|
80
|
-
versions
|
81
|
-
checksum
|
83
|
+
:name => entry[:name],
|
84
|
+
:versions => entry[:versions],
|
85
|
+
:checksum => entry[:versions].first[:checksum]
|
82
86
|
}
|
83
87
|
end
|
84
88
|
gem_lines(gem_lines)
|
@@ -87,16 +91,7 @@ class CompactIndex::VersionsFile
|
|
87
91
|
def gem_lines(gems)
|
88
92
|
gems.reduce("") do |concat, entry|
|
89
93
|
versions = entry[:versions]
|
90
|
-
|
91
|
-
concat << "#{entry[:name]} #{number_and_plat.join(',')} #{entry[:checksum]}\n"
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
def number_and_platform(number, platform)
|
96
|
-
if platform.nil? || platform == 'ruby'
|
97
|
-
number.dup
|
98
|
-
else
|
99
|
-
"#{number}-#{platform}"
|
94
|
+
concat << "#{entry[:name]} #{versions.map(&:number_and_platform).join(',')} #{entry[:checksum]}\n"
|
100
95
|
end
|
101
96
|
end
|
102
97
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: compact_index
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- fotanus@gmail.com
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -65,6 +65,9 @@ files:
|
|
65
65
|
- db/migrations/06_add_created_at_to_versions.rb
|
66
66
|
- db/migrations/07_add_checksum_to_versions.rb
|
67
67
|
- lib/compact_index.rb
|
68
|
+
- lib/compact_index/dependency.rb
|
69
|
+
- lib/compact_index/gem.rb
|
70
|
+
- lib/compact_index/gem_version.rb
|
68
71
|
- lib/compact_index/version.rb
|
69
72
|
- lib/compact_index/versions_file.rb
|
70
73
|
homepage: https://github.com/bundler/compact_index
|