gems-status 0.23.0 → 0.25.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.
Files changed (30) hide show
  1. data/lib/gems-status.rb +2 -5
  2. data/lib/gems-status/checkers.rb +11 -0
  3. data/lib/gems-status/{exists_in_upstream.rb → checkers/exists_in_upstream.rb} +1 -1
  4. data/lib/gems-status/{gem_checker.rb → checkers/gem_checker.rb} +0 -0
  5. data/lib/gems-status/{git_check_messages.rb → checkers/git_check_messages.rb} +5 -2
  6. data/lib/gems-status/{hg_check_messages.rb → checkers/hg_check_messages.rb} +1 -1
  7. data/lib/gems-status/{not_a_security_alert_checker.rb → checkers/not_a_security_alert_checker.rb} +11 -7
  8. data/lib/gems-status/{not_native_gem_checker.rb → checkers/not_native_gem_checker.rb} +1 -1
  9. data/lib/gems-status/{not_rails_checker.rb → checkers/not_rails_checker.rb} +1 -1
  10. data/lib/gems-status/{print_gem_versions.rb → checkers/print_gem_versions.rb} +0 -0
  11. data/lib/gems-status/{scm_check_messages.rb → checkers/scm_check_messages.rb} +0 -0
  12. data/lib/gems-status/{scm_security_messages.rb → checkers/scm_security_messages.rb} +0 -0
  13. data/lib/gems-status/{svn_check_messages.rb → checkers/svn_check_messages.rb} +1 -1
  14. data/lib/gems-status/gems_composite_command.rb +1 -6
  15. data/lib/gems-status/gems_status_metadata.rb +1 -1
  16. data/lib/gems-status/{view_results.rb → html_view.rb} +19 -15
  17. data/lib/gems-status/sources.rb +3 -0
  18. data/lib/gems-status/{lockfile_gems.rb → sources/lockfile_gems.rb} +1 -1
  19. data/lib/gems-status/{obs_gems.rb → sources/obs_gems.rb} +0 -0
  20. data/lib/gems-status/{ruby_gems_gems.rb → sources/ruby_gems_gems.rb} +1 -1
  21. data/lib/gems-status/{ruby_gems_gems_gem_simple.rb → sources/ruby_gems_gems_gem_simple.rb} +0 -0
  22. data/test/test-gems_command.rb +1 -1
  23. data/test/test-gems_composite_command.rb +1 -1
  24. data/test/test-lockfile_gems.rb +1 -1
  25. data/test/test-not_rails_checker.rb +6 -8
  26. data/test/test-obs_gems.rb +1 -1
  27. data/test/test-ruby_gems_gems.rb +1 -1
  28. data/test/test-utils.rb +1 -1
  29. metadata +23 -22
  30. data/test/gem_graph.png +0 -0
@@ -1,6 +1,4 @@
1
1
  #!/usr/bin/ruby
2
-
3
-
4
2
 
5
3
  require "rubygems"
6
4
  require "xmlsimple"
@@ -8,10 +6,9 @@ require "open-uri"
8
6
  require "yaml"
9
7
 
10
8
  require "gems-status/gem_simple"
11
- require "gems-status/obs_gems"
12
- require "gems-status/lockfile_gems"
13
- require "gems-status/ruby_gems_gems"
9
+ require "gems-status/sources.rb"
14
10
  require "gems-status/gems_composite_command"
11
+ require "gems-status/checkers"
15
12
 
16
13
  class GemStatus
17
14
  def initialize(conf_file)
@@ -0,0 +1,11 @@
1
+ require "gems-status/checkers/exists_in_upstream"
2
+ require "gems-status/checkers/git_check_messages"
3
+ require "gems-status/checkers/hg_check_messages"
4
+ require "gems-status/checkers/not_a_security_alert_checker"
5
+ require "gems-status/checkers/not_native_gem_checker"
6
+ require "gems-status/checkers/not_rails_checker"
7
+ require "gems-status/checkers/scm_check_messages"
8
+ require "gems-status/checkers/scm_security_messages"
9
+ require "gems-status/checkers/svn_check_messages"
10
+ require "gems-status/checkers/print_gem_versions"
11
+
@@ -1,6 +1,6 @@
1
1
  require 'rubygems'
