rails_cve 0.0.1

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 (59) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.travis.yml +7 -0
  4. data/Gemfile +3 -0
  5. data/MIT-LICENSE +21 -0
  6. data/README.md +116 -0
  7. data/Rakefile +34 -0
  8. data/app/models/concerns/rails_cve/entry/presentation.rb +12 -0
  9. data/app/models/concerns/rails_cve/entry/references.rb +22 -0
  10. data/app/models/concerns/rails_cve/entry/search.rb +14 -0
  11. data/app/models/concerns/rails_cve/entry/updater.rb +43 -0
  12. data/app/models/rails_cve/entry.rb +10 -0
  13. data/bin/rails +12 -0
  14. data/db/migrate/20140402144115_create_rails_cve_entries.rb +31 -0
  15. data/lib/rails_cve/engine.rb +13 -0
  16. data/lib/rails_cve/utils.rb +100 -0
  17. data/lib/rails_cve/version.rb +3 -0
  18. data/lib/rails_cve.rb +5 -0
  19. data/lib/tasks/rails_cve_tasks.rake +12 -0
  20. data/rails_cve.gemspec +31 -0
  21. data/test/dummy/Rakefile +6 -0
  22. data/test/dummy/app/assets/javascripts/application.js +13 -0
  23. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  24. data/test/dummy/app/controllers/application_controller.rb +5 -0
  25. data/test/dummy/app/helpers/application_helper.rb +2 -0
  26. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  27. data/test/dummy/bin/bundle +3 -0
  28. data/test/dummy/bin/rails +4 -0
  29. data/test/dummy/bin/rake +4 -0
  30. data/test/dummy/config/application.rb +28 -0
  31. data/test/dummy/config/boot.rb +5 -0
  32. data/test/dummy/config/database.yml +16 -0
  33. data/test/dummy/config/environment.rb +5 -0
  34. data/test/dummy/config/environments/development.rb +11 -0
  35. data/test/dummy/config/environments/production.rb +80 -0
  36. data/test/dummy/config/environments/test.rb +14 -0
  37. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  38. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  39. data/test/dummy/config/initializers/inflections.rb +16 -0
  40. data/test/dummy/config/initializers/mime_types.rb +5 -0
  41. data/test/dummy/config/initializers/secret_token.rb +12 -0
  42. data/test/dummy/config/initializers/session_store.rb +3 -0
  43. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  44. data/test/dummy/config/locales/en.yml +23 -0
  45. data/test/dummy/config/routes.rb +5 -0
  46. data/test/dummy/config.ru +4 -0
  47. data/test/dummy/db/schema.rb +28 -0
  48. data/test/dummy/public/404.html +58 -0
  49. data/test/dummy/public/422.html +58 -0
  50. data/test/dummy/public/500.html +57 -0
  51. data/test/dummy/public/favicon.ico +0 -0
  52. data/test/fixtures/vcr/allitems-header-first10.yml +147 -0
  53. data/test/fixtures/vcr/download-error.yml +31 -0
  54. data/test/fixtures/vcr/download-success.yml +58 -0
  55. data/test/models/rails_cve/entry_test.rb +16 -0
  56. data/test/models/rails_cve/utils_test.rb +76 -0
  57. data/test/support/vcr.rb +6 -0
  58. data/test/test_helper.rb +10 -0
  59. metadata +249 -0
