gems-status 0.2.7 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -37,7 +37,7 @@ class GemsCompositeCommand < GemsCommand
37
37
  end
38
38
  @checkers.each do |check_class|
39
39
  @results[@target].sort.each do |k, gem|
40
- @checker_results[gem.name] = check_class::description + gem.name unless check_class::check?(gem)
40
+ @checker_results[gem.name].each { |g| check_class::description + gem.name unless check_class::check?(g) }
41
41
  end
42
42
  end
43
43
  end
@@ -54,28 +54,6 @@ class GemsCompositeCommand < GemsCommand
54
54
  return true
55
55
  end
56
56
 
57
- def equal_gems?(k)
58
- if !are_there_results?
59
- return false
60
- end
61
- if !common_key?(k)
62
- return false
63
- end
64
- version = @results[@target][k].version
65
- md5 = @results[@target][k].md5
66
- @results.each do |key, result|
67
- if result[k].version != version
68
- return false
69
- end
70
- if result[k].md5 != md5
71
- return false
72
- end
73
- version = result[k].version
74
- md5 = result[k].md5
75
- end
76
- return true
77
- end
78
-
79
57
  def add_comments(comments)
80
58
  @comments = comments
81
59
  end
@@ -104,10 +82,6 @@ class GemsCompositeCommand < GemsCommand
104
82
  @results[@target].sort.each do |k,v|
105
83
  if !common_key?(k) then
106
84
  Utils::log_error(k, "#{k} in #{@target} but not found in all the sources!")
107
- next
108
- end
109
- if equal_gems?(k) then
110
- next
111
85
  end
112
86
  if @checker_results[k]
113
87
  checker_results = @checker_results[k]
@@ -1,3 +1,3 @@
1
1
  module GemsStatusMetadata
2
- VERSION = "0.2.7"
2
+ VERSION = "0.3.0"
3
3
  end
data/lib/lockfile_gems.rb CHANGED
@@ -31,9 +31,11 @@ class LockfileGems < GemsCommand
31
31
  def update_gem_dependencies(gem)
32
32
  Utils::log_debug("updating dependencies for #{gem.name}")
33
33
  changes = false
34
- @result.each do |k, gem2|
35
- if gem.depends?(gem2)
36
- changes = gem.merge_deps(gem2) || changes
34
+ @result.each do |k, gems|
35
+ gems.each do |gem2|
36
+ if gem.depends?(gem2)
37
+ changes = gem.merge_deps(gem2) || changes
38
+ end
37
39
  end
38
40
  end
39
41
  return changes
@@ -41,8 +43,10 @@ class LockfileGems < GemsCommand
41
43
 
42
44
  def update_dependencies
43
45
  changes = false
44
- @result.each do |k, gem|
45
- changes = update_gem_dependencies(gem) || changes
46
+ @result.each do |k, gems|
47
+ gems.each do |gem|
48
+ changes = update_gem_dependencies(gem) || changes
49
+ end
46
50
  end
47
51
  update_dependencies if changes
48
52
  end
@@ -59,16 +63,17 @@ class LockfileGems < GemsCommand
59
63
  lockfile.specs.each do |spec|
60
64
  name = spec.name
61
65
  version = Gem::Version.create(spec.version)
