gems-status 0.49.0 → 0.50.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.
@@ -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