gems-status 0.49.0 → 0.50.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,6 +10,15 @@ module GemsStatus
10
10
  @@licenses = {}
11
11
  @@keys = {}
12
12
  @@gems = {}
13
+ @@known_licenses = {}
14
+
15
+ def Utils.known_licenses=(licenses)
16
+ @@known_licenses = licenses
17
+ end
18
+
19
+ def Utils.known_licenses
20
+ return @@known_licenses
21
+ end
13
22
 
14
23
  def Utils.errors
15
24
  return @@errors
@@ -54,6 +63,7 @@ module GemsStatus
54
63
  end
55
64
 
56
65
  def Utils.download_license(name, version, gems_url)
66
+ version = version.to_s if version.is_a? Gem::Version
57
67
  key = "#{name}-#{version}-#{gems_url.gsub("/", "_").gsub(":", "_")}"
58
68
  return @@licenses[key] if @@licenses[key]
59
69
  begin
@@ -63,6 +73,16 @@ module GemsStatus
63
73
  return nil
64
74
  end
65
75
  license = Gem::Format.from_file_by_path(gem_file_path).spec.license
76
+ if !license || license.empty?
77
+ if @@known_licenses[name]
78
+ if @@known_licenses[name][version]
79
+ license = @@known_licenses[name][version]
80
+ Utils::log_debug "get license from known licenses for #{name} #{version}"
81
+ else #@@known_licenses[name] but different version
82
+ Utils::log_debug "I can't find license for #{name} but I have info from another version #{@@known_licenses[name].sort.last}"
83
+ end
84
+ end
85
+ end
66
86
  @@licenses[key] = license
67
87
  return license
68
88
  end
data/test/Gemfile CHANGED
@@ -1,10 +1,4 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
- gem 'system_timer'
4
- #gem 'abingo'
5
- gem 'factory_girl_rails'
6
- gem 'curb'
7
- gem 'xml-simple'
8
- gem 'fakefs'
9
- gem 'gem2rpm'
3
+ gem 'gems-status'
10
4
 
data/test/Gemfile.lock CHANGED
@@ -1,70 +1,40 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- actionpack (3.2.1)
5
- activemodel (= 3.2.1)
6
- activesupport (= 3.2.1)
7
- builder (~> 3.0.0)
8
- erubis (~> 2.7.0)
9
- journey (~> 1.0.1)
10
- rack (~> 1.4.0)
11
- rack-cache (~> 1.1)
12
- rack-test (~> 0.6.1)
13
- sprockets (~> 2.1.2)
14
- activemodel (3.2.1)
15
- activesupport (= 3.2.1)
16
- builder (~> 3.0.0)
17
- activesupport (3.2.1)
18
- i18n (~> 0.6)
19
- multi_json (~> 1.0)
20
- builder (3.0.0)
21
- curb (0.8.0)
22
- erubis (2.7.0)
23
- factory_girl (2.5.1)
24
- activesupport
25
- factory_girl_rails (1.6.0)
26
- factory_girl (~> 2.5.0)
27
- railties (>= 3.0.0)
28
- fakefs (0.4.0)
29
- gem2rpm (0.7.1)
30
- hike (1.2.1)
31
- i18n (0.6.0)
32
- journey (1.0.1)
33
- json (1.6.5)
34
- multi_json (1.0.4)
35
- rack (1.4.1)
36
- rack-cache (1.1)
37
- rack (>= 0.4)
38
- rack-ssl (1.3.2)
39
- rack
40
- rack-test (0.6.1)
41
- rack (>= 1.0)
42
- railties (3.2.1)
43
- actionpack (= 3.2.1)
44
- activesupport (= 3.2.1)
45
- rack-ssl (~> 1.3.2)
46
- rake (>= 0.8.7)
47
- rdoc (~> 3.4)
48
- thor (~> 0.14.6)
49
- rake (0.9.2.2)
50
- rdoc (3.12)
51
- json (~> 1.4)
52
- sprockets (2.1.2)
53
- hike (~> 1.2)
54
- rack (~> 1.0)
55
- tilt (~> 1.1, != 1.3.0)
56
- system_timer (1.2.4)
57
- thor (0.14.6)
58
- tilt (1.3.3)
59
- xml-simple (1.1.1)
4
+ gems-status (0.549.0)
5
+ bundler
6
+ git
7
+ gmail
8
+ json
9
+ mercurial-ruby
10
+ xml-simple
11
+ git (1.2.5)
12
+ gmail (0.4.0)
13
+ gmail_xoauth (>= 0.3.0)
14
+ mail (>= 2.2.1)
15
+ mime (>= 0.1)
16
+ gmail_xoauth (0.4.1)
17
+ oauth (>= 0.3.6)
18
+ i18n (0.6.4)
19
+ json (1.7.7)
20
+ mail (2.5.3)
21
+ i18n (>= 0.4.0)
22
+ mime-types (~> 1.16)
23
+ treetop (~> 1.4.8)
24
+ mercurial-ruby (0.7.9)
25
+ open4 (~> 1.3.0)
26
+ mime (0.1)
27
+ mime-types (1.23)
28
+ oauth (0.4.7)
29
+ open4 (1.3.0)
30
+ polyglot (0.3.3)
31
+ treetop (1.4.12)
32
+ polyglot
33
+ polyglot (>= 0.3.1)
34
+ xml-simple (1.1.2)
60
35
 
