gems-status 0.31.0 → 0.32.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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