2
2
  require 'open-uri'
3
- require 'gems-status/gem_checker'
3
+ require 'gems-status/checkers/gem_checker'
4
4
  require 'gems-status/utils'
5
5
 
6
6
  class ExistsInUpstream < GemChecker
@@ -1,8 +1,11 @@
1
1
  require "git"
2
2
 
3
- require "gems-status/scm_check_messages"
3
+ require "gems-status/checkers/scm_check_messages"
4
4
 
5
5
  class GitCheckMessages < ScmCheckMessages
6
+ # This value is the maximum log entries that git.log accepts.
7
+ # It is a magic number found through testing.
8
+ MAX_NUM_MESSAGES = 8688
6
9
 
7
10
  private
8
11
 
@@ -17,7 +20,7 @@ private
17
20
  g = Git.clone(source_repo, name)
18
21
  end
19
22
  g.pull
20
- return g.log
23
+ return g.log MAX_NUM_MESSAGES
21
24
  end
22
25
 
23
26
  def commit_key(commit)
@@ -1,6 +1,6 @@
1
1
  require "mercurial-ruby"
2
2
 
3
- require "gems-status/scm_check_messages"
3
+ require "gems-status/checkers/scm_check_messages"
4
4
 
5
5
  class HgCheckMessages < ScmCheckMessages
6
6
  def initialize
@@ -2,11 +2,11 @@ require "gmail"
2
2
  require "json"
3
3
  require "open-uri"
4
4
 
5
- require "gems-status/gem_checker"
6
- require "gems-status/git_check_messages"
7
- require "gems-status/hg_check_messages"
8
- require "gems-status/svn_check_messages"
9
- require "gems-status/scm_security_messages"
5
+ require "gems-status/checkers/gem_checker"
6
+ require "gems-status/checkers/git_check_messages"
7
+ require "gems-status/checkers/hg_check_messages"
8
+ require "gems-status/checkers/svn_check_messages"
9
+ require "gems-status/checkers/scm_security_messages"
10
10
 
11
11
  class NotASecurityAlertChecker < GemChecker
12
12
  def initialize(conf)
@@ -85,15 +85,19 @@ class NotASecurityAlertChecker < GemChecker
85
85
  "email_#{listname}_#{gem.name}_#{gem.origin}_#{email.uid}"
86
86
  end
87
87
 
88
+ def match_name(str, name)
89
+ str =~ /\b#{name}\b/
90
+ end
91
+
88
92
  def look_in_emails(gem)
89
93
  @emails.each do |listname, emails|
90
94
  emails.each do |email|
91
- if listname.include?(gem.name)
95
+ if match_name(listname, gem.name)
92
96
  @security_messages[key_for_emails(listname, gem, email)] = email.subject
93
97
  Utils::log_debug "looking for security emails: listname matches gem #{gem.name}: #{listname}"
94
98
  next
95
99
  end
96
- if email.subject.include?(gem.name)
100
+ if match_name(email.subject, gem.name)
97
101
  @security_messages[key_for_emails(listname, gem, email)] = email.subject
98
102
  Utils::log_debug "looking for security emails: subject matches gem #{gem.name}: #{email.subject}"
99
103
  next
@@ -1,7 +1,7 @@
1
1
  require 'rubygems/format'
2
2
  require 'rubygems/old_format'
3
3
  require 'open-uri'
4
- require 'gems-status/gem_checker'
4
+ require 'gems-status/checkers/gem_checker'
5
5
 
6
6
  class NotNativeGemChecker < GemChecker
7
7
  def check?(gem)
@@ -1,7 +1,7 @@
1
1
  require 'rubygems/format'
2
2
  require 'rubygems/old_format'
3
3
  require 'open-uri'
4
- require 'gems-status/gem_checker'
4
+ require 'gems-status/checkers/gem_checker'
5
5
 
6
6
  class NotRailsChecker < GemChecker
7
7
  RAILS_GEMS = ["rails", "railties","activesupport"]
@@ -1,4 +1,4 @@
1
- require "gems-status/scm_check_messages"
1
+ require "gems-status/checkers/scm_check_messages"
2
2
 
3
3
  class SvnCheckMessages < ScmCheckMessages
4
4
 
