rack-mini-profiler 0.10.2 → 0.10.3
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -1
- data/README.md +14 -0
- data/lib/html/includes.css +303 -461
- data/lib/html/includes.js +16 -7
- data/lib/html/{includes.less → includes.scss} +50 -49
- data/lib/html/includes.tmpl +1 -1
- data/lib/mini_profiler/asset_version.rb +1 -1
- data/lib/mini_profiler/profiler.rb +3 -13
- data/lib/mini_profiler/storage/redis_store.rb +30 -11
- data/lib/mini_profiler/timer_struct/sql.rb +5 -2
- data/lib/mini_profiler/version.rb +1 -1
- data/lib/patches/db/mysql2.rb +1 -1
- data/lib/patches/db/oracle_enhanced.rb +1 -1
- data/lib/patches/db/pg.rb +32 -7
- data/rack-mini-profiler.gemspec +2 -3
- metadata +8 -22
@@ -56,16 +56,19 @@ module Rack
|
|
56
56
|
def trim_binds(binds)
|
57
57
|
max_len = Rack::MiniProfiler.config.max_sql_param_length
|
58
58
|
return if binds.nil? || max_len == 0
|
59
|
-
return binds if max_len.nil?
|
59
|
+
return binds.map{|(name, val)| [name, val]} if max_len.nil?
|
60
60
|
binds.map do |(name, val)|
|
61
61
|
val ||= name
|
62
62
|
if val.nil? || val == true || val == false || val.kind_of?(Numeric)
|
63
63
|
# keep these parameters as is
|
64
64
|
elsif val.kind_of?(String)
|
65
|
-
val = val[0...max_len] if max_len
|
65
|
+
val = val[0...max_len]+(max_len < val.length ? '...' : '') if max_len
|
66
66
|
else
|
67
67
|
val = val.class.name
|
68
68
|
end
|
69
|
+
if name.kind_of?(String)
|
70
|
+
name = name[0...max_len]+(max_len < name.length ? '...' : '') if max_len
|
71
|
+
end
|
69
72
|
[name, val]
|
70
73
|
end
|
71
74
|
end
|
data/lib/patches/db/mysql2.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
class Mysql2::Result
|
4
4
|
alias_method :each_without_profiling, :each
|
5
5
|
def each(*args, &blk)
|
6
|
-
return each_without_profiling(*args, &blk) unless @miniprofiler_sql_id
|
6
|
+
return each_without_profiling(*args, &blk) unless defined?(@miniprofiler_sql_id)
|
7
7
|
|
8
8
|
start = Time.now
|
9
9
|
result = each_without_profiling(*args,&blk)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class ActiveRecord::Result
|
2
2
|
alias_method :each_without_profiling, :each
|
3
3
|
def each(&blk)
|
4
|
-
return each_without_profiling(&blk) unless @miniprofiler_sql_id
|
4
|
+
return each_without_profiling(&blk) unless defined?(@miniprofiler_sql_id)
|
5
5
|
|
6
6
|
start = Time.now
|
7
7
|
result = each_without_profiling(&blk)
|
data/lib/patches/db/pg.rb
CHANGED
@@ -4,14 +4,14 @@ class PG::Result
|
|
4
4
|
alias_method :values_without_profiling, :values
|
5
5
|
|
6
6
|
def values(*args, &blk)
|
7
|
-
return values_without_profiling(*args, &blk) unless @miniprofiler_sql_id
|
7
|
+
return values_without_profiling(*args, &blk) unless defined?(@miniprofiler_sql_id)
|
8
8
|
mp_report_sql do
|
9
9
|
values_without_profiling(*args ,&blk)
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
13
|
def each(*args, &blk)
|
14
|
-
return each_without_profiling(*args, &blk) unless @miniprofiler_sql_id
|
14
|
+
return each_without_profiling(*args, &blk) unless defined?(@miniprofiler_sql_id)
|
15
15
|
mp_report_sql do
|
16
16
|
each_without_profiling(*args, &blk)
|
17
17
|
end
|
@@ -52,7 +52,7 @@ class PG::Connection
|
|
52
52
|
start = Time.now
|
53
53
|
result = exec_without_profiling(*args,&blk)
|
54
54
|
elapsed_time = SqlPatches.elapsed_time(start)
|
55
|
-
record = ::Rack::MiniProfiler.record_sql(args[0], elapsed_time)
|
55
|
+
record = ::Rack::MiniProfiler.record_sql(args[0], elapsed_time, get_binds(*args))
|
56
56
|
result.instance_variable_set("@miniprofiler_sql_id", record) if result
|
57
57
|
|
58
58
|
result
|
@@ -66,7 +66,7 @@ class PG::Connection
|
|
66
66
|
elapsed_time = SqlPatches.elapsed_time(start)
|
67
67
|
mapped = args[0]
|
68
68
|
mapped = @prepare_map[mapped] || args[0] if @prepare_map
|
69
|
-
record = ::Rack::MiniProfiler.record_sql(mapped, elapsed_time)
|
69
|
+
record = ::Rack::MiniProfiler.record_sql(mapped, elapsed_time, get_binds(mapped, args[1]))
|
70
70
|
result.instance_variable_set("@miniprofiler_sql_id", record) if result
|
71
71
|
|
72
72
|
result
|
@@ -80,23 +80,48 @@ class PG::Connection
|
|
80
80
|
elapsed_time = SqlPatches.elapsed_time(start)
|
81
81
|
mapped = args[0]
|
82
82
|
mapped = @prepare_map[mapped] || args[0] if @prepare_map
|
83
|
-
record = ::Rack::MiniProfiler.record_sql(mapped, elapsed_time)
|
83
|
+
record = ::Rack::MiniProfiler.record_sql(mapped, elapsed_time, get_binds(mapped, args[1]))
|
84
84
|
result.instance_variable_set("@miniprofiler_sql_id", record) if result
|
85
85
|
|
86
86
|
result
|
87
87
|
end
|
88
88
|
|
89
89
|
def async_exec(*args,&blk)
|
90
|
-
return
|
90
|
+
return async_exec_without_profiling(*args,&blk) unless SqlPatches.should_measure?
|
91
91
|
|
92
92
|
start = Time.now
|
93
93
|
result = exec_without_profiling(*args,&blk)
|
94
94
|
elapsed_time = SqlPatches.elapsed_time(start)
|
95
|
-
record = ::Rack::MiniProfiler.record_sql(args[0], elapsed_time)
|
95
|
+
record = ::Rack::MiniProfiler.record_sql(args[0], elapsed_time, get_binds(*args))
|
96
96
|
result.instance_variable_set("@miniprofiler_sql_id", record) if result
|
97
97
|
|
98
98
|
result
|
99
99
|
end
|
100
100
|
|
101
|
+
def get_binds(*args)
|
102
|
+
params = args[1]
|
103
|
+
return if params.nil? || params.empty?
|
104
|
+
|
105
|
+
sql = args[0]
|
106
|
+
|
107
|
+
hh = {}
|
108
|
+
arr = nil
|
109
|
+
|
110
|
+
if sql.match(/\(\$\d/)
|
111
|
+
arr = sql.match(/\((\"\w+\",?\s?)+\)/).to_s.gsub!(/[",()]/, '').split #regular selects list of names from sql query, for ex. ("name1", "name2", "name3")
|
112
|
+
end
|
113
|
+
|
114
|
+
params.each_index do |i|
|
115
|
+
if arr
|
116
|
+
hh[arr[i]]=params[i]
|
117
|
+
else
|
118
|
+
var = sql.match(/[^\s\.]+\s?=?\s\$#{i+1}/).to_s.split[0] #regular selects param name from sql query, like for ex. "name1" = $1
|
119
|
+
var.gsub!(/["]/, '') if var
|
120
|
+
hh[var]=args[1][i]
|
121
|
+
end
|
122
|
+
end
|
123
|
+
return hh
|
124
|
+
end
|
125
|
+
|
101
126
|
alias_method :query, :exec
|
102
127
|
end
|
data/rack-mini-profiler.gemspec
CHANGED
@@ -21,14 +21,13 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.add_runtime_dependency 'rack', '>= 1.2.0'
|
22
22
|
s.required_ruby_version = '>= 1.9.3'
|
23
23
|
|
24
|
-
s.add_development_dependency 'rake'
|
24
|
+
s.add_development_dependency 'rake', '< 11'
|
25
25
|
s.add_development_dependency 'rack-test'
|
26
26
|
s.add_development_dependency 'activerecord', '~> 3.0'
|
27
27
|
s.add_development_dependency 'dalli'
|
28
28
|
s.add_development_dependency 'rspec', '~> 2.14.1'
|
29
29
|
s.add_development_dependency 'redis'
|
30
|
-
s.add_development_dependency '
|
31
|
-
s.add_development_dependency 'less'
|
30
|
+
s.add_development_dependency 'sass'
|
32
31
|
s.add_development_dependency 'flamegraph'
|
33
32
|
|
34
33
|
s.require_paths = ["lib"]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-mini-profiler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Saffron
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2017-
|
13
|
+
date: 2017-05-17 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rack
|
@@ -30,16 +30,16 @@ dependencies:
|
|
30
30
|
name: rake
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- - "
|
33
|
+
- - "<"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: '
|
35
|
+
version: '11'
|
36
36
|
type: :development
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- - "
|
40
|
+
- - "<"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: '
|
42
|
+
version: '11'
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: rack-test
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -111,21 +111,7 @@ dependencies:
|
|
111
111
|
- !ruby/object:Gem::Version
|
112
112
|
version: '0'
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
|
-
name:
|
115
|
-
requirement: !ruby/object:Gem::Requirement
|
116
|
-
requirements:
|
117
|
-
- - ">="
|
118
|
-
- !ruby/object:Gem::Version
|
119
|
-
version: '0'
|
120
|
-
type: :development
|
121
|
-
prerelease: false
|
122
|
-
version_requirements: !ruby/object:Gem::Requirement
|
123
|
-
requirements:
|
124
|
-
- - ">="
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
version: '0'
|
127
|
-
- !ruby/object:Gem::Dependency
|
128
|
-
name: less
|
114
|
+
name: sass
|
129
115
|
requirement: !ruby/object:Gem::Requirement
|
130
116
|
requirements:
|
131
117
|
- - ">="
|
@@ -165,7 +151,7 @@ files:
|
|
165
151
|
- README.md
|
166
152
|
- lib/html/includes.css
|
167
153
|
- lib/html/includes.js
|
168
|
-
- lib/html/includes.
|
154
|
+
- lib/html/includes.scss
|
169
155
|
- lib/html/includes.tmpl
|
170
156
|
- lib/html/jquery.1.7.1.js
|
171
157
|
- lib/html/jquery.tmpl.js
|