61
36
  PLATFORMS
62
37
  ruby
63
38
 
64
39
  DEPENDENCIES
65
- curb
66
- factory_girl_rails
67
- fakefs
68
- gem2rpm
69
- system_timer
70
- xml-simple
40
+ gems-status
@@ -10,43 +10,5 @@ module GemsStatus
10
10
  end
11
11
 
12
12
  class TestGemsCompositeCommand < Test::Unit::TestCase
13
- def test_common_key_in_empty_results
14
- gemscompositecommand = GemsCompositeCommand.new('id')
15
- result = gemscompositecommand.common_key?("this key does not exists")
16
- assert(!result)
17
- end
18
- def test_common_key_in_zero_coincidences_one_result
19
- gemscompositecommand = GemsCompositeCommandTest.new('id')
20
- gemscompositecommand.results['id'] = {"a key"=>"a value"}
21
- result = gemscompositecommand.common_key?("this key does not exists")
22
- assert(!result)
23
- end
24
- def test_common_key_in_zero_coincidences_two_results
25
- gemscompositecommand = GemsCompositeCommandTest.new('id')
26
- gemscompositecommand.results['id'] = {"a key"=>"a value"}
27
- gemscompositecommand.results['id2'] = {"another key"=>"another value"}
28
- result = gemscompositecommand.common_key?("this key does not exists")
29
- assert(!result)
30
- end
31
- def test_common_key_in_one_coincidence_one_results
32
- gemscompositecommand = GemsCompositeCommandTest.new('id')
33
- gemscompositecommand.results['id']= {"a key"=>"a value"}
34
- result = gemscompositecommand.common_key?("a key")
35
- assert(!result)
36
- end
37
- def test_common_key_in_one_coincidence_two_results
38
- gemscompositecommand = GemsCompositeCommandTest.new('id')
39
- gemscompositecommand.results['id']= {"a key"=>"a value"}
40
- gemscompositecommand.results['id2']= {"another key"=>"another value"}
41
- result = gemscompositecommand.common_key?("a key")
42
- assert(!result)
43
- end
44
- def test_common_key_in_two_coincidence_two_results
45
- gemscompositecommand = GemsCompositeCommandTest.new('id')
46
- gemscompositecommand.results['id']= {"a key"=>"a value"}
47
- gemscompositecommand.results['id2']= {"a key"=>"another value"}
48
- result = gemscompositecommand.common_key?("a key")
49
- assert(result)
50
- end
51
13
  end
52
14
  end
data/test/test-helper.rb CHANGED
@@ -1,5 +1,9 @@
1
1
  require 'simplecov'
2
- SimpleCov.start
3
2
  require 'coveralls'
4
- Coveralls.wear!
3
+
4
+ if Coveralls.should_run?
5
+ Coveralls.wear!
6
+ else
7
+ SimpleCov.start
8
+ end
5
9
 
@@ -11,7 +11,7 @@ module GemsStatus
11
11
  def initialize
12
12
  dir=File.expand_path(File.dirname(__FILE__))
13
13
  puts "DEBUG: dir : #{dir} #{dir.class.name}"
14
- @filenames = ["#{dir}/Gemfile.lock.test"]
14
+ @filename = "#{dir}/Gemfile.lock.test"
15
15
  @gems_url = ""
16
16
  @result = {}
17
17
  end
@@ -22,54 +22,28 @@ module GemsStatus
22
22
  lockfilegems = LockfileGemsTest.new
23
23
  lockfilegems.execute
24
24
  assert(lockfilegems.result.length == 6)
25
- result = lockfilegems.result["test"][0].name
25
+ result = lockfilegems.result["test"].name
26
26
  assert_equal("test",result)