@@ -1,11 +1,6 @@
1
1
  require "gems-status/gem_simple"
2
2
  require "gems-status/gems_command"
3
- require "gems-status/not_native_gem_checker"
4
- require "gems-status/not_rails_checker"
5
- require "gems-status/exists_in_upstream"
6
- require "gems-status/view_results"
7
- require "gems-status/not_a_security_alert_checker"
8
- require "gems-status/print_gem_versions"
3
+ require "gems-status/html_view"
9
4
 
10
5
  class GemsCompositeCommand < GemsCommand
11
6
  def initialize(target)
@@ -1,3 +1,3 @@
1
1
  module GemsStatusMetadata
2
- VERSION = "0.23.0"
2
+ VERSION = "0.25.0"
3
3
  end
@@ -2,12 +2,16 @@ require 'rubygems'
2
2
  require 'gems-status/gems_status_metadata'
3
3
  require 'gems-status/utils'
4
4
 
5
- class ViewResults
6
- @@patched = []
7
- @@outdated = []
8
- @@up_to_date = []
5
+ class HTMLView
9
6
 
10
- def ViewResults.print_description(ids)
7
+ def initialize()
8
+ @patched = []
9
+ @outdated = []
10
+ @up_to_date = []
11
+ end
12
+
13
+
14
+ def print_description(ids)
11
15
  puts "
12
16
  <h1>gems-status</h1>
13
17
  <p>This is a comparison between different gem sources:</p>
@@ -54,7 +58,7 @@ class ViewResults
54
58
  "
55
59
  end
56
60
 
57
- def ViewResults.update_summary(gem_name, status)
61
+ def update_summary(gem_name, status)
58
62
  if status == "alert"
59
63
  @@patched << gem_name
60
64
  elsif status == "warning"
@@ -64,7 +68,7 @@ class ViewResults
64
68
  end
65
69
  end
66
70
 
67
- def ViewResults.print_results(k, results, target, checker_results, comments)
71
+ def print_results(k, results, target, checker_results, comments)
68
72
  puts "<p>"
69
73
  puts "<table width='100%' class='table_results'>"
70
74
  version = results[target][k][0].version
@@ -141,7 +145,7 @@ class ViewResults
141
145
  end
142
146
  end
143
147
 
144
- def ViewResults.print_head
148
+ def print_head
145
149
  puts "<html>
146
150
  <head>
147
151
  <style>
@@ -213,7 +217,7 @@ class ViewResults
213
217
  <body>"
214
218
  end
215
219
 
216
- def ViewResults.print_hash(desc, data, style, anchor = false)
220
+ def print_hash(desc, data, style, anchor = false)
217
221
  return if !data or data.length == 0
218
222
  puts "<p>"
219
223
  puts "<h2>#{desc}: #{data.length}</h2>"
@@ -229,7 +233,7 @@ class ViewResults
229
233
  puts "</p>"
230
234
  end
231
235
 
232
- def ViewResults.print_summary
236
+ def print_summary
233
237
  puts "<a name='summary'/><h1>Summary</h1>"
234
238
  puts "<p><h2>patched/errored #{@@patched.length}</h2>"
235
239
  puts "<ul>"
@@ -249,12 +253,12 @@ class ViewResults
249
253
  puts "</ul></p>"
250
254
  end
251
255
 
252
- def ViewResults.print_tail(checker_results, comments)
256
+ def print_tail(checker_results, comments)
253
257
  puts "<h1>Others</h1>"
254
- self.print_hash("comments", comments, "comment")
255
- self.print_hash("errors", Utils::errors, "errors")
256
- self.print_summary
257
- self.print_hash("checks", checker_results, "summary", true)
258
+ print_hash("comments", comments, "comment")
259
+ print_hash("errors", Utils::errors, "errors")
260
+ print_summary
261
+ print_hash("checks", checker_results, "summary", true)
258
262
  puts "<a href='error.txt'>Check log</a>"
259
263
  date = Time.now.strftime('%a %b %d %H:%M:%S %Z %Y')
260
264
  puts "<p class='footer'>run by <a href=\"https://github.com/jordimassaguerpla/gems-status\">gems-status</a> - #{date} - version: #{GemsStatusMetadata::VERSION}</p>
