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 "#{gem.name} #{gem.version}"
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,3 @@
1
1
  module GemsStatusMetadata
2
- VERSION = "0.31.0"
2
+ VERSION = "0.32.0"
3
3
  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 md5
11
- if @md5
12
- return @md5
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
- gem_uri = URI.parse("#{@gems_url}/#{@name}-#{@version}.gem")
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
@@ -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(gem_uri)
39
- return @@md5_sums[gem_uri] if @@md5_sums[gem_uri]
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
- if gem_uri.user && gem_uri.password
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(source.read)
51
- @@md5_sums[gem_uri] = md5
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
@@ -0,0 +1,10 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ curb (0.8.0)
5
+
6
+ PLATFORMS
7
+ ruby
8
+
9
+ DEPENDENCIES
10
+ curb
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: 99
4
+ hash: 159
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 31
8
+ - 32
9
9
  - 0
10
- version: 0.31.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-02 00:00:00 Z
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