27
- result = lockfilegems.result["test"][0].version
27
+ result = lockfilegems.result["test"].version
28
28
  assert_equal(Gem::Version.new("0.8.6"), result)
29
- result = lockfilegems.result["test2"][0].name
29
+ result = lockfilegems.result["test2"].name
30
30
  assert_equal("test2",result)
31
- result = lockfilegems.result["test2"][0].version
31
+ result = lockfilegems.result["test2"].version
32
32
  assert_equal(Gem::Version.new("1.2.3"), result)
33
- result = lockfilegems.result["test3"][0].name
33
+ result = lockfilegems.result["test3"].name
34
34
  assert_equal("test3",result)
35
- result = lockfilegems.result["test3"][0].version
35
+ result = lockfilegems.result["test3"].version
36
36
  assert_equal(Gem::Version.new("1.2.3"), result)
37
- result = lockfilegems.result["test4"][0].name
37
+ result = lockfilegems.result["test4"].name
38
38
  assert_equal("test4",result)
39
- result = lockfilegems.result["test4"][0].version
39
+ result = lockfilegems.result["test4"].version
40
40
  assert_equal(Gem::Version.new("1.2.3"), result)
41
- result = lockfilegems.result["from_git"][0].version
41
+ result = lockfilegems.result["from_git"].version
42
42
  assert_equal(Gem::Version.new("1.0.3"), result)
43
- result = lockfilegems.result["dep_from_git"][0].version
43
+ result = lockfilegems.result["dep_from_git"].version
44
44
  assert_equal(Gem::Version.new("1.0.0"), result)
45
45
  end
46
46
 
47
- def test_get_rubygems_dependencies
48
- lockfilegems = LockfileGemsTest.new
49
- lockfilegems.execute
50
- result = lockfilegems.result["test"][0].dependencies
51
- assert(result)
52
- result = lockfilegems.result["test"][0].dependencies.length
53
- assert_equal(3, result)
54
- result = lockfilegems.result["test"][0].dependencies
55
- assert_equal(
56
- Gem::Dependency.new("test2", Gem::Requirement.new(["= 1.2.3"])),
57
- result[0])
58
- assert_equal(
59
- Gem::Dependency.new("test3", Gem::Requirement.new(["= 1.2.3"])),
60
- result[1])
61
- assert_equal(
62
- Gem::Dependency.new("test4", Gem::Requirement.new(["= 1.2.3"])),
63
- result[2])
64
- end
65
-
66
- def test_from_git
67
- lockfilegems = LockfileGemsTest.new
68
- lockfilegems.execute
69
- result = lockfilegems.result["from_git"][0].gems_url
70
- assert(result.start_with?("git://"))
71
- assert(lockfilegems.result["from_git"][0].from_git?)
72
- end
73
47
  end
74
48
 
75
49
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gems-status
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.49.0
4
+ version: 0.50.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-11 00:00:00.000000000 Z
12
+ date: 2013-05-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: xml-simple
@@ -185,37 +185,32 @@ files:
185
185
  - lib/gems-status/sources.rb
186
186
  - lib/gems-status/checkers.rb
187
187
  - lib/gems-status/gem_simple.rb
188
- - lib/gems-status/sources/ruby_gems_gems.rb
189
188
  - lib/gems-status/sources/lockfile_gems.rb
190
- - lib/gems-status/sources/obs_gems.rb
191
189
  - lib/gems-status/sources/ruby_gems_gems_gem_simple.rb
192
190
  - lib/gems-status/gems_command.rb
193
- - lib/gems-status/html_view.rb
191
+ - lib/gems-status/text_view.rb
194
192
  - lib/gems-status/gems_status_metadata.rb
195
193
  - lib/gems-status/utils.rb
196
194
  - lib/gems-status/checkers/print_gem_versions.rb
197
- - lib/gems-status/checkers/not_native_gem_checker.rb
198
- - lib/gems-status/checkers/exists_in_upstream.rb
195
+ - lib/gems-status/checkers/has_a_license.rb
199
196
  - lib/gems-status/checkers/scm_security_messages.rb
200
197
  - lib/gems-status/checkers/security_alert.rb
201
- - lib/gems-status/checkers/not_rails_checker.rb
198
+ - lib/gems-status/checkers/is_not_gpl.rb
202
199
  - lib/gems-status/checkers/scm_check_messages.rb
203
200
  - lib/gems-status/checkers/svn_check_messages.rb
204
201
  - lib/gems-status/checkers/not_a_security_alert_checker.rb
205
202
  - lib/gems-status/checkers/gem_checker.rb
206
203
  - lib/gems-status/checkers/hg_check_messages.rb
