gems-status 0.2.7 → 0.3.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.
@@ -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