roqua-support 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f481217c2c1c02f664554bb9a968cc84a09e5f6c
4
- data.tar.gz: 9e3ad99b7e548bcb6a3070cd3014debb051a4765
3
+ metadata.gz: 5b4f2e07189d3ee1b5b4c0e6472bd3c1b4ba2c6a
4
+ data.tar.gz: 3ae9698e6c4b77a16e7ff1226cb9269e3d3f428c
5
5
  SHA512:
6
- metadata.gz: 3883e8e1cf321a2f2cd2ae9e542a57338a6de7d268643668fa8071fb3970eb258ebdf021181abb50cbb9aeb58d738d66a492c0da18cf03f76310b298e8c5433e
7
- data.tar.gz: 562bc80b0e7d6f222160c507201f2cf22ec3380cf629e50327b141972d15ffb729559c7a7dfd486b3285d82397c8ab4e961df2ca30b12d74f7fc99e66d71d641
6
+ metadata.gz: 6ab8c7979cb7a686033f05b6a0a9e64e028a94a59a6a6186a5621826e91f044dcedb0075dfe337b38c32eb623a6f45d63ff64c0b38e52bfb65bbfded5b518281
7
+ data.tar.gz: 86c8129d450c4e37237488eeef12ffc1766813b8d3b0d78762b2ec4531aec0c83cbaeb9cd4db439edaddd47cc8bd2dab90f75758797d275c050b2fddc02284e0
data/CHANGELOG.md CHANGED
@@ -1,3 +1,5 @@
1
+ * remove dubious return from ensure in activerecord extensions
2
+
1
3
  ## 0.1.5 / 2014-03-10
2
4
 
3
5
  * Make sure to raise when uniq_find_or_create cannot find a record