207
204
  - lib/gems-status/checkers/git_check_messages.rb
205
+ - lib/gems-status/checkers/is_rubygems.rb
208
206
  - lib/gems-status/gems_composite_command.rb
209
207
  - bin/gems-status
210
- - test/test-not_rails_checker.rb
211
208
  - test/Gemfile
212
209
  - test/test-gems_composite_command.rb
213
210
  - test/Gemfile.lock
214
211
  - test/test-gems_command.rb
215
212
  - test/Gemfile.lock.test
216
213
  - test/test-utils.rb
217
- - test/test-ruby_gems_gems.rb
218
- - test/test-obs_gems.rb
219
214
  - test/test-helper.rb
220
215
  - test/test-lockfile_gems.rb
221
216
  - VERSION
@@ -232,18 +227,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
232
227
  - - ! '>='
233
228
  - !ruby/object:Gem::Version
234
229
  version: '0'
235
- segments:
236
- - 0
237
- hash: 1647439834923323251
238
230
  required_rubygems_version: !ruby/object:Gem::Requirement
239
231
  none: false
240
232
  requirements:
241
233
  - - ! '>='
242
234
  - !ruby/object:Gem::Version
243
235
  version: '0'
244
- segments:
245
- - 0
246
- hash: 1647439834923323251
247
236
  requirements: []
248
237
  rubyforge_project:
249
238
  rubygems_version: 1.8.25
@@ -1,25 +0,0 @@
1
- require 'rubygems'
2
- require 'open-uri'
3
- require 'gems-status/checkers/gem_checker'
4
- require 'gems-status/utils'
5
-
6
- module GemsStatus
7
-
8
- class ExistsInUpstream < GemChecker
9
- def check?(gem)
10
- Utils::log_debug("Looking for #{gem.name}")
11
- result = nil
12
- gem_uri = "#{gem.gems_url}/#{gem.name}-#{gem.version}.gem"
13
- begin
14
- source = open(gem_uri)
15
- return true
16
- rescue
17
- return false
18
- end
19
- end
20
- def description
21
- "This gem does not exist in upstream: "
22
- end
23
- end
24
-
25
- end
@@ -1,44 +0,0 @@
1
- require 'rubygems/format'
2
- require 'rubygems/old_format'
3
- require 'open-uri'
4
- require 'gems-status/checkers/gem_checker'
5
-
6
- module GemsStatus
7
-
8
- class NotNativeGemChecker < GemChecker
9
- def check?(gem)
10
- result = nil
11
- gem_uri = URI.parse("#{gem.gems_url}/#{gem.name}-#{gem.version}.gem" )
12
- uri_debug = gem_uri.clone
13
- uri_debug.password = "********" if uri_debug.password
14
- Utils::log_debug "download #{@name} from #{uri_debug}"
15
- begin
16
- if gem_uri.user && gem_uri.password
17
- source = open(gem_uri.scheme + "://" + gem_uri.host + "/" + gem_uri.path,
18
- Gem.binary_mode,
19
- :http_basic_authentication=>[gem_uri.user, gem_uri.password]) do |io|
20
- result = Gem::Format.from_io io
21
- end
22
- else
23
- source = open(gem_uri, Gem.binary_mode) do |io|
24
- result = Gem::Format.from_io io
25
- end
26
- end
27
- rescue IOError
28
- #bug on open-uri:137 on closing strings
29
- #it should be
30
- #io.close if io && !io.closed?
31
- #or is a bug on rubygems???
32
- rescue => e
33
- Utils::log_error(gem.name, "There was a problem opening #{gem_uri} #{e.class} #{e.message}")
34
- end
35
- return false unless result
36
- return result.spec.extensions.empty?
37
- end
38
-
39
- def description
40
- "This gem is a native gem or could not get specs: "
41
- end
42
- end
43
-
44
- end
@@ -1,25 +0,0 @@
1
- require 'rubygems/format'
2
- require 'rubygems/old_format'
3
- require 'open-uri'
4
- require 'gems-status/checkers/gem_checker'
5
-
6
- module GemsStatus
7
-
8
- class NotRailsChecker < GemChecker
9
- RAILS_GEMS = ["rails", "railties","activesupport"]
10
- def check?(gem)
11
- return false if !gem.dependencies
12
- gem.dependencies.each do |dep|
13
- if RAILS_GEMS.include?(dep.name)
14
- return false
15
- end
16
- end
17
- return true
18
- end
19
-
20
- def description
21
- "This gem depends on rails or could not get spec: "
22
- end
23
- end
24
-
25
- end