62
- if @result[name] && @result[name].version != version
63
- Utils::log_error(name, "
64
- Same gem with different versions:
65
- #{name} - #{version} - #{filename}\n
66
- #{name} - #{@result[name].version} - #{@result[name].origin} ")
67
- end
68
66
  dependencies = spec.dependencies
69
67
  Utils::log_debug "dependencies for #{name} #{dependencies}"
70
- @result[name] = RubyGemsGems_GemSimple.new(name, version , '', filename,
71
- @gems_url, dependencies)
68
+ if spec.source.class.name == "Bundler::Source::Git"
69
+ Utils::log_debug "this comes from git #{name} #{version}"
70
+ gems_url = spec.source.uri
71
+ else
72
+ gems_url = @gems_url
73
+ end
74
+ @result[name] = [] if !@result[name]
75
+ @result[name] << RubyGemsGems_GemSimple.new(name, version , '', filename,
76
+ gems_url, dependencies)
72
77
  end
73
78
  update_dependencies
74
79
  end
data/lib/obs_gems.rb CHANGED
@@ -83,8 +83,8 @@ class OBSGems < GemsCommand
83
83
  name = gem_name(entry['name'])
84
84
  version = Gem::Version.new(gem_version(entry['name']))
85
85
  md5 = entry['md5']
86
- if !@result[name] || @result[name].version < version
87
- @result[name] = GemSimple.new(name, version, md5, url)
86
+ if !@result[name] || @result[name][0].version < version
87
+ @result[name] = [GemSimple.new(name, version, md5, url)]
88
88
  end
89
89
  end
90
90
  end
@@ -42,7 +42,7 @@ class RubyGemsGems < GemsCommand
42
42
  name = line[0]
43
43
  version = Gem::Version.new(line[1])
44
44
  gems_url = "#{@url}/gems"
45
- @result[name] = RubyGemsGems_GemSimple.new(name, version,'' , @url, gems_url)
45
+ @result[name] = [RubyGemsGems_GemSimple.new(name, version,'' , @url, gems_url)]
46
46
  end
47
47
  end
48
48
 
@@ -10,10 +10,20 @@ class RubyGemsGems_GemSimple < GemSimple
10
10
  if @md5
11
11
  return @md5
12
12
  end
13
- gem_uri = "#{@gems_url}/#{@name}-#{@version}.gem"
14
- Utils::log_debug "download and md5 for #{@name} from #{gem_uri}"
13
+ if from_git?
14
+ return nil
15
+ end
16
+ gem_uri = URI.parse("#{@gems_url}/#{@name}-#{@version}.gem")
17
+ uri_debug = gem_uri.clone
18
+ uri_debug.password = "********" if uri_debug.password
19
+ Utils::log_debug "download and md5 for #{@name} from #{uri_debug}"
15
20
  begin
16
- source = open(gem_uri)
21
+ if gem_uri.user && gem_uri.password
22
+ source = open(gem_uri.scheme + "://" + gem_uri.host + "/" + gem_uri.path,
23
+ :http_basic_authentication=>[gem_uri.user, gem_uri.password])
24
+ else
25
+ source = open(gem_uri)
26
+ end
17
27
  @md5 = Digest::MD5.hexdigest(source.read)
18
28
  return @md5
19
29
  rescue
@@ -21,5 +31,9 @@ class RubyGemsGems_GemSimple < GemSimple
21
31
  end
22
32
  return nil
23
33
  end
34
+
35
+ def from_git?
36
+ return @gems_url.start_with?("git://")
37
+ end
24
38
  end
25
39
 
data/lib/view_results.rb CHANGED
@@ -52,44 +52,56 @@ class ViewResults
52
52
  def ViewResults.print_results(k, results, target, checker_results, comments)
53
53
  puts "<p>"
54
54
  puts "<table width='100%' class='table_results'>"
55
- version = results[target][k].version
56
- md5 = results[target][k].md5
55
+ version = results[target][k][0].version
56
+ md5 = results[target][k][0].md5
57
57
  name_color = "info"
58
58
  html_string = ""
59
59
  results.each do |key, result|
60
- html_string << "<tr>"
61
- html_string << "<td>"
62
- html_string << "#{result[k].origin}"
63
- html_string << "</td>"
64
- html_string << "<td>"
60
+ if !result[k]
61
+ next
62
+ end
65
63
  v_color = "info"
66
64
  md5_color = "info"
67
- if version != result[k].version then
68
- v_color = "warning"
69
- name_color = "warning" if name_color != "alert"
70
- else
71
- if md5 != result[k].md5 then
65
+ result[k].each do |gem|
66
+ html_string << "<tr>"
67
+ html_string << "<td>"
68
+ html_string << "#{gem.origin}"
69
+ html_string << "</td>"
70
+ html_string << "<td>"
71
+ if gem.from_git? then
72
72
  md5_color = name_color = "alert"
73
73
  end
74
+ if version != gem.version then
75
+ v_color = "warning"
76
+ name_color = "warning" if name_color != "alert"
77
+ else
78
+ if !gem.md5 || md5 != gem.md5 then
79
+ md5_color = name_color = "alert"
80
+ end
81
+ end
82
+ html_string << "<span class='#{v_color}'>"
83
+ if !version then
84
+ html_string << "error: look error log"
85
+ end
86
+ html_string << "#{gem.version}"
87
+ html_string << "</span>"
88
+ html_string << "</td>"
89
+ html_string << "<td>"
90
+ html_string << "<span class='#{md5_color}'>"
91
+ if !gem.md5 || gem.md5.empty? then
92
+ if gem.from_git? then
93
+ html_string << "this comes from #{gem.gems_url}"
94
+ else
95
+ html_string << "error: look error log"
96
+ end
97
+ end
98
+ html_string << "#{gem.md5}"
99
+ html_string << "</span>"
100
+ html_string << "</td>"
101
+ html_string << "</tr>"
102
+ version = gem.version
103
+ md5 = gem.md5
74
104
  end
75
- html_string << "<span class='#{v_color}'>"
76
- if !version then
77
- html_string << "error: look error log"
78
- end
79
- html_string << "#{result[k].version}"
80
- html_string << "</span>"
81
- html_string << "</td>"
82
- html_string << "<td>"
83
- html_string << "<span class='#{md5_color}'>"
84
- if !result[k].md5 || result[k].md5.empty? then
85
- html_string << "error: look error log"
86
- end
87
- html_string << "#{result[k].md5}"
88
- html_string << "</span>"
89
- html_string << "</td>"
90
- html_string << "</tr>"
91
- version = result[k].version
92
- md5 = result[k].md5
93
105
  end
94
106
  puts "<tr><td width='50%'><span class='#{name_color}'>#{k.upcase}</span></td><td width='10%'>version</td><td width='40%'>md5</td></tr>"
95
107
  puts html_string
@@ -1,3 +1,11 @@
1
+ GIT
2
+ remote: git://github.com/openSUSE/from_git.git
3
+ revision: 11111111
4
+ tag: 1.0.3.p1
5
+ specs:
6
+ from_git (1.0.3)
7
+ dep_from_git (1.0.0)
8
+
1
9
  GEM
2
10
  remote: http://rubygems.org/
3
11
  specs:
@@ -9,10 +17,12 @@ GEM
9
17
  test4 (1.2.3)
10
18
  test4 (1.2.3)
11
19
  test2 (1.2.3)
20
+ dep_from_git (1.0.0)
12
21
 
13
22
  PLATFORMS
14
23
  ruby
15
24
 
16
25
  DEPENDENCIES
17
26
  test
27
+ from_git (= 1.0.3)!
18
28
 
@@ -45,53 +45,4 @@ class TestGemsCompositeCommand < Test::Unit::TestCase
45
45
  result = gemscompositecommand.common_key?("a key")
46
46
  assert(result)
47
47
  end
48
- def test_equals_when_no_common_keys
49
- gemscompositecommand = GemsCompositeCommandTest.new('id')
50
- gem1 = GemSimple.new("foo_name","foo_version","md5","origin1")
51
- gem2 = GemSimple.new("foo_name","foo_version","md5","origin2")
52
- gem3 = GemSimple.new("bar_name","bar_version","md5","origin3")
53
- gemscompositecommand.results['id']= {"foo"=>gem1}
54
- gemscompositecommand.results['id2']= {"foo"=>gem2}
55
- gemscompositecommand.results['id3']= {"bar"=>gem3}
56
- result = gemscompositecommand.equal_gems?("foo")
57
- assert(!result)
58
- end
59
- def test_equals_when_version_not_equals
60
- gemscompositecommand = GemsCompositeCommandTest.new('id')
61
- gem1 = GemSimple.new("foo_name","foo_version","md5","origin1")
62
- gem2 = GemSimple.new("foo_name","foo_version","md5","origin2")
63
- gem3 = GemSimple.new("foo_name","bar_version","md5","origin3")
64
- gemscompositecommand.results['id']= {"foo"=>gem1}
65
- gemscompositecommand.results['id2']= {"foo"=>gem2}
66
- gemscompositecommand.results['id3']= {"foo"=>gem3}
67
- result = gemscompositecommand.equal_gems?("foo")
68
- assert(!result)
69
- end
70
- def test_equals_when_md5_not_equals
71
- gemscompositecommand = GemsCompositeCommandTest.new('id')
72
- gem1 = GemSimple.new("foo_name","foo_version","md5","origin1")
73
- gem2 = GemSimple.new("foo_name","foo_version","md5","origin2")
74
- gem3 = GemSimple.new("foo_name","foo_version","md5_2","origin3")
75
- gemscompositecommand.results['id']= {"foo"=>gem1}
76
- gemscompositecommand.results['id2']= {"foo"=>gem2}
77
- gemscompositecommand.results['id3']= {"foo"=>gem3}
78
- result = gemscompositecommand.equal_gems?("foo")
79
- assert(!result)
80
- end
81
- def test_equals_when_equals
82
- gemscompositecommand = GemsCompositeCommandTest.new('id')
83
- gem1 = GemSimple.new("foo_name","foo_version","md5","origin1")
84
- gem2 = GemSimple.new("foo_name","foo_version","md5","origin2")
85
- gem3 = GemSimple.new("foo_name","foo_version","md5","origin3")
86
- gemscompositecommand.results['id']= {"foo"=>gem1}
87
- gemscompositecommand.results['id2']= {"foo"=>gem2}
88
- gemscompositecommand.results['id3']= {"foo"=>gem3}
89
- result = gemscompositecommand.equal_gems?("foo")
90
- assert(result)
91
- end
92
- def test_equals_when_no_results
93
- gemscompositecommand = GemsCompositeCommandTest.new('id')
94
- result = gemscompositecommand.equal_gems?("foo")
95
- assert(!result)
96
- end
97
48
  end
@@ -17,33 +17,37 @@ class TestLockfileGems < Test::Unit::TestCase
17
17
  def test_get_rubygems_names
18
18
  lockfilegems = LockfileGemsTest.new
19
19
  lockfilegems.execute
20
- assert(lockfilegems.result.length == 4)
21
- result = lockfilegems.result["test"].name
20
+ assert(lockfilegems.result.length == 6)
21
+ result = lockfilegems.result["test"][0].name
22
22
  assert_equal("test",result)
23
- result = lockfilegems.result["test"].version
23
+ result = lockfilegems.result["test"][0].version
24
24
  assert_equal(Gem::Version.new("0.8.6"), result)
25
- result = lockfilegems.result["test2"].name
25
+ result = lockfilegems.result["test2"][0].name
26
26
  assert_equal("test2",result)
27
- result = lockfilegems.result["test2"].version
27
+ result = lockfilegems.result["test2"][0].version
28
28
  assert_equal(Gem::Version.new("1.2.3"), result)
29
- result = lockfilegems.result["test3"].name
29
+ result = lockfilegems.result["test3"][0].name
30
30
  assert_equal("test3",result)
31
- result = lockfilegems.result["test3"].version
31
+ result = lockfilegems.result["test3"][0].version
32
32
  assert_equal(Gem::Version.new("1.2.3"), result)
33
- result = lockfilegems.result["test4"].name
33
+ result = lockfilegems.result["test4"][0].name
34
34
  assert_equal("test4",result)
35
- result = lockfilegems.result["test4"].version
35
+ result = lockfilegems.result["test4"][0].version
36
36
  assert_equal(Gem::Version.new("1.2.3"), result)
37
+ result = lockfilegems.result["from_git"][0].version
38
+ assert_equal(Gem::Version.new("1.0.3"), result)
39
+ result = lockfilegems.result["dep_from_git"][0].version
40
+ assert_equal(Gem::Version.new("1.0.0"), result)
37
41
  end
38
42
 
39
43
  def test_get_rubygems_dependencies
40
44
  lockfilegems = LockfileGemsTest.new
41
45
  lockfilegems.execute
42
- result = lockfilegems.result["test"].dependencies
46
+ result = lockfilegems.result["test"][0].dependencies
43
47
  assert(result)
44
- result = lockfilegems.result["test"].dependencies.length
48
+ result = lockfilegems.result["test"][0].dependencies.length
45
49
  assert_equal(3, result)
46
- result = lockfilegems.result["test"].dependencies
50
+ result = lockfilegems.result["test"][0].dependencies
47
51
  assert_equal(
48
52
  Gem::Dependency.new("test2", Gem::Requirement.new(["= 1.2.3"])),
49
53
  result[0])
@@ -54,5 +58,13 @@ class TestLockfileGems < Test::Unit::TestCase
54
58
  Gem::Dependency.new("test4", Gem::Requirement.new(["= 1.2.3"])),
55
59
  result[2])