@@ -0,0 +1,3 @@
1
+ require "gems-status/sources/obs_gems"
2
+ require "gems-status/sources/lockfile_gems"
3
+ require "gems-status/sources/ruby_gems_gems"
@@ -4,7 +4,7 @@ require "open-uri"
4
4
  require "zlib"
5
5
 
6
6
  require "bundler"
7
- require "gems-status/ruby_gems_gems_gem_simple"
7
+ require "gems-status/sources/ruby_gems_gems_gem_simple"
8
8
  require "gems-status/gems_command"
9
9
  require "gems-status/utils"
10
10
 
@@ -3,7 +3,7 @@ require "xmlsimple"
3
3
  require "open-uri"
4
4
  require "zlib"
5
5
 
6
- require "gems-status/ruby_gems_gems_gem_simple"
6
+ require "gems-status/sources/ruby_gems_gems_gem_simple"
7
7
  require "gems-status/gems_command"
8
8
  require "gems-status/utils"
9
9
 
@@ -1,6 +1,6 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
2
  require 'test/unit'
3
- require 'gems_command'
3
+ require 'gems-status'
4
4
 
5
5
  class TestGemsCommand < Test::Unit::TestCase
6
6
  def test_gem_name_wrong_name
@@ -1,6 +1,6 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
2
  require 'test/unit'
3
- require 'gems_composite_command'
3
+ require 'gems-status'
4
4
 
5
5
  class GemsCompositeCommandTest < GemsCompositeCommand
6
6
  attr_accessor :results
@@ -1,6 +1,6 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
2
  require 'test/unit'
3
- require 'lockfile_gems'
3
+ require 'gems-status'
4
4
  require 'rubygems/dependency'
5
5
 
6
6
  class LockfileGemsTest < LockfileGems
@@ -1,20 +1,18 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
2
  require 'rubygems'
3
3
  require 'test/unit'
4
- require 'gems_command'
5
- require 'gem_simple'
6
- require 'not_rails_checker'
4
+ require 'gems-status'
7
5
 
8
6
  class TestNotRailsChecker < Test::Unit::TestCase
9
7
  def test_gem_with_no_deps
10
8
  gem = GemSimple.new("name", Gem::Version.new("1.2.3"), nil, nil, nil, nil)
11
- check = NotRailsChecker
9
+ check = NotRailsChecker.new nil
12
10
  result = check.check?(gem)
13
11
  assert(!result)
14
12
  end
15
13
  def test_gem_with_no_deps_2
16
14
  gem = GemSimple.new("name", Gem::Version.new("1.2.3"), nil, nil, nil, [])
17
- check = NotRailsChecker
15
+ check = NotRailsChecker.new nil
18
16
  result = check.check?(gem)
19
17
  assert(result)
20
18
  end
@@ -25,7 +23,7 @@ class TestNotRailsChecker < Test::Unit::TestCase
25
23
  ]
26
24
 
27
25
  gem = GemSimple.new("name", Gem::Version.new("1.2.3"), nil, nil, nil, deps)
28
- check = NotRailsChecker
26
+ check = NotRailsChecker.new nil
29
27
  result = check.check?(gem)
30
28
  assert(!result)
31
29
  end
@@ -36,7 +34,7 @@ class TestNotRailsChecker < Test::Unit::TestCase
36
34
  ]
37
35
 
38
36
  gem = GemSimple.new("name", Gem::Version.new("1.2.3"), nil, nil, nil, deps)
39
- check = NotRailsChecker
37
+ check = NotRailsChecker.new nil
40
38
  result = check.check?(gem)
41
39
  assert(result)
42
40
  end
@@ -47,7 +45,7 @@ class TestNotRailsChecker < Test::Unit::TestCase
47
45
  ]
48
46
 
49
47
  gem = GemSimple.new("name", Gem::Version.new("1.2.3"), nil, nil, nil, deps)
50
- check = NotRailsChecker
48
+ check = NotRailsChecker.new nil
51
49
  result = check.check?(gem)
52
50
  assert(!result)
53
51
  end
@@ -1,6 +1,6 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
2
  require 'test/unit'
3
- require 'obs_gems'
3
+ require 'gems-status'
4
4
 
