bullet 4.13.2 → 4.14.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -6
- data/Gemfile.rails-4.0 +1 -1
- data/Gemfile.rails-4.1 +1 -1
- data/Gemfile.rails-4.2 +1 -1
- data/lib/bullet/active_record42.rb +24 -3
- data/lib/bullet/ext/object.rb +1 -1
- data/lib/bullet/rack.rb +3 -4
- data/lib/bullet/version.rb +1 -1
- data/spec/bullet/notification/base_spec.rb +2 -27
- data/spec/bullet/notification/n_plus_one_query_spec.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb37955eb9271242e6c93d070639487d27c41cc4
|
4
|
+
data.tar.gz: 3dcfaee4517be454ae076b8707b479357aef4810
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aad803335d34af96636af55b2db42e93770c1d989485bad7bcd6a5ac6b78c1cd95d5c133913d2fb606dd9cfedec078785a83d175dac42ebd408595866b791679
|
7
|
+
data.tar.gz: e53e36ef7782a6e94079b128eaebecde19501ce26c0204dd35dbc7df53b81313d0f8fa22c0a445c1f10f5f163cf23afcaa29c998279963667ca7b7f34cdc7c66
|
data/CHANGELOG.md
CHANGED
@@ -1,13 +1,10 @@
|
|
1
1
|
# Next Release
|
2
2
|
|
3
|
-
## 4.
|
3
|
+
## 4.14.0 (10/03/2014)
|
4
4
|
|
5
|
-
*
|
5
|
+
* Support rails 4.2
|
6
6
|
* Polish notification output
|
7
|
-
|
8
|
-
## 4.13.1
|
9
|
-
|
10
|
-
* Fix swallow exception issue
|
7
|
+
* Fix warning: `*' interpreted as argument prefix
|
11
8
|
|
12
9
|
## 4.13.0 (07/19/2014)
|
13
10
|
|
data/Gemfile.rails-4.0
CHANGED
data/Gemfile.rails-4.1
CHANGED
data/Gemfile.rails-4.2
CHANGED
@@ -85,7 +85,18 @@ module Bullet
|
|
85
85
|
alias_method :origin_load_target, :load_target
|
86
86
|
def load_target
|
87
87
|
Bullet::Detector::NPlusOneQuery.call_association(@owner, @reflection.name) unless @inversed
|
88
|
-
origin_load_target
|
88
|
+
records = origin_load_target
|
89
|
+
|
90
|
+
if records.first.class.name !~ /^HABTM_/
|
91
|
+
if records.size > 1
|
92
|
+
Bullet::Detector::NPlusOneQuery.add_possible_objects(records)
|
93
|
+
Bullet::Detector::CounterCache.add_possible_objects(records)
|
94
|
+
elsif records.size == 1
|
95
|
+
Bullet::Detector::NPlusOneQuery.add_impossible_object(records.first)
|
96
|
+
Bullet::Detector::CounterCache.add_impossible_object(records.first)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
records
|
89
100
|
end
|
90
101
|
|
91
102
|
alias_method :origin_empty?, :empty?
|
@@ -115,11 +126,21 @@ module Bullet
|
|
115
126
|
end
|
116
127
|
|
117
128
|
::ActiveRecord::Associations::HasManyAssociation.class_eval do
|
118
|
-
alias_method :
|
129
|
+
alias_method :origin_many_empty?, :empty?
|
130
|
+
def empty?
|
131
|
+
Thread.current[:bullet_collection_empty] = true
|
132
|
+
result = origin_many_empty?
|
133
|
+
Thread.current[:bullet_collection_empty] = nil
|
134
|
+
Bullet::Detector::NPlusOneQuery.call_association(@owner, @reflection.name)
|
135
|
+
result
|
136
|
+
end
|
119
137
|
|
138
|
+
alias_method :origin_has_cached_counter?, :has_cached_counter?
|
120
139
|
def has_cached_counter?(reflection = reflection())
|
121
140
|
result = origin_has_cached_counter?(reflection)
|
122
|
-
|
141
|
+
if !result && !Thread.current[:bullet_collection_empty]
|
142
|
+
Bullet::Detector::CounterCache.add_counter_cache(owner, reflection.name)
|
143
|
+
end
|
123
144
|
result
|
124
145
|
end
|
125
146
|
end
|
data/lib/bullet/ext/object.rb
CHANGED
data/lib/bullet/rack.rb
CHANGED
@@ -43,7 +43,7 @@ module Bullet
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def add_footer_note(response_body)
|
46
|
-
response_body << "<div #{
|
46
|
+
response_body << "<div #{footer_div_attributes}>" + Bullet.footer_info.uniq.join("<br>") + "</div>"
|
47
47
|
end
|
48
48
|
|
49
49
|
def file?(headers)
|
@@ -67,9 +67,9 @@ module Bullet
|
|
67
67
|
end
|
68
68
|
|
69
69
|
private
|
70
|
-
def
|
70
|
+
def footer_div_attributes
|
71
71
|
<<EOF
|
72
|
-
style="position: fixed; bottom: 0pt; left: 0pt; cursor: pointer; border-style: solid; border-color: rgb(153, 153, 153);
|
72
|
+
data-is-bullet-footer style="position: fixed; bottom: 0pt; left: 0pt; cursor: pointer; border-style: solid; border-color: rgb(153, 153, 153);
|
73
73
|
-moz-border-top-colors: none; -moz-border-right-colors: none; -moz-border-bottom-colors: none;
|
74
74
|
-moz-border-left-colors: none; -moz-border-image: none; border-width: 2pt 2pt 0px 0px;
|
75
75
|
padding: 5px; border-radius: 0pt 10pt 0pt 0px; background: none repeat scroll 0% 0% rgba(200, 200, 200, 0.8);
|
@@ -78,4 +78,3 @@ EOF
|
|
78
78
|
end
|
79
79
|
end
|
80
80
|
end
|
81
|
-
|
data/lib/bullet/version.rb
CHANGED
@@ -56,33 +56,8 @@ module Bullet
|
|
56
56
|
context "#body_with_caller" do
|
57
57
|
it "should return body" do
|
58
58
|
allow(subject).to receive(:body).and_return("body")
|
59
|
-
|
60
|
-
|
61
|
-
end
|
62
|
-
|
63
|
-
context "#standard_notice" do
|
64
|
-
it "should return title + body" do
|
65
|
-
allow(subject).to receive(:title).and_return("title")
|
66
|
-
allow(subject).to receive(:body).and_return("body")
|
67
|
-
expect(subject.standard_notice).to eq("title\nbody")
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
context "#full_notice" do
|
72
|
-
it "should return whoami + url + title + body_with_caller" do
|
73
|
-
allow(subject).to receive(:whoami).and_return("whoami")
|
74
|
-
allow(subject).to receive(:url).and_return("url")
|
75
|
-
allow(subject).to receive(:title).and_return("title")
|
76
|
-
allow(subject).to receive(:body_with_caller).and_return("body_with_caller")
|
77
|
-
expect(subject.full_notice).to eq("whoami\nurl\ntitle\nbody_with_caller")
|
78
|
-
end
|
79
|
-
|
80
|
-
it "should return url + title + body_with_caller" do
|
81
|
-
allow(subject).to receive(:whoami).and_return("")
|
82
|
-
allow(subject).to receive(:url).and_return("url")
|
83
|
-
allow(subject).to receive(:title).and_return("title")
|
84
|
-
allow(subject).to receive(:body_with_caller).and_return("body_with_caller")
|
85
|
-
expect(subject.full_notice).to eq("url\ntitle\nbody_with_caller")
|
59
|
+
allow(subject).to receive(:call_stack_messages).and_return("call_stack_messages")
|
60
|
+
expect(subject.body_with_caller).to eq("body\ncall_stack_messages\n")
|
86
61
|
end
|
87
62
|
end
|
88
63
|
|
@@ -5,8 +5,8 @@ module Bullet
|
|
5
5
|
describe NPlusOneQuery do
|
6
6
|
subject { NPlusOneQuery.new([["caller1", "caller2"]], Post, [:comments, :votes], "path") }
|
7
7
|
|
8
|
-
it { expect(subject.body_with_caller).to eq(" Post => [:comments, :votes]\n Add to your finder: :include => [:comments, :votes]\nN+1 Query method call stack\n caller1\n caller2") }
|
9
|
-
it { expect([ subject.body_with_caller, subject.body_with_caller]).to eq([ " Post => [:comments, :votes]\n Add to your finder: :include => [:comments, :votes]\nN+1 Query method call stack\n caller1\n caller2", " Post => [:comments, :votes]\n Add to your finder: :include => [:comments, :votes]\nN+1 Query method call stack\n caller1\n caller2" ]) }
|
8
|
+
it { expect(subject.body_with_caller).to eq(" Post => [:comments, :votes]\n Add to your finder: :include => [:comments, :votes]\nN+1 Query method call stack\n caller1\n caller2\n") }
|
9
|
+
it { expect([ subject.body_with_caller, subject.body_with_caller]).to eq([ " Post => [:comments, :votes]\n Add to your finder: :include => [:comments, :votes]\nN+1 Query method call stack\n caller1\n caller2\n", " Post => [:comments, :votes]\n Add to your finder: :include => [:comments, :votes]\nN+1 Query method call stack\n caller1\n caller2\n" ]) }
|
10
10
|
it { expect(subject.body).to eq(" Post => [:comments, :votes]\n Add to your finder: :include => [:comments, :votes]") }
|
11
11
|
it { expect(subject.title).to eq("N+1 Query in path") }
|
12
12
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bullet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Huang
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|