code_metrics 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 (53) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +3 -0
  3. data/Rakefile +33 -0
  4. data/bin/code_metrics +22 -0
  5. data/bin/code_metrics-profile +15 -0
  6. data/lib/code_metrics.rb +10 -0
  7. data/lib/code_metrics/profiler.rb +96 -0
  8. data/lib/code_metrics/railtie.rb +11 -0
  9. data/lib/code_metrics/statistics.rb +106 -0
  10. data/lib/code_metrics/statistics_calculator.rb +81 -0
  11. data/lib/code_metrics/stats_directories.rb +28 -0
  12. data/lib/code_metrics/version.rb +3 -0
  13. data/lib/tasks/statistics.rake +14 -0
  14. data/test/active_support_testing_isolation.rb +136 -0
  15. data/test/code_metrics_test.rb +7 -0
  16. data/test/dummy/README.rdoc +28 -0
  17. data/test/dummy/Rakefile +6 -0
  18. data/test/dummy/app/assets/javascripts/application.js +13 -0
  19. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  20. data/test/dummy/app/controllers/application_controller.rb +5 -0
  21. data/test/dummy/app/helpers/application_helper.rb +2 -0
  22. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  23. data/test/dummy/bin/bundle +3 -0
  24. data/test/dummy/bin/rails +4 -0
  25. data/test/dummy/bin/rake +4 -0
  26. data/test/dummy/config.ru +4 -0
  27. data/test/dummy/config/application.rb +24 -0
  28. data/test/dummy/config/boot.rb +5 -0
  29. data/test/dummy/config/database.yml +25 -0
  30. data/test/dummy/config/environment.rb +5 -0
  31. data/test/dummy/config/environments/development.rb +29 -0
  32. data/test/dummy/config/environments/production.rb +80 -0
  33. data/test/dummy/config/environments/test.rb +36 -0
  34. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  35. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  36. data/test/dummy/config/initializers/inflections.rb +16 -0
  37. data/test/dummy/config/initializers/mime_types.rb +5 -0
  38. data/test/dummy/config/initializers/secret_token.rb +12 -0
  39. data/test/dummy/config/initializers/session_store.rb +3 -0
  40. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  41. data/test/dummy/config/locales/en.yml +23 -0
  42. data/test/dummy/config/routes.rb +56 -0
  43. data/test/dummy/db/test.sqlite3 +0 -0
  44. data/test/dummy/log/test.log +309 -0
  45. data/test/dummy/public/404.html +58 -0
  46. data/test/dummy/public/422.html +58 -0
  47. data/test/dummy/public/500.html +57 -0
  48. data/test/dummy/public/favicon.ico +0 -0
  49. data/test/isolation_abstract_unit.rb +287 -0
  50. data/test/rake_test.rb +15 -0
  51. data/test/statistics_calculator_test.rb +288 -0
  52. data/test/test_helper.rb +15 -0
  53. metadata +177 -0
