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.
- data/VERSION +1 -1
- data/bin/gems-status +5 -2
- data/lib/gems-status.rb +5 -5
- data/lib/gems-status/checkers.rb +3 -3
- data/lib/gems-status/checkers/has_a_license.rb +12 -0
- data/lib/gems-status/checkers/is_not_gpl.rb +15 -0
- data/lib/gems-status/checkers/is_rubygems.rb +36 -0
- data/lib/gems-status/checkers/not_a_security_alert_checker.rb +1 -6
- data/lib/gems-status/checkers/print_gem_versions.rb +1 -7
- data/lib/gems-status/gem_simple.rb +6 -28
- data/lib/gems-status/gems_composite_command.rb +20 -75
- data/lib/gems-status/sources.rb +0 -2
- data/lib/gems-status/sources/lockfile_gems.rb +23 -40
- data/lib/gems-status/text_view.rb +40 -0
- data/lib/gems-status/utils.rb +20 -0
- data/test/Gemfile +1 -7
- data/test/Gemfile.lock +32 -62
- data/test/test-gems_composite_command.rb +0 -38
- data/test/test-helper.rb +6 -2
- data/test/test-lockfile_gems.rb +11 -37
- metadata +6 -17
- data/lib/gems-status/checkers/exists_in_upstream.rb +0 -25
- data/lib/gems-status/checkers/not_native_gem_checker.rb +0 -44
- data/lib/gems-status/checkers/not_rails_checker.rb +0 -25
- data/lib/gems-status/html_view.rb +0 -272
- data/lib/gems-status/sources/obs_gems.rb +0 -112
- data/lib/gems-status/sources/ruby_gems_gems.rb +0 -51
- data/test/test-not_rails_checker.rb +0 -56
- data/test/test-obs_gems.rb +0 -40
- data/test/test-ruby_gems_gems.rb +0 -32
data/lib/gems-status/utils.rb
CHANGED
@@ -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
data/test/Gemfile.lock
CHANGED
@@ -1,70 +1,40 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
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
|
-
|
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
data/test/test-lockfile_gems.rb
CHANGED
@@ -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
|
-
@
|
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"]
|
25
|
+
result = lockfilegems.result["test"].name
|
26
26
|
assert_equal("test",result)
|
27
|
-
result = lockfilegems.result["test"]
|
27
|
+
result = lockfilegems.result["test"].version
|
28
28
|
assert_equal(Gem::Version.new("0.8.6"), result)
|
29
|
-
result = lockfilegems.result["test2"]
|
29
|
+
result = lockfilegems.result["test2"].name
|
30
30
|
assert_equal("test2",result)
|
31
|
-
result = lockfilegems.result["test2"]
|
31
|
+
result = lockfilegems.result["test2"].version
|
32
32
|
assert_equal(Gem::Version.new("1.2.3"), result)
|
33
|
-
result = lockfilegems.result["test3"]
|
33
|
+
result = lockfilegems.result["test3"].name
|
34
34
|
assert_equal("test3",result)
|
35
|
-
result = lockfilegems.result["test3"]
|
35
|
+
result = lockfilegems.result["test3"].version
|
36
36
|
assert_equal(Gem::Version.new("1.2.3"), result)
|
37
|
-
result = lockfilegems.result["test4"]
|
37
|
+
result = lockfilegems.result["test4"].name
|
38
38
|
assert_equal("test4",result)
|
39
|
-
result = lockfilegems.result["test4"]
|
39
|
+
result = lockfilegems.result["test4"].version
|
40
40
|
assert_equal(Gem::Version.new("1.2.3"), result)
|
41
|
-
result = lockfilegems.result["from_git"]
|
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"]
|
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.
|
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-
|
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/
|
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/
|
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/
|
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
|