gems-status 0.31.0 → 0.32.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.
@@ -6,7 +6,7 @@ class PrintGemVersions
|
|
6
6
|
#ignore upstream gems
|
7
7
|
return true if gem.origin == gem.gems_url
|
8
8
|
open("gemversions.txt", "a") do |f|
|
9
|
-
f.puts "
|
9
|
+
f.puts "name:#{gem.name} \tversion:#{gem.version}\t license:#{gem.license}"
|
10
10
|
end
|
11
11
|
return true
|
12
12
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require "rubygems/format"
|
1
2
|
require "gems-status/gem_simple"
|
2
3
|
require "time"
|
3
4
|
|
@@ -7,24 +8,19 @@ class RubyGemsGems_GemSimple < GemSimple
|
|
7
8
|
super(name, version, nil, origin, gems_url, dependencies)
|
8
9
|
end
|
9
10
|
|
10
|
-
def
|
11
|
-
if
|
12
|
-
return
|
11
|
+
def license
|
12
|
+
if from_git?
|
13
|
+
return nil
|
13
14
|
end
|
15
|
+
Utils::download_license(@name, @version, @gems_url)
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
def md5
|
14
20
|
if from_git?
|
15
21
|
return nil
|
16
22
|
end
|
17
|
-
|
18
|
-
uri_debug = gem_uri.clone
|
19
|
-
uri_debug.password = "********" if uri_debug.password
|
20
|
-
Utils::log_debug "download and md5 for #{@name} from #{uri_debug}"
|
21
|
-
@md5 = nil
|
22
|
-
begin
|
23
|
-
@md5 = Utils::download_md5(gem_uri)
|
24
|
-
rescue
|
25
|
-
Utils::log_error(@name, "There was a problem opening #{gem_uri}")
|
26
|
-
end
|
27
|
-
return @md5
|
23
|
+
Utils::download_md5(@name, @version, @gems_url)
|
28
24
|
end
|
29
25
|
|
30
26
|
def date
|
data/lib/gems-status/utils.rb
CHANGED
@@ -5,7 +5,9 @@ class Utils
|
|
5
5
|
attr_accessor :errors
|
6
6
|
@@errors = {}
|
7
7
|
@@md5_sums = {}
|
8
|
+
@@licenses = {}
|
8
9
|
@@keys = {}
|
10
|
+
@@gems = {}
|
9
11
|
|
10
12
|
def Utils.errors
|
11
13
|
return @@errors
|
@@ -35,21 +37,57 @@ class Utils
|
|
35
37
|
$stderr.puts "DEBUG: #{msg}"
|
36
38
|
end
|
37
39
|
|
38
|
-
def Utils.download_md5(
|
39
|
-
|
40
|
+
def Utils.download_md5(name, version, gems_url)
|
41
|
+
key = "#{name}-#{version}-#{gems_url.gsub("/", "_").gsub(":", "_")}"
|
42
|
+
return @@md5_sums[key] if @@md5_sums[key]
|
40
43
|
begin
|
41
|
-
|
42
|
-
source = open(gem_uri.scheme + "://" + gem_uri.host + "/" + gem_uri.path,
|
43
|
-
:http_basic_authentication=>[gem_uri.user, gem_uri.password])
|
44
|
-
else
|
45
|
-
source = open(gem_uri)
|
46
|
-
end
|
44
|
+
gem_file_path = self.download_gem(name, version, gems_url)
|
47
45
|
rescue Exception => e
|
48
|
-
self.log_error e.message
|
46
|
+
self.log_error(name, e.message)
|
47
|
+
return nil
|
49
48
|
end
|
50
|
-
md5 = Digest::MD5.hexdigest(
|
51
|
-
@@md5_sums[
|
49
|
+
md5 = Digest::MD5.hexdigest(open(gem_file_path).read)
|
50
|
+
@@md5_sums["#{name}-#{version}"] = md5
|
52
51
|
return md5
|
53
52
|
end
|
54
53
|
|
54
|
+
def Utils.download_license(name, version, gems_url)
|
55
|
+
key = "#{name}-#{version}-#{gems_url.gsub("/", "_").gsub(":", "_")}"
|
56
|
+
return @@licenses[key] if @@licenses[key]
|
57
|
+
begin
|
58
|
+
gem_file_path = self.download_gem(name, version, gems_url)
|
59
|
+
rescue Exception => e
|
60
|
+
self.log_error(name, e.message)
|
61
|
+
return nil
|
62
|
+
end
|
63
|
+
license = Gem::Format.from_file_by_path(gem_file_path).spec.license
|
64
|
+
@@licenses[key] = license
|
65
|
+
return license
|
66
|
+
end
|
67
|
+
|
68
|
+
private
|
69
|
+
|
70
|
+
def Utils.download_gem(name, version, gems_url)
|
71
|
+
gem_uri = URI.parse("#{gems_url}/#{name}-#{version}.gem")
|
72
|
+
tmp_path = "tmp/utils/gems/#{gems_url.gsub("/", "_").gsub(":", "_")}/"
|
73
|
+
gem_name = "#{name}-#{version}.gem"
|
74
|
+
full_path = "#{tmp_path}/#{gem_name}"
|
75
|
+
return full_path if File.exists? full_path
|
76
|
+
uri_debug = gem_uri.clone
|
77
|
+
uri_debug.password = "********" if uri_debug.password
|
78
|
+
Utils::log_debug "download #{@name} from #{uri_debug}"
|
79
|
+
FileUtils::mkdir_p(tmp_path) if ! File.exists?(tmp_path)
|
80
|
+
if gem_uri.user && gem_uri.password
|
81
|
+
source = open(gem_uri.scheme + "://" + gem_uri.host + "/" + gem_uri.path,
|
82
|
+
"rb",
|
83
|
+
:http_basic_authentication=>[gem_uri.user, gem_uri.password])
|
84
|
+
else
|
85
|
+
source = open(gem_uri)
|
86
|
+
end
|
87
|
+
open(full_path, "wb") do |file|
|
88
|
+
file.write(source.read)
|
89
|
+
end
|
90
|
+
source.close
|
91
|
+
return full_path
|
92
|
+
end
|
55
93
|
end
|
data/test/Gemfile.lock.2
ADDED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gems-status
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 159
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 32
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.32.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jordi Massaguer Pla
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2013-01-
|
18
|
+
date: 2013-01-09 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: xml-simple
|
@@ -145,6 +145,7 @@ files:
|
|
145
145
|
- test/test-lockfile_gems.rb
|
146
146
|
- test/test-not_rails_checker.rb
|
147
147
|
- test/test-obs_gems.rb
|
148
|
+
- test/Gemfile.lock.2
|
148
149
|
- test/Gemfile.lock
|
149
150
|
- test/Gemfile
|
150
151
|
homepage: http://github.com/jordimassaguerpla/gems-status
|