@@ -0,0 +1,58 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <style>
6
+ body {
7
+ background-color: #EFEFEF;
8
+ color: #2E2F30;
9
+ text-align: center;
10
+ font-family: arial, sans-serif;
11
+ }
12
+
13
+ div.dialog {
14
+ width: 25em;
15
+ margin: 4em auto 0 auto;
16
+ border: 1px solid #CCC;
17
+ border-right-color: #999;
18
+ border-left-color: #999;
19
+ border-bottom-color: #BBB;
20
+ border-top: #B00100 solid 4px;
21
+ border-top-left-radius: 9px;
22
+ border-top-right-radius: 9px;
23
+ background-color: white;
24
+ padding: 7px 4em 0 4em;
25
+ }
26
+
27
+ h1 {
28
+ font-size: 100%;
29
+ color: #730E15;
30
+ line-height: 1.5em;
31
+ }
32
+
33
+ body > p {
34
+ width: 33em;
35
+ margin: 0 auto 1em;
36
+ padding: 1em 0;
37
+ background-color: #F7F7F7;
38
+ border: 1px solid #CCC;
39
+ border-right-color: #999;
40
+ border-bottom-color: #999;
41
+ border-bottom-left-radius: 4px;
42
+ border-bottom-right-radius: 4px;
43
+ border-top-color: #DADADA;
44
+ color: #666;
45
+ box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
46
+ }
47
+ </style>
48
+ </head>
49
+
50
+ <body>
51
+ <!-- This file lives in public/404.html -->
52
+ <div class="dialog">
53
+ <h1>The page you were looking for doesn't exist.</h1>
54
+ <p>You may have mistyped the address or the page may have moved.</p>
55
+ </div>
56
+ <p>If you are the application owner check the logs for more information.</p>
57
+ </body>
58
+ </html>
@@ -0,0 +1,58 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style>
6
+ body {
7
+ background-color: #EFEFEF;
8
+ color: #2E2F30;
9
+ text-align: center;
10
+ font-family: arial, sans-serif;
11
+ }
12
+
13
+ div.dialog {
14
+ width: 25em;
15
+ margin: 4em auto 0 auto;
16
+ border: 1px solid #CCC;
17
+ border-right-color: #999;
18
+ border-left-color: #999;
19
+ border-bottom-color: #BBB;
20
+ border-top: #B00100 solid 4px;
21
+ border-top-left-radius: 9px;
22
+ border-top-right-radius: 9px;
23
+ background-color: white;
24
+ padding: 7px 4em 0 4em;
25
+ }
26
+
27
+ h1 {
28
+ font-size: 100%;
29
+ color: #730E15;
30
+ line-height: 1.5em;
31
+ }
32
+
33
+ body > p {
34
+ width: 33em;
35
+ margin: 0 auto 1em;
36
+ padding: 1em 0;
37
+ background-color: #F7F7F7;
38
+ border: 1px solid #CCC;
39
+ border-right-color: #999;
40
+ border-bottom-color: #999;
41
+ border-bottom-left-radius: 4px;
42
+ border-bottom-right-radius: 4px;
43
+ border-top-color: #DADADA;
44
+ color: #666;
45
+ box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
46
+ }
47
+ </style>
48
+ </head>
49
+
50
+ <body>
51
+ <!-- This file lives in public/422.html -->
52
+ <div class="dialog">
53
+ <h1>The change you wanted was rejected.</h1>
54
+ <p>Maybe you tried to change something you didn't have access to.</p>
55
+ </div>
56
+ <p>If you are the application owner check the logs for more information.</p>
57
+ </body>
58
+ </html>
@@ -0,0 +1,57 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style>
6
+ body {
7
+ background-color: #EFEFEF;
8
+ color: #2E2F30;
9
+ text-align: center;
10
+ font-family: arial, sans-serif;
11
+ }
12
+
13
+ div.dialog {
14
+ width: 25em;
15
+ margin: 4em auto 0 auto;
16
+ border: 1px solid #CCC;
17
+ border-right-color: #999;
18
+ border-left-color: #999;
19
+ border-bottom-color: #BBB;
20
+ border-top: #B00100 solid 4px;
21
+ border-top-left-radius: 9px;
22
+ border-top-right-radius: 9px;
23
+ background-color: white;
24
+ padding: 7px 4em 0 4em;
25
+ }
26
+
27
+ h1 {
28
+ font-size: 100%;
29
+ color: #730E15;
30
+ line-height: 1.5em;
31
+ }
32
+
33
+ body > p {
34
+ width: 33em;
35
+ margin: 0 auto 1em;
36
+ padding: 1em 0;
37
+ background-color: #F7F7F7;
38
+ border: 1px solid #CCC;
39
+ border-right-color: #999;
40
+ border-bottom-color: #999;
41
+ border-bottom-left-radius: 4px;
42
+ border-bottom-right-radius: 4px;
43
+ border-top-color: #DADADA;
44
+ color: #666;
45
+ box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
46
+ }
47
+ </style>
48
+ </head>
49
+
50
+ <body>
51
+ <!-- This file lives in public/500.html -->
52
+ <div class="dialog">
53
+ <h1>We're sorry, but something went wrong.</h1>
54
+ </div>
55
+ <p>If you are the application owner check the logs for more information.</p>
56
+ </body>
57
+ </html>
File without changes
@@ -0,0 +1,287 @@
1
+ # # Note:
2
+ # # It is important to keep this file as light as possible
3
+ # # the goal for tests that require this is to test booting up
4
+ # # rails from an empty state, so anything added here could
5
+ # # hide potential failures
6
+ # #
7
+ # # It is also good to know what is the bare minimum to get
8
+ # # Rails booted up.
9
+ # require 'fileutils'
10
+ #
11
+ # require 'bundler/setup' unless defined?(Bundler)
12
+ # require 'active_support/testing/autorun'
13
+ # require 'active_support/test_case'
14
+ #
15
+ # RAILS_FRAMEWORK_ROOT = File.expand_path("#{File.dirname(__FILE__)}/../../..")
16
+ #
17
+ # # These files do not require any others and are needed
18
+ # # to run the tests
19
+ # require "active_support/testing/isolation"
20
+ # require "active_support/core_ext/kernel/reporting"
21
+ # require 'tmpdir'
22
+ #
23
+ # module TestHelpers
24
+ # module Paths
25
+ # def app_template_path
26
+ # File.join Dir.tmpdir, 'app_template'
27
+ # end
28
+ #
29
+ # def tmp_path(*args)
30
+ # @tmp_path ||= File.realpath(Dir.mktmpdir)
31
+ # File.join(@tmp_path, *args)
32
+ # end
33
+ #
34
+ # def app_path(*args)
35
+ # tmp_path(*%w[app] + args)
36
+ # end
37
+ #
38
+ # def framework_path
39
+ # RAILS_FRAMEWORK_ROOT
40
+ # end
41
+ #
42
+ # def rails_root
43
+ # app_path
44
+ # end
45
+ # end
46
+ #
47
+ # module Rack
48
+ # def app(env = "production")
49
+ # old_env = ENV["RAILS_ENV"]
50
+ # @app ||= begin
51
+ # ENV["RAILS_ENV"] = env
52
+ # require "#{app_path}/config/environment"
53
+ # Rails.application
54
+ # end
55
+ # ensure
56
+ # ENV["RAILS_ENV"] = old_env
57
+ # end
58
+ #
59
+ # def extract_body(response)
60
+ # "".tap do |body|
61
+ # response[2].each {|chunk| body << chunk }
62
+ # end
63
+ # end
64
+ #
65
+ # def get(path)
66
+ # @app.call(::Rack::MockRequest.env_for(path))
67
+ # end
68
+ #
69
+ # def assert_welcome(resp)
70
+ # assert_equal 200, resp[0]
71
+ # assert resp[1]["Content-Type"] = "text/html"
72
+ # assert extract_body(resp).match(/Welcome aboard/)
73
+ # end
74
+ #
75
+ # def assert_success(resp)
76
+ # assert_equal 202, resp[0]
77
+ # end
78
+ #
79
+ # def assert_missing(resp)
80
+ # assert_equal 404, resp[0]
81
+ # end
82
+ #
83
+ # def assert_header(key, value, resp)
84
+ # assert_equal value, resp[1][key.to_s]
85
+ # end
86
+ #
87
+ # def assert_body(expected, resp)
88
+ # assert_equal expected, extract_body(resp)
89
+ # end
90
+ # end
91
+ #
92
+ # module Generation
93
+ # # Build an application by invoking the generator and going through the whole stack.
94
+ # def build_app(options = {})
95
+ # @prev_rails_env = ENV['RAILS_ENV']
96
+ # ENV['RAILS_ENV'] = 'development'
97
+ #
98
+ # FileUtils.rm_rf(app_path)
99
+ # FileUtils.cp_r(app_template_path, app_path)
100
+ #
101
+ # # Delete the initializers unless requested
102
+ # unless options[:initializers]
103
+ # Dir["#{app_path}/config/initializers/*.rb"].each do |initializer|
104
+ # File.delete(initializer)
105
+ # end
106
+ # end
107
+ #
108
+ # gemfile_path = "#{app_path}/Gemfile"
109
+ # if options[:gemfile].blank? && File.exist?(gemfile_path)
110
+ # File.delete gemfile_path
111
+ # end
112
+ #
113
+ # routes = File.read("#{app_path}/config/routes.rb")
114
+ # if routes =~ /(\n\s*end\s*)\Z/
115
+ # File.open("#{app_path}/config/routes.rb", 'w') do |f|
116
+ # f.puts $` + "\nmatch ':controller(/:action(/:id))(.:format)', via: :all\n" + $1
117
+ # end
118
+ # end
119
+ #
120
+ # add_to_config <<-RUBY
121
+ # config.eager_load = false
122
+ # config.secret_key_base = "3b7cd727ee24e8444053437c36cc66c4"
123
+ # config.session_store :cookie_store, key: "_myapp_session"
124
+ # config.active_support.deprecation = :log
125
+ # config.action_controller.allow_forgery_protection = false
126
+ # RUBY
127
+ # end
128
+ #
129
+ # def teardown_app
130
+ # ENV['RAILS_ENV'] = @prev_rails_env if @prev_rails_env
131
+ # end
132
+ #
133
+ # # Make a very basic app, without creating the whole directory structure.
134
+ # # This is faster and simpler than the method above.
135
+ # def make_basic_app
136
+ # require "rails"
137
+ # require "action_controller/railtie"
138
+ #
139
+ # app = Class.new(Rails::Application)
140
+ # app.config.eager_load = false
141
+ # app.config.secret_key_base = "3b7cd727ee24e8444053437c36cc66c4"
142
+ # app.config.session_store :cookie_store, key: "_myapp_session"
143
+ # app.config.active_support.deprecation = :log
144
+ #
145
+ # yield app if block_given?
146
+ # app.initialize!
147
+ #
148
+ # app.routes.draw do
149
+ # get "/" => "omg#index"
150
+ # end
151
+ #
152
+ # require 'rack/test'
153
+ # extend ::Rack::Test::Methods
154
+ # end
155
+ #
156
+ # def simple_controller
157
+ # controller :foo, <<-RUBY
158
+ # class FooController < ApplicationController
159
+ # def index
160
+ # render text: "foo"
161
+ # end
162
+ # end
163
+ # RUBY
164
+ #
165
+ # app_file 'config/routes.rb', <<-RUBY
166
+ # AppTemplate::Application.routes.draw do
167
+ # get ':controller(/:action)'
168
+ # end
169
+ # RUBY
170
+ # end
171
+ #
172
+ # class Bukkit
173
+ # attr_reader :path
174
+ #
175
+ # def initialize(path)
176
+ # @path = path
177
+ # end
178
+ #
179
+ # def write(file, string)
180
+ # path = "#{@path}/#{file}"
181
+ # FileUtils.mkdir_p(File.dirname(path))
182
+ # File.open(path, "w") {|f| f.puts string }
183
+ # end
184
+ #
185
+ # def delete(file)
186
+ # File.delete("#{@path}/#{file}")
187
+ # end
188
+ # end
189
+ #
190
+ # def engine(name)
191
+ # dir = "#{app_path}/random/#{name}"
192
+ # FileUtils.mkdir_p(dir)
193
+ #
194
+ # app = File.readlines("#{app_path}/config/application.rb")
195
+ # app.insert(2, "$:.unshift(\"#{dir}/lib\")")
196
+ # app.insert(3, "require #{name.inspect}")
197
+ #
198
+ # File.open("#{app_path}/config/application.rb", 'r+') do |f|
199
+ # f.puts app
200
+ # end
201
+ #
202
+ # Bukkit.new(dir).tap do |bukkit|
203
+ # yield bukkit if block_given?
204
+ # end
205
+ # end
206
+ #
207
+ # def script(script)
208
+ # Dir.chdir(app_path) do
209
+ # `#{Gem.ruby} #{app_path}/bin/rails #{script}`
210
+ # end
211
+ # end
212
+ #
213
+ # def add_to_config(str)
214
+ # environment = File.read("#{app_path}/config/application.rb")
215
+ # if environment =~ /(\n\s*end\s*end\s*)\Z/
216
+ # File.open("#{app_path}/config/application.rb", 'w') do |f|
217
+ # f.puts $` + "\n#{str}\n" + $1
218
+ # end
219
+ # end
220
+ # end
221
+ #
222
+ # def add_to_env_config(env, str)
223
+ # environment = File.read("#{app_path}/config/environments/#{env}.rb")
224
+ # if environment =~ /(\n\s*end\s*)\Z/
225
+ # File.open("#{app_path}/config/environments/#{env}.rb", 'w') do |f|
226
+ # f.puts $` + "\n#{str}\n" + $1
227
+ # end
228
+ # end
229
+ # end
230
+ #
231
+ # def remove_from_config(str)
232
+ # file = "#{app_path}/config/application.rb"
233
+ # contents = File.read(file)
234
+ # contents.sub!(/#{str}/, "")
235
+ # File.open(file, "w+") { |f| f.puts contents }
236
+ # end
237
+ #
238
+ # def app_file(path, contents)
239
+ # FileUtils.mkdir_p File.dirname("#{app_path}/#{path}")
240
+ # File.open("#{app_path}/#{path}", 'w') do |f|
241
+ # f.puts contents
242
+ # end
243
+ # end
244
+ #
245
+ # def remove_file(path)
246
+ # FileUtils.rm_rf "#{app_path}/#{path}"
247
+ # end
248
+ #
249
+ # def controller(name, contents)
250
+ # app_file("app/controllers/#{name}_controller.rb", contents)
251
+ # end
252
+ #
253
+ # def use_frameworks(arr)
254
+ # to_remove = [:actionmailer,
255
+ # :activerecord] - arr
256
+ # $:.reject! {|path| path =~ %r'/(#{to_remove.join('|')})/' }
257
+ # end
258
+ #
259
+ # def boot_rails
260
+ # require File.expand_path('../../../../load_paths', __FILE__)
261
+ # end
262
+ # end
263
+ # end
264
+ #
265
+ # class ActiveSupport::TestCase
266
+ # include TestHelpers::Paths
267
+ # include TestHelpers::Rack
268
+ # include TestHelpers::Generation
269
+ # end
270
+ #
271
+ # # Create a scope and build a fixture rails app
272
+ # Module.new do
273
+ # extend TestHelpers::Paths
274
+ #
275
+ # # Build a rails app
276
+ # FileUtils.rm_rf(app_template_path)
277
+ # FileUtils.mkdir(app_template_path)
278
+ #
279
+ # environment = File.expand_path('../../../../load_paths', __FILE__)
280
+ # require_environment = "-r #{environment}"
281
+ #
282
+ # `#{Gem.ruby} #{require_environment} #{RAILS_FRAMEWORK_ROOT}/railties/bin/rails new #{app_template_path} --skip-gemfile --no-rc`
283
+ # File.open("#{app_template_path}/config/boot.rb", 'w') do |f|
284
+ # f.puts "require '#{environment}'"
285
+ # f.puts "require 'rails/all'"
286
+ # end
287
+ # end unless defined?(RAILS_ISOLATED_ENGINE)