@@ -0,0 +1,58 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://example.com/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ Accept-Ranges:
16
+ - bytes
17
+ Cache-Control:
18
+ - max-age=604800
19
+ Content-Type:
20
+ - text/html
21
+ Date:
22
+ - Mon, 07 Apr 2014 14:03:46 GMT
23
+ Etag:
24
+ - '"359670651"'
25
+ Expires:
26
+ - Mon, 14 Apr 2014 14:03:46 GMT
27
+ Last-Modified:
28
+ - Fri, 09 Aug 2013 23:54:35 GMT
29
+ Server:
30
+ - ECS (iad/19AB)
31
+ X-Cache:
32
+ - HIT
33
+ X-Ec-Custom-Error:
34
+ - '1'
35
+ Content-Length:
36
+ - '1270'
37
+ body:
38
+ encoding: UTF-8
39
+ string: "<!doctype html>\n<html>\n<head>\n <title>Example Domain</title>\n\n
40
+ \ <meta charset=\"utf-8\" />\n <meta http-equiv=\"Content-type\" content=\"text/html;
41
+ charset=utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width,
42
+ initial-scale=1\" />\n <style type=\"text/css\">\n body {\n background-color:
43
+ #f0f0f2;\n margin: 0;\n padding: 0;\n font-family: \"Open
44
+ Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n \n }\n
45
+ \ div {\n width: 600px;\n margin: 5em auto;\n padding:
46
+ 50px;\n background-color: #fff;\n border-radius: 1em;\n }\n
47
+ \ a:link, a:visited {\n color: #38488f;\n text-decoration:
48
+ none;\n }\n @media (max-width: 700px) {\n body {\n background-color:
49
+ #fff;\n }\n div {\n width: auto;\n margin:
50
+ 0 auto;\n border-radius: 0;\n padding: 1em;\n }\n
51
+ \ }\n </style> \n</head>\n\n<body>\n<div>\n <h1>Example Domain</h1>\n
52
+ \ <p>This domain is established to be used for illustrative examples in
53
+ documents. You may use this\n domain in examples without prior coordination
54
+ or asking for permission.</p>\n <p><a href=\"http://www.iana.org/domains/example\">More
55
+ information...</a></p>\n</div>\n</body>\n</html>\n"
56
+ http_version:
57
+ recorded_at: Mon, 07 Apr 2014 14:03:46 GMT
58
+ recorded_with: VCR 2.9.0
@@ -0,0 +1,16 @@
1
+ require 'test_helper'
2
+
3
+ module RailsCVE
4
+ class EntryTest < ActiveSupport::TestCase
5
+
6
+ def test_rebuild_entries
7
+ VCR.use_cassette 'allitems-header-first10' do
8
+ assert_nothing_raised do
9
+ n = Entry.rebuild_entries!
10
+ assert_equal 10, n
11
+ end
12
+ end
13
+ end
14
+
15
+ end
16
+ end
@@ -0,0 +1,76 @@
1
+ require 'test_helper'
2
+
3
+ module RailsCVE
4
+ class UtilsTest < ActiveSupport::TestCase
5
+
6
+ def setup
7
+ Entry::DATA_PATH.mkpath
8
+ end
9
+
10
+ def teardown
11
+ Entry::DATA_PATH.rmtree
12
+ end
13
+
14
+ def test_fetch_all_entries_without_block
15
+ VCR.use_cassette 'allitems-header-first10' do
16
+ entries = assert_nothing_raised do
17
+ Utils.fetch_all_entries
18
+ end
19
+
20
+ assert_kind_of Array, entries
21
+ assert_equal 10, entries.size
22
+ assert_equal 'CVE-1999-0001', entries[0][0]
23
+ assert_equal 'CVE-1999-0010', entries[-1][0]
24
+ end
25
+ end
26
+
27
+ def test_fetch_all_entries_with_block
28
+ VCR.use_cassette 'allitems-header-first10' do
29
+ entries = assert_nothing_raised do
30
+ i = -1
31
+ Utils.fetch_all_entries do |*args|
32
+ i += 1
33
+ end
34
+ end
35
+
36
+ assert_kind_of Array, entries
37
+ assert_equal 10, entries.size
38
+
39
+ 10.times do |i|
40
+ assert_equal i, entries[i]
41
+ end
42
+ end
43
+ end
44
+
45
+ def test_download_file
46
+ assert_raises UnknownTarget do
47
+ Utils.download('foo')
48
+ end
49
+
50
+ assert_raises UnknownTarget do
51
+ Utils.download('foo', to: 'tmp/foo')
52
+ end
53
+
54
+ target = Entry::DATA_PATH.join('foo')
55
+
56
+ VCR.use_cassette 'download-error' do
57
+ assert_nothing_raised do
58
+ assert !Utils.download('https://havain.to/404-route', to: target)
59
+ end
60
+ end
61
+
62
+ VCR.use_cassette 'download-success' do
63
+ assert_nothing_raised do
64
+ assert Utils.download('http://example.com', to: target)
65
+ end
66
+ end
67
+ end
68
+
69
+ def test_fetch_updates_without_block
70
+ end
71
+
72
+ def test_fetch_updates_with_block
73
+ end
74
+
75
+ end
76
+ end
@@ -0,0 +1,6 @@
1
+ require 'vcr'
2
+
3
+ VCR.configure do |c|
4
+ c.cassette_library_dir = 'test/fixtures/vcr'
5
+ c.hook_into :webmock # or :fakeweb
6
+ end
@@ -0,0 +1,10 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+
7
+ Rails.backtrace_cleaner.remove_silencers!
8
+
9
+ # Load support files
10
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
metadata ADDED
@@ -0,0 +1,249 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rails_cve
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Dominik Menke
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-04-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 4.0.4
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 4.0.4
27
+ - !ruby/object:Gem::Dependency
28
+ name: nokogiri
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: httparty
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pg
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry-byebug
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry-rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: vcr
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: webmock
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ description:
126
+ email: dominik.menke@gmail.com
127
+ executables: []
128
+ extensions: []
129
+ extra_rdoc_files: []
130
+ files:
131
+ - ".gitignore"
132
+ - ".travis.yml"
133
+ - Gemfile
134
+ - MIT-LICENSE
135
+ - README.md
136
+ - Rakefile
137
+ - app/models/concerns/rails_cve/entry/presentation.rb
138
+ - app/models/concerns/rails_cve/entry/references.rb
139
+ - app/models/concerns/rails_cve/entry/search.rb
140
+ - app/models/concerns/rails_cve/entry/updater.rb
141
+ - app/models/rails_cve/entry.rb
142
+ - bin/rails
143
+ - db/migrate/20140402144115_create_rails_cve_entries.rb
144
+ - lib/rails_cve.rb
145
+ - lib/rails_cve/engine.rb
146
+ - lib/rails_cve/utils.rb
147
+ - lib/rails_cve/version.rb
148
+ - lib/tasks/rails_cve_tasks.rake
149
+ - rails_cve.gemspec
150
+ - test/dummy/Rakefile
151
+ - test/dummy/app/assets/javascripts/application.js
152
+ - test/dummy/app/assets/stylesheets/application.css
153
+ - test/dummy/app/controllers/application_controller.rb
154
+ - test/dummy/app/helpers/application_helper.rb
155
+ - test/dummy/app/views/layouts/application.html.erb
156
+ - test/dummy/bin/bundle
157
+ - test/dummy/bin/rails
158
+ - test/dummy/bin/rake
159
+ - test/dummy/config.ru
160
+ - test/dummy/config/application.rb
161
+ - test/dummy/config/boot.rb
162
+ - test/dummy/config/database.yml
163
+ - test/dummy/config/environment.rb
164
+ - test/dummy/config/environments/development.rb
165
+ - test/dummy/config/environments/production.rb
166
+ - test/dummy/config/environments/test.rb
167
+ - test/dummy/config/initializers/backtrace_silencers.rb
168
+ - test/dummy/config/initializers/filter_parameter_logging.rb
169
+ - test/dummy/config/initializers/inflections.rb
170
+ - test/dummy/config/initializers/mime_types.rb
171
+ - test/dummy/config/initializers/secret_token.rb
172
+ - test/dummy/config/initializers/session_store.rb
173
+ - test/dummy/config/initializers/wrap_parameters.rb
174
+ - test/dummy/config/locales/en.yml
175
+ - test/dummy/config/routes.rb
176
+ - test/dummy/db/schema.rb
177
+ - test/dummy/public/404.html
178
+ - test/dummy/public/422.html
179
+ - test/dummy/public/500.html
180
+ - test/dummy/public/favicon.ico
181
+ - test/fixtures/vcr/allitems-header-first10.yml
182
+ - test/fixtures/vcr/download-error.yml
183
+ - test/fixtures/vcr/download-success.yml
184
+ - test/models/rails_cve/entry_test.rb
185
+ - test/models/rails_cve/utils_test.rb
186
+ - test/support/vcr.rb
187
+ - test/test_helper.rb
188
+ homepage: https://havain.to
189
+ licenses: []
190
+ metadata: {}
191
+ post_install_message:
192
+ rdoc_options: []
193
+ require_paths:
194
+ - lib
195
+ required_ruby_version: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
200
+ required_rubygems_version: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ requirements: []
206
+ rubyforge_project:
207
+ rubygems_version: 2.2.2
208
+ signing_key:
209
+ specification_version: 4
210
+ summary: Rails Common Vulnerability Engine
211
+ test_files:
212
+ - test/dummy/Rakefile
213
+ - test/dummy/app/assets/javascripts/application.js
214
+ - test/dummy/app/assets/stylesheets/application.css
215
+ - test/dummy/app/controllers/application_controller.rb
216
+ - test/dummy/app/helpers/application_helper.rb
217
+ - test/dummy/app/views/layouts/application.html.erb
218
+ - test/dummy/bin/bundle
219
+ - test/dummy/bin/rails
220
+ - test/dummy/bin/rake
221
+ - test/dummy/config.ru
222
+ - test/dummy/config/application.rb
223
+ - test/dummy/config/boot.rb
224
+ - test/dummy/config/database.yml
225
+ - test/dummy/config/environment.rb
226
+ - test/dummy/config/environments/development.rb
227
+ - test/dummy/config/environments/production.rb
228
+ - test/dummy/config/environments/test.rb
229
+ - test/dummy/config/initializers/backtrace_silencers.rb
230
+ - test/dummy/config/initializers/filter_parameter_logging.rb
231
+ - test/dummy/config/initializers/inflections.rb
232
+ - test/dummy/config/initializers/mime_types.rb
233
+ - test/dummy/config/initializers/secret_token.rb
234
+ - test/dummy/config/initializers/session_store.rb
235
+ - test/dummy/config/initializers/wrap_parameters.rb
236
+ - test/dummy/config/locales/en.yml
237
+ - test/dummy/config/routes.rb
238
+ - test/dummy/db/schema.rb
239
+ - test/dummy/public/404.html
240
+ - test/dummy/public/422.html
241
+ - test/dummy/public/500.html
242
+ - test/dummy/public/favicon.ico
243
+ - test/fixtures/vcr/allitems-header-first10.yml
244
+ - test/fixtures/vcr/download-error.yml
245
+ - test/fixtures/vcr/download-success.yml
246
+ - test/models/rails_cve/entry_test.rb
247
+ - test/models/rails_cve/utils_test.rb
248
+ - test/support/vcr.rb
249
+ - test/test_helper.rb