diff --git a/lib/mini_profiler/profiler.rb b/lib/mini_profiler.rb similarity index 98% rename from lib/mini_profiler/profiler.rb rename to lib/mini_profiler.rb index 674b8433..8572a3a1 100644 --- a/lib/mini_profiler/profiler.rb +++ b/lib/mini_profiler.rb @@ -1,6 +1,17 @@ # frozen_string_literal: true require 'cgi' +require 'json' +require 'erb' + +require 'mini_profiler/timer_struct' +require 'mini_profiler/storage' +require 'mini_profiler/config' +require 'mini_profiler/profiling_methods' +require 'mini_profiler/context' +require 'mini_profiler/client_settings' +require 'mini_profiler/gc_profiler' +require 'mini_profiler/snapshots_transporter' module Rack class MiniProfiler @@ -27,11 +38,11 @@ def config end def resources_root - @resources_root ||= ::File.expand_path("../../html", __FILE__) + @resources_root ||= ::File.expand_path("../html", __FILE__) end def share_template - @share_template ||= ERB.new(::File.read(::File.expand_path("../html/share.html", ::File.dirname(__FILE__)))) + @share_template ||= ERB.new(::File.read(::File.expand_path("html/share.html", ::File.dirname(__FILE__)))) end def current @@ -773,7 +784,7 @@ def get_profile_script(env) end # TODO : cache this snippet - script = ::File.read(::File.expand_path('../html/profile_handler.js', ::File.dirname(__FILE__))) + script = ::File.read(::File.expand_path('html/profile_handler.js', ::File.dirname(__FILE__))) # replace the variables settings.each do |k, v| regex = Regexp.new("\\{#{k.to_s}\\}") diff --git a/lib/mini_profiler/storage.rb b/lib/mini_profiler/storage.rb new file mode 100644 index 00000000..22ccb8c1 --- /dev/null +++ b/lib/mini_profiler/storage.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + + +module Rack + class MiniProfiler + autoload(:AbstractStore, 'mini_profiler/storage/abstract_store') + autoload(:MemcacheStore, 'mini_profiler/storage/memcache_store') + autoload(:MemoryStore, 'mini_profiler/storage/memory_store') + autoload(:RedisStore, 'mini_profiler/storage/redis_store') + autoload(:FileStore, 'mini_profiler/storage/file_store') + end +end diff --git a/lib/mini_profiler/storage/file_store.rb b/lib/mini_profiler/storage/file_store.rb index 812cec59..938f7153 100644 --- a/lib/mini_profiler/storage/file_store.rb +++ b/lib/mini_profiler/storage/file_store.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require 'securerandom' + module Rack class MiniProfiler class FileStore < AbstractStore diff --git a/lib/mini_profiler/storage/memcache_store.rb b/lib/mini_profiler/storage/memcache_store.rb index 872d167a..e14a3276 100644 --- a/lib/mini_profiler/storage/memcache_store.rb +++ b/lib/mini_profiler/storage/memcache_store.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require 'dalli' + module Rack class MiniProfiler class MemcacheStore < AbstractStore @@ -8,7 +10,6 @@ class MemcacheStore < AbstractStore MAX_RETRIES = 10 def initialize(args = nil) - require 'dalli' unless defined? Dalli args ||= {} @prefix = args[:prefix] || "MPMemcacheStore" diff --git a/lib/mini_profiler/storage/memory_store.rb b/lib/mini_profiler/storage/memory_store.rb index 52068d0b..63475761 100644 --- a/lib/mini_profiler/storage/memory_store.rb +++ b/lib/mini_profiler/storage/memory_store.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require 'securerandom' + module Rack class MiniProfiler class MemoryStore < AbstractStore diff --git a/lib/mini_profiler/storage/redis_store.rb b/lib/mini_profiler/storage/redis_store.rb index d1ec3c1d..94c6d85c 100644 --- a/lib/mini_profiler/storage/redis_store.rb +++ b/lib/mini_profiler/storage/redis_store.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true require 'digest' +require 'securerandom' +require 'redis' module Rack class MiniProfiler @@ -270,7 +272,6 @@ def prefixed_id(id) def redis @redis_connection ||= begin - require 'redis' unless defined? Redis Redis.new(@args) end end diff --git a/lib/mini_profiler/timer_struct.rb b/lib/mini_profiler/timer_struct.rb new file mode 100644 index 00000000..b3cc5168 --- /dev/null +++ b/lib/mini_profiler/timer_struct.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +require 'mini_profiler/timer_struct/base' +require 'mini_profiler/timer_struct/page' +require 'mini_profiler/timer_struct/sql' +require 'mini_profiler/timer_struct/custom' +require 'mini_profiler/timer_struct/client' +require 'mini_profiler/timer_struct/request' diff --git a/lib/mini_profiler/timer_struct/base.rb b/lib/mini_profiler/timer_struct/base.rb index 2757413d..15a46982 100644 --- a/lib/mini_profiler/timer_struct/base.rb +++ b/lib/mini_profiler/timer_struct/base.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require 'json' + module Rack class MiniProfiler module TimerStruct diff --git a/lib/mini_profiler/timer_struct/sql.rb b/lib/mini_profiler/timer_struct/sql.rb index 12397eb4..e9a78c75 100644 --- a/lib/mini_profiler/timer_struct/sql.rb +++ b/lib/mini_profiler/timer_struct/sql.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require 'erb' + module Rack class MiniProfiler diff --git a/lib/rack-mini-profiler.rb b/lib/rack-mini-profiler.rb index da864e5b..f6cc80d8 100644 --- a/lib/rack-mini-profiler.rb +++ b/lib/rack-mini-profiler.rb @@ -1,34 +1,10 @@ # frozen_string_literal: true -require 'erb' -require 'json' -require 'timeout' -require 'thread' -require 'securerandom' - require 'mini_profiler/version' require 'mini_profiler/asset_version' -require 'mini_profiler/timer_struct/base' -require 'mini_profiler/timer_struct/page' -require 'mini_profiler/timer_struct/sql' -require 'mini_profiler/timer_struct/custom' -require 'mini_profiler/timer_struct/client' -require 'mini_profiler/timer_struct/request' - -require 'mini_profiler/storage/abstract_store' -require 'mini_profiler/storage/memcache_store' -require 'mini_profiler/storage/memory_store' -require 'mini_profiler/storage/redis_store' -require 'mini_profiler/storage/file_store' +require 'mini_profiler' -require 'mini_profiler/config' -require 'mini_profiler/profiling_methods' -require 'mini_profiler/context' -require 'mini_profiler/client_settings' -require 'mini_profiler/gc_profiler' -require 'mini_profiler/snapshots_transporter' -require 'mini_profiler/profiler' require 'patches/sql_patches' require 'patches/net_patches' diff --git a/spec/integration/railtie_methods_spec.rb b/spec/integration/railtie_methods_spec.rb index 6cc655de..c79aa4ec 100644 --- a/spec/integration/railtie_methods_spec.rb +++ b/spec/integration/railtie_methods_spec.rb @@ -1,14 +1,16 @@ # frozen_string_literal: true +require 'securerandom' require 'rack/test' require File.expand_path('../../../lib/mini_profiler_rails/railtie_methods', __FILE__) -def to_seconds(array) - array.map! { |n, s, f| [n, s / 1000.0, f / 1000.0] } - array -end - describe Rack::MiniProfilerRailsMethods do + def to_seconds(array) + array.map! { |n, s, f| [n, s / 1000.0, f / 1000.0] } + array + end + + describe '#render_notification_handler' do before do allow(Process).to receive(:clock_gettime).and_return(0)