56
60
  end
61
+
62
+ def test_from_git
63
+ lockfilegems = LockfileGemsTest.new
64
+ lockfilegems.execute
65
+ result = lockfilegems.result["from_git"][0].gems_url
66
+ assert(result.start_with?("git://"))
67
+ assert(lockfilegems.result["from_git"][0].from_git?)
68
+ end
57
69
  end
58
70
 
@@ -25,11 +25,11 @@ class TestObsGems < Test::Unit::TestCase
25
25
  def test_get_rubygem_data
26
26
  obsgems = OBSGemsTest.new
27
27
  obsgems.execute
28
- result = obsgems.result["test"].name
28
+ result = obsgems.result["test"][0].name
29
29
  assert_equal("test", result)
30
- result = obsgems.result["test"].version
30
+ result = obsgems.result["test"][0].version
31
31
  assert_equal(Gem::Version.new("0.8.6"), result)
32
- result = obsgems.result["test"].md5
32
+ result = obsgems.result["test"][0].md5
33
33
  assert_equal("123", result)
34
34
  end
35
35
  end
@@ -19,9 +19,9 @@ class TestRubyGemsGems < Test::Unit::TestCase
19
19
  rubygemsgems = RubyGemsGemsTest.new
20
20
  rubygemsgems.execute
21
21
  rubygemsgems.result.each {|k,v| puts "k: #{k} v: #{v}"}
22
- result = rubygemsgems.result["test"].name
22
+ result = rubygemsgems.result["test"][0].name
23
23
  assert_equal("test",result)
24
- result = rubygemsgems.result["test"].version
24
+ result = rubygemsgems.result["test"][0].version
25
25
  assert_equal(Gem::Version.new("0.8.6"), result)
26
26
  end
27
27
  end
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: 25
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 2
9
- - 7
10
- version: 0.2.7
8
+ - 3
9
+ - 0
10
+ version: 0.3.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: 2012-02-10 00:00:00 Z
18
+ date: 2012-03-01 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: xml-simple