data/Gemfile.lock CHANGED
@@ -1,19 +1,18 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- roqua-support (0.1.6)
4
+ roqua-support (0.1.7)
5
5
  activesupport (>= 3.2, < 5.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activesupport (4.0.3)
11
- i18n (~> 0.6, >= 0.6.4)
12
- minitest (~> 4.2)
13
- multi_json (~> 1.3)
10
+ activesupport (4.1.0)
11
+ i18n (~> 0.6, >= 0.6.9)
12
+ json (~> 1.7, >= 1.7.7)
13
+ minitest (~> 5.1)
14
14
  thread_safe (~> 0.1)
15
- tzinfo (~> 0.3.37)
16
- atomic (1.1.15)
15
+ tzinfo (~> 1.1)
17
16
  celluloid (0.15.2)
18
17
  timers (~> 1.1.0)
19
18
  celluloid-io (0.15.0)
@@ -36,6 +35,7 @@ GEM
36
35
  guard (~> 2.1)
37
36
  rspec (>= 2.14, < 4.0)
38
37
  i18n (0.6.9)
38
+ json (1.8.1)
39
39
  listen (2.5.0)
40
40
  celluloid (>= 0.15.2)
41
41
  celluloid-io (>= 0.15.0)
@@ -43,8 +43,7 @@ GEM
43
43
  rb-inotify (>= 0.9)
44
44
  lumberjack (1.0.4)
45
45
  method_source (0.8.2)
46
- minitest (4.7.5)
47
- multi_json (1.9.0)
46
+ minitest (5.3.3)
48
47
  nio4r (1.0.0)
49
48
  pry (0.9.12.6)
50
49
  coderay (~> 1.0)
@@ -65,10 +64,10 @@ GEM
65
64
  ruby-progressbar (1.4.1)
66
65
  slop (3.4.7)
67
66
  thor (0.18.1)
68
- thread_safe (0.2.0)
69
- atomic (>= 1.1.7, < 2)
67
+ thread_safe (0.3.3)
70
68
  timers (1.1.0)
71
- tzinfo (0.3.39)
69
+ tzinfo (1.1.0)
70
+ thread_safe (~> 0.1)
72
71
 
73
72
  PLATFORMS
74
73
  ruby
@@ -8,10 +8,9 @@ module ActiveRecord
8
8
  # raised. When no record can be found, because for instance validations fail on create, the created object
9
9
  # containing the validation errors is returned instead.
10
10
  def self.uniq_find_or_create_by(attributes, &block)
11
- record = find_or_create_by(attributes, &block)
11
+ find_or_create_by(attributes, &block)
12
12
  rescue ActiveRecord::RecordNotUnique => exception
13
- ensure
14
- return find_by(attributes) || record || raise(exception)
13
+ find_by(attributes) || raise(exception)
15
14
  end
16
15
 
17
16
  # Use this method if you want an exception to be raised when creating a new record fails due to some validation
@@ -19,9 +18,9 @@ module ActiveRecord
19
18
  def self.uniq_find_or_create_by!(attributes, &block)
20
19
  find_or_create_by!(attributes, &block)
21
20
  rescue ActiveRecord::RecordNotUnique => exception
21
+ find_by(attributes) || raise(exception)
22
22
  rescue ActiveRecord::RecordInvalid => exception
23
- ensure
24
- return find_by(attributes) || raise(exception)
23
+ find_by(attributes) || raise(exception)
25
24
  end
26
25
  end
27
26
  end
@@ -35,14 +35,20 @@ module Roqua
35
35
  # Appsignal.send_exception(exception, parameters: parameters)
36
36
 
37
37
  if Appsignal.active?
38
- transaction = Appsignal::Transaction.create(SecureRandom.uuid, ENV.to_hash)
39
- transaction.set_tags(parameters)
40
- transaction.add_exception(exception)
41
- transaction.complete!
42
- Appsignal.agent.send_queue
38
+ # Hackety hack around stateful mess of Appsignal gem
39
+ if Appsignal::Transaction.current
40
+ Appsignal::Transaction.current.set_tags(parameters)
41
+ Appsignal::Transaction.current.add_exception(exception)
42
+ else
43
+ transaction = Appsignal::Transaction.create(SecureRandom.uuid, ENV.to_hash)
44
+ transaction.set_tags(parameters)
45
+ transaction.add_exception(exception)
46
+ transaction.complete!
47
+ Appsignal.agent.send_queue
48
+ end
43
49
  end
44
50
  end
45
51
  end
46
52
  end
47
53
  end
48
- end
54
+ end
@@ -1,5 +1,5 @@
1
1
  module Roqua
2
2
  module Support
3
- VERSION = "0.1.6"
3
+ VERSION = "0.1.7"
4
4
  end
5
5
  end
@@ -25,7 +25,7 @@ describe ActiveRecord::Base do
25
25
  end
26
26
 
27
27
  it 'returns a preexisting or created record by querying it' do
28
- allow(ActiveRecord::Base).to receive(:find_by).with(attributes).and_return record
28
+ allow(ActiveRecord::Base).to receive(:find_or_create_by).with(attributes).and_return record
29
29
  expect(ActiveRecord::Base.uniq_find_or_create_by attributes, &block).to eq(record)
30
30
  end
31
31
 
@@ -59,7 +59,7 @@ describe ActiveRecord::Base do
59
59
  end
60
60
 
61
61
  it 'returns a preexisting or created record by querying it' do
62
- allow(ActiveRecord::Base).to receive(:find_by).with(attributes).and_return record
62
+ allow(ActiveRecord::Base).to receive(:find_or_create_by!).with(attributes).and_return record
63
63
  expect(ActiveRecord::Base.uniq_find_or_create_by! attributes, &block).to eq(record)
64
64
  end
65
65
 
@@ -34,11 +34,11 @@ describe 'Error reporting' do
34
34
  let(:agent) { double("agent") }
35
35
  let(:transaction) { double("transaction") }
36
36
 
37
- it 'sends notifications to appsignal' do
37
+ it 'sends notifications to appsignal when there is no current exception' do
38
38
  stub_const("Appsignal", Module.new)
39
39
  Appsignal.stub(active?: true)
40
40
  Appsignal.stub(is_ignored_exception?: false, agent: agent)
41
- stub_const("Appsignal::Transaction", double("Transaction", create: transaction))
41
+ stub_const("Appsignal::Transaction", double("Transaction", create: transaction, current: nil))
42
42
 
43
43
  transaction.should_receive(:set_tags).with({})
44
44
  transaction.should_receive(:add_exception).with(exception)
@@ -46,6 +46,17 @@ describe 'Error reporting' do
46
46
  agent.should_receive(:send_queue)
47
47
  Roqua::Support::Errors.report exception
48
48
  end
49
+
50
+ it 'sends notifications to appsignal when there already is a current exception' do
51
+ stub_const("Appsignal", Module.new)
52
+ Appsignal.stub(active?: true)
53
+ Appsignal.stub(is_ignored_exception?: false, agent: agent)
54
+ stub_const("Appsignal::Transaction", double("Transaction", current: transaction))
55
+
56
+ transaction.should_receive(:set_tags).with({})
57
+ transaction.should_receive(:add_exception).with(exception)
58
+ Roqua::Support::Errors.report exception
59
+ end
49
60
  end
50
61
 
51
62
  it 'supports default extra params' do
@@ -57,4 +68,4 @@ describe 'Error reporting' do
57
68
  parameters: {organization: 'some_org'})
58
69
  Roqua::Support::Errors.report exception
59
70
  end
60
- end
71
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roqua-support
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marten Veldthuis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-17 00:00:00.000000000 Z
11
+ date: 2014-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
137
  version: '0'
138
138
  requirements: []
139
139
  rubyforge_project:
140
- rubygems_version: 2.2.1
140
+ rubygems_version: 2.2.2
141
141
  signing_key:
142
142
  specification_version: 4
143
143
  summary: Helper objects and proxies used by a lot of RoQua applications