5
5
  class OBSGemsTest < OBSGems
6
6
  attr_accessor :result
@@ -1,6 +1,6 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
2
  require 'test/unit'
3
- require 'ruby_gems_gems'
3
+ require 'gems-status'
4
4
 
5
5
  class RubyGemsGemsTest < RubyGemsGems
6
6
  def initialize
@@ -1,7 +1,7 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
2
  require 'test/unit'
3
3
  require 'rubygems'
4
- require 'utils'
4
+ require 'gems-status'
5
5
 
6
6
  class TestUtils < Test::Unit::TestCase
7
7
  def test_check_parameters_no_classname
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: 67
4
+ hash: 123
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 23
8
+ - 25
9
9
  - 0
10
- version: 0.23.0
10
+ version: 0.25.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-08-16 00:00:00 Z
18
+ date: 2012-12-14 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: xml-simple
@@ -112,26 +112,28 @@ extra_rdoc_files: []
112
112
  files:
113
113
  - LICENSE
114
114
  - lib/gems-status.rb
115
- - lib/gems-status/ruby_gems_gems.rb
116
115
  - lib/gems-status/gem_simple.rb
117
- - lib/gems-status/lockfile_gems.rb
118
- - lib/gems-status/print_gem_versions.rb
119
- - lib/gems-status/ruby_gems_gems_gem_simple.rb
120
- - lib/gems-status/not_native_gem_checker.rb
121
- - lib/gems-status/svn_check_messages.rb
116
+ - lib/gems-status/sources/ruby_gems_gems.rb
117
+ - lib/gems-status/sources/lockfile_gems.rb
118
+ - lib/gems-status/sources/ruby_gems_gems_gem_simple.rb
119
+ - lib/gems-status/sources/obs_gems.rb
120
+ - lib/gems-status/html_view.rb
121
+ - lib/gems-status/checkers/print_gem_versions.rb
122
+ - lib/gems-status/checkers/not_native_gem_checker.rb
123
+ - lib/gems-status/checkers/svn_check_messages.rb
124
+ - lib/gems-status/checkers/scm_security_messages.rb
125
+ - lib/gems-status/checkers/scm_check_messages.rb
126
+ - lib/gems-status/checkers/git_check_messages.rb
127
+ - lib/gems-status/checkers/hg_check_messages.rb
128
+ - lib/gems-status/checkers/gem_checker.rb
129
+ - lib/gems-status/checkers/exists_in_upstream.rb
130
+ - lib/gems-status/checkers/not_rails_checker.rb
131
+ - lib/gems-status/checkers/not_a_security_alert_checker.rb
122
132
  - lib/gems-status/gems_composite_command.rb
123
- - lib/gems-status/scm_security_messages.rb
124
- - lib/gems-status/scm_check_messages.rb
125
- - lib/gems-status/git_check_messages.rb
133
+ - lib/gems-status/checkers.rb
126
134
  - lib/gems-status/gems_status_metadata.rb
127
- - lib/gems-status/hg_check_messages.rb
128
- - lib/gems-status/gem_checker.rb
129
- - lib/gems-status/exists_in_upstream.rb
130
- - lib/gems-status/not_rails_checker.rb
131
- - lib/gems-status/view_results.rb
132
- - lib/gems-status/obs_gems.rb
135
+ - lib/gems-status/sources.rb
133
136
  - lib/gems-status/gems_command.rb
134
- - lib/gems-status/not_a_security_alert_checker.rb
135
137
  - lib/gems-status/utils.rb
136
138
  - bin/gems-status
137
139
  - test/Gemfile.lock.test
@@ -144,7 +146,6 @@ files:
144
146
  - test/test-obs_gems.rb
145
147
  - test/Gemfile.lock
146
148
  - test/Gemfile
147
- - test/gem_graph.png
148
149
  homepage: http://github.com/jordimassaguerpla/gems-status
149
150
  licenses: []
150
151
 
@@ -174,7 +175,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
174
175
  requirements: []
175
176
 
176
177
  rubyforge_project:
177
- rubygems_version: 1.8.15
178
+ rubygems_version: 1.8.11
178
179
  signing_key:
179
180
  specification_version: 3
180
181
  summary: compares rubygems from different sources
Binary file