appsignal 3.0.23 → 3.0.26

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
  SHA256:
3
- metadata.gz: 98b62d656a31491de81ccd9737a85cf963b51dcf785972bc3b98483912b8861c
4
- data.tar.gz: 2f82a1a82dcbb5cd8dfb6717302b5ee546367702d9c88f8fb429fbb4ae23a93b
3
+ metadata.gz: 1c6bcdb4819657e07c66d4c1f794cc4d5efeb04afb9ef11394f0dca5129fafdc
4
+ data.tar.gz: 49d8631628c8332c35aee980eeb90003331513b449d7f21ac34acecae1961446
5
5
  SHA512:
6
- metadata.gz: 8ba24cbfece76c7124e20dbab730f6bad8727a65bde8027d2c3656de6c5f2d4f92f728e8f353abda85f179c2585f281f00960300e46289ebc821e03b0a3a9dd5
7
- data.tar.gz: 914145f0b0a6d6ade3e1c9ee5f9456b318e45914c216e4f9fa1694f725eb575c7dab78904f69b268ef61024743588b8060ddffec15df9a5ee73bf40f05997a43
6
+ metadata.gz: 82d33ac56dcf8ccbdebca4a0b88ea15046ce0acad32024289fa150073db57f9e4b7ac1d6468d7120642f1812d20516ac9b64c280d85d50db2489600d2f22abe9
7
+ data.tar.gz: 34d73a2753a0505995f47b547dbb120cc156dc25a71e3cadefaa1f367e43bed8cd38896a41777a3d399a17cd4add4501f64d4b4edea8e919944c520a85819148
@@ -1347,6 +1347,44 @@ blocks:
1347
1347
  commands:
1348
1348
  - "./support/bundler_wrapper exec rake test"
1349
1349
  - "./support/bundler_wrapper exec rake test:failure"
1350
+ - name: Ruby 3.0.3 for psych-3
1351
+ env_vars:
1352
+ - *2
1353
+ - *3
1354
+ - *4
1355
+ - *5
1356
+ - name: RUBY_VERSION
1357
+ value: 3.0.3
1358
+ - name: GEMSET
1359
+ value: psych-3
1360
+ - name: BUNDLE_GEMFILE
1361
+ value: gemfiles/psych-3.gemfile
1362
+ - name: _RUBYGEMS_VERSION
1363
+ value: latest
1364
+ - name: _BUNDLER_VERSION
1365
+ value: latest
1366
+ commands:
1367
+ - "./support/bundler_wrapper exec rake test"
1368
+ - "./support/bundler_wrapper exec rake test:failure"
1369
+ - name: Ruby 3.0.3 for psych-4
1370
+ env_vars:
1371
+ - *2
1372
+ - *3
1373
+ - *4
1374
+ - *5
1375
+ - name: RUBY_VERSION
1376
+ value: 3.0.3
1377
+ - name: GEMSET
1378
+ value: psych-4
1379
+ - name: BUNDLE_GEMFILE
1380
+ value: gemfiles/psych-4.gemfile
1381
+ - name: _RUBYGEMS_VERSION
1382
+ value: latest
1383
+ - name: _BUNDLER_VERSION
1384
+ value: latest
1385
+ commands:
1386
+ - "./support/bundler_wrapper exec rake test"
1387
+ - "./support/bundler_wrapper exec rake test:failure"
1350
1388
  - name: Ruby 3.0.3 for que
1351
1389
  env_vars:
1352
1390
  - *2
@@ -1518,7 +1556,7 @@ blocks:
1518
1556
  commands:
1519
1557
  - "./support/bundler_wrapper exec rake test"
1520
1558
  - "./support/bundler_wrapper exec rake test:failure"
1521
- - name: Ruby 3.1.0
1559
+ - name: Ruby 3.1.1
1522
1560
  dependencies:
1523
1561
  - Validation
1524
1562
  task:
@@ -1532,14 +1570,14 @@ blocks:
1532
1570
  - "./support/bundler_wrapper exec rake extension:install"
1533
1571
  epilogue: *1
1534
1572
  jobs:
1535
- - name: Ruby 3.1.0 for no_dependencies
1573
+ - name: Ruby 3.1.1 for no_dependencies
1536
1574
  env_vars:
1537
1575
  - *2
1538
1576
  - *3
1539
1577
  - *4
1540
1578
  - *5
1541
1579
  - name: RUBY_VERSION
1542
- value: 3.1.0
1580
+ value: 3.1.1
1543
1581
  - name: GEMSET
1544
1582
  value: no_dependencies
1545
1583
  - name: BUNDLE_GEMFILE
@@ -1551,9 +1589,9 @@ blocks:
1551
1589
  commands:
1552
1590
  - "./support/bundler_wrapper exec rake test"
1553
1591
  - "./support/bundler_wrapper exec rake test:failure"
1554
- - name: Ruby 3.1.0 - Gems
1592
+ - name: Ruby 3.1.1 - Gems
1555
1593
  dependencies:
1556
- - Ruby 3.1.0
1594
+ - Ruby 3.1.1
1557
1595
  task:
1558
1596
  prologue:
1559
1597
  commands:
@@ -1565,14 +1603,14 @@ blocks:
1565
1603
  - "./support/bundler_wrapper exec rake extension:install"
1566
1604
  epilogue: *1
1567
1605
  jobs:
1568
- - name: Ruby 3.1.0 for capistrano2
1606
+ - name: Ruby 3.1.1 for capistrano2
1569
1607
  env_vars:
1570
1608
  - *2
1571
1609
  - *3
1572
1610
  - *4
1573
1611
  - *5
1574
1612
  - name: RUBY_VERSION
1575
- value: 3.1.0
1613
+ value: 3.1.1
1576
1614
  - name: GEMSET
1577
1615
  value: capistrano2
1578
1616
  - name: BUNDLE_GEMFILE
@@ -1584,14 +1622,14 @@ blocks:
1584
1622
  commands:
1585
1623
  - "./support/bundler_wrapper exec rake test"
1586
1624
  - "./support/bundler_wrapper exec rake test:failure"
1587
- - name: Ruby 3.1.0 for capistrano3
1625
+ - name: Ruby 3.1.1 for capistrano3
1588
1626
  env_vars:
1589
1627
  - *2
1590
1628
  - *3
1591
1629
  - *4
1592
1630
  - *5
1593
1631
  - name: RUBY_VERSION
1594
- value: 3.1.0
1632
+ value: 3.1.1
1595
1633
  - name: GEMSET
1596
1634
  value: capistrano3
1597
1635
  - name: BUNDLE_GEMFILE
@@ -1603,14 +1641,14 @@ blocks:
1603
1641
  commands:
1604
1642
  - "./support/bundler_wrapper exec rake test"
1605
1643
  - "./support/bundler_wrapper exec rake test:failure"
1606
- - name: Ruby 3.1.0 for grape
1644
+ - name: Ruby 3.1.1 for grape
1607
1645
  env_vars:
1608
1646
  - *2
1609
1647
  - *3
1610
1648
  - *4
1611
1649
  - *5
1612
1650
  - name: RUBY_VERSION
1613
- value: 3.1.0
1651
+ value: 3.1.1
1614
1652
  - name: GEMSET
1615
1653
  value: grape
1616
1654
  - name: BUNDLE_GEMFILE
@@ -1622,14 +1660,14 @@ blocks:
1622
1660
  commands:
1623
1661
  - "./support/bundler_wrapper exec rake test"
1624
1662
  - "./support/bundler_wrapper exec rake test:failure"
1625
- - name: Ruby 3.1.0 for padrino
1663
+ - name: Ruby 3.1.1 for padrino
1626
1664
  env_vars:
1627
1665
  - *2
1628
1666
  - *3
1629
1667
  - *4
1630
1668
  - *5
1631
1669
  - name: RUBY_VERSION
1632
- value: 3.1.0
1670
+ value: 3.1.1
1633
1671
  - name: GEMSET
1634
1672
  value: padrino
1635
1673
  - name: BUNDLE_GEMFILE
@@ -1641,14 +1679,52 @@ blocks:
1641
1679
  commands:
1642
1680
  - "./support/bundler_wrapper exec rake test"
1643
1681
  - "./support/bundler_wrapper exec rake test:failure"
1644
- - name: Ruby 3.1.0 for que
1682
+ - name: Ruby 3.1.1 for psych-3
1683
+ env_vars:
1684
+ - *2
1685
+ - *3
1686
+ - *4
1687
+ - *5
1688
+ - name: RUBY_VERSION
1689
+ value: 3.1.1
1690
+ - name: GEMSET
1691
+ value: psych-3
1692
+ - name: BUNDLE_GEMFILE
1693
+ value: gemfiles/psych-3.gemfile
1694
+ - name: _RUBYGEMS_VERSION
1695
+ value: latest
1696
+ - name: _BUNDLER_VERSION
1697
+ value: latest
1698
+ commands:
1699
+ - "./support/bundler_wrapper exec rake test"
1700
+ - "./support/bundler_wrapper exec rake test:failure"
1701
+ - name: Ruby 3.1.1 for psych-4
1702
+ env_vars:
1703
+ - *2
1704
+ - *3
1705
+ - *4
1706
+ - *5
1707
+ - name: RUBY_VERSION
1708
+ value: 3.1.1
1709
+ - name: GEMSET
1710
+ value: psych-4
1711
+ - name: BUNDLE_GEMFILE
1712
+ value: gemfiles/psych-4.gemfile
1713
+ - name: _RUBYGEMS_VERSION
1714
+ value: latest
1715
+ - name: _BUNDLER_VERSION
1716
+ value: latest
1717
+ commands:
1718
+ - "./support/bundler_wrapper exec rake test"
1719
+ - "./support/bundler_wrapper exec rake test:failure"
1720
+ - name: Ruby 3.1.1 for que
1645
1721
  env_vars:
1646
1722
  - *2
1647
1723
  - *3
1648
1724
  - *4
1649
1725
  - *5
1650
1726
  - name: RUBY_VERSION
1651
- value: 3.1.0
1727
+ value: 3.1.1
1652
1728
  - name: GEMSET
1653
1729
  value: que
1654
1730
  - name: BUNDLE_GEMFILE
@@ -1660,14 +1736,14 @@ blocks:
1660
1736
  commands:
1661
1737
  - "./support/bundler_wrapper exec rake test"
1662
1738
  - "./support/bundler_wrapper exec rake test:failure"
1663
- - name: Ruby 3.1.0 for que_beta
1739
+ - name: Ruby 3.1.1 for que_beta
1664
1740
  env_vars:
1665
1741
  - *2
1666
1742
  - *3
1667
1743
  - *4
1668
1744
  - *5
1669
1745
  - name: RUBY_VERSION
1670
- value: 3.1.0
1746
+ value: 3.1.1
1671
1747
  - name: GEMSET
1672
1748
  value: que_beta
1673
1749
  - name: BUNDLE_GEMFILE
@@ -1679,14 +1755,14 @@ blocks:
1679
1755
  commands:
1680
1756
  - "./support/bundler_wrapper exec rake test"
1681
1757
  - "./support/bundler_wrapper exec rake test:failure"
1682
- - name: Ruby 3.1.0 for rails-6.1
1758
+ - name: Ruby 3.1.1 for rails-6.1
1683
1759
  env_vars:
1684
1760
  - *2
1685
1761
  - *3
1686
1762
  - *4
1687
1763
  - *5
1688
1764
  - name: RUBY_VERSION
1689
- value: 3.1.0
1765
+ value: 3.1.1
1690
1766
  - name: GEMSET
1691
1767
  value: rails-6.1
1692
1768
  - name: BUNDLE_GEMFILE
@@ -1698,14 +1774,14 @@ blocks:
1698
1774
  commands:
1699
1775
  - "./support/bundler_wrapper exec rake test"
1700
1776
  - "./support/bundler_wrapper exec rake test:failure"
1701
- - name: Ruby 3.1.0 for rails-7.0
1777
+ - name: Ruby 3.1.1 for rails-7.0
1702
1778
  env_vars:
1703
1779
  - *2
1704
1780
  - *3
1705
1781
  - *4
1706
1782
  - *5
1707
1783
  - name: RUBY_VERSION
1708
- value: 3.1.0
1784
+ value: 3.1.1
1709
1785
  - name: GEMSET
1710
1786
  value: rails-7.0
1711
1787
  - name: BUNDLE_GEMFILE
@@ -1717,14 +1793,14 @@ blocks:
1717
1793
  commands:
1718
1794
  - "./support/bundler_wrapper exec rake test"
1719
1795
  - "./support/bundler_wrapper exec rake test:failure"
1720
- - name: Ruby 3.1.0 for resque-2
1796
+ - name: Ruby 3.1.1 for resque-2
1721
1797
  env_vars:
1722
1798
  - *2
1723
1799
  - *3
1724
1800
  - *4
1725
1801
  - *5
1726
1802
  - name: RUBY_VERSION
1727
- value: 3.1.0
1803
+ value: 3.1.1
1728
1804
  - name: GEMSET
1729
1805
  value: resque-2
1730
1806
  - name: BUNDLE_GEMFILE
@@ -1736,14 +1812,14 @@ blocks:
1736
1812
  commands:
1737
1813
  - "./support/bundler_wrapper exec rake test"
1738
1814
  - "./support/bundler_wrapper exec rake test:failure"
1739
- - name: Ruby 3.1.0 for sequel
1815
+ - name: Ruby 3.1.1 for sequel
1740
1816
  env_vars:
1741
1817
  - *2
1742
1818
  - *3
1743
1819
  - *4
1744
1820
  - *5
1745
1821
  - name: RUBY_VERSION
1746
- value: 3.1.0
1822
+ value: 3.1.1
1747
1823
  - name: GEMSET
1748
1824
  value: sequel
1749
1825
  - name: BUNDLE_GEMFILE
@@ -1755,14 +1831,14 @@ blocks:
1755
1831
  commands:
1756
1832
  - "./support/bundler_wrapper exec rake test"
1757
1833
  - "./support/bundler_wrapper exec rake test:failure"
1758
- - name: Ruby 3.1.0 for sinatra
1834
+ - name: Ruby 3.1.1 for sinatra
1759
1835
  env_vars:
1760
1836
  - *2
1761
1837
  - *3
1762
1838
  - *4
1763
1839
  - *5
1764
1840
  - name: RUBY_VERSION
1765
- value: 3.1.0
1841
+ value: 3.1.1
1766
1842
  - name: GEMSET
1767
1843
  value: sinatra
1768
1844
  - name: BUNDLE_GEMFILE
@@ -1774,14 +1850,14 @@ blocks:
1774
1850
  commands:
1775
1851
  - "./support/bundler_wrapper exec rake test"
1776
1852
  - "./support/bundler_wrapper exec rake test:failure"
1777
- - name: Ruby 3.1.0 for webmachine
1853
+ - name: Ruby 3.1.1 for webmachine
1778
1854
  env_vars:
1779
1855
  - *2
1780
1856
  - *3
1781
1857
  - *4
1782
1858
  - *5
1783
1859
  - name: RUBY_VERSION
1784
- value: 3.1.0
1860
+ value: 3.1.1
1785
1861
  - name: GEMSET
1786
1862
  value: webmachine
1787
1863
  - name: BUNDLE_GEMFILE
data/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # AppSignal for Ruby gem Changelog
2
2
 
3
+ ## 3.0.26
4
+
5
+ ### Removed
6
+
7
+ - [56ec42ae](https://github.com/appsignal/appsignal-ruby/commit/56ec42ae634c5675b1769963688a8f3f22715e0e) patch - Remove Moped support as it is no longer the official Ruby Mongo driver and it's been unmaintained for 7 years.
8
+
9
+ ### Fixed
10
+
11
+ - [991ca18d](https://github.com/appsignal/appsignal-ruby/commit/991ca18dfc5b05cf34841f84c17d821a17bf7a84) patch - Fix runtime errors on YAML load with older psych versions (`< 4`) used in combination with newer Ruby version (`3.x`).
12
+
13
+ ## 3.0.25
14
+
15
+ ### Added
16
+
17
+ - [399cf790](https://github.com/appsignal/appsignal-ruby/commit/399cf79044e7c8936ab72dce420d91af4cb71d16) patch - Sanitize `ActiveRecord::RecordNotUnique` error messages to not include any database values that is not unique in the database. This ensures no personal information is sent to AppSignal through error messages from this error.
18
+
19
+ ## 3.0.24
20
+
21
+ ### Changed
22
+
23
+ - [964861f7](https://github.com/appsignal/appsignal-ruby/commit/964861f76ea7ff71f01497f116def14190bcd404) patch - Bump agent to v-f57e6cb
24
+
25
+ - Enable process metrics on Heroku and Dokku
26
+
3
27
  ## 3.0.23
4
28
 
5
29
  ### Fixed
data/Rakefile CHANGED
@@ -1,6 +1,7 @@
1
1
  require "bundler"
2
2
  require "rubygems/package_task"
3
3
  require "fileutils"
4
+ require "yaml"
4
5
 
5
6
  VERSION_MANAGERS = {
6
7
  :chruby => {
@@ -60,7 +61,7 @@ namespace :build_matrix do
60
61
  t["dependencies"] = ["Ruby #{ruby_version}"]
61
62
  end
62
63
  gemset_for_ruby(ruby, matrix).each do |gem|
63
- next if excluded_for_ruby?(gem, ruby)
64
+ next unless included_for_ruby?(matrix, gem, ruby)
64
65
 
65
66
  env = matrix["env_vars"] + [
66
67
  env_map("RUBY_VERSION", ruby_version),
@@ -134,7 +135,8 @@ namespace :build_matrix do
134
135
  out << "./support/bundler_wrapper exec rake extension:install"
135
136
  out << "rm -f gemfiles/*.gemfile.lock"
136
137
  gemset_for_ruby(ruby, matrix).each do |gem|
137
- next if excluded_for_ruby?(gem, ruby)
138
+ next unless included_for_ruby?(matrix, gem, ruby)
139
+
138
140
  gemfile = gem["gem"]
139
141
  out << "echo 'Bundling #{gemfile} in #{ruby_version}'"
140
142
  rubygems = gem["rubygems"] || ruby["rubygems"] || defaults["rubygems"]
@@ -175,8 +177,29 @@ namespace :build_matrix do
175
177
  end
176
178
  end
177
179
 
178
- def excluded_for_ruby?(gem, ruby)
179
- (gem.dig("exclude", "ruby") || []).include?(ruby["ruby"])
180
+ def included_for_ruby?(matrix, gem, ruby)
181
+ included_rubies = gem.dig("only", "ruby") || []
182
+ excluded_rubies = gem.dig("exclude", "ruby") || []
183
+ if included_rubies.any? && excluded_rubies.any?
184
+ raise "Both `only` and `exclude` config options for gem `#{gem["gem"]}` are configured. " \
185
+ "Only use one of the two config options."
186
+ end
187
+
188
+ if included_rubies.any?
189
+ # If this gem only runs on these specific Ruby version
190
+ included_rubies.each { |version| check_if_ruby_version_exists!(matrix, version) }
191
+ return true if included_rubies.include?(ruby["ruby"])
192
+ else
193
+ # If this gem is excluded from running on this Ruby version
194
+ excluded_rubies.each { |version| check_if_ruby_version_exists!(matrix, version) }
195
+ return true unless excluded_rubies.include?(ruby["ruby"])
196
+ end
197
+ end
198
+
199
+ def check_if_ruby_version_exists!(matrix, ruby_version)
200
+ return if matrix["ruby"].find { |ruby| ruby["ruby"] == ruby_version }
201
+
202
+ raise "Ruby version `#{ruby_version}` is not known by the build matrix."
180
203
  end
181
204
  end
182
205
 
data/appsignal.gemspec CHANGED
@@ -36,7 +36,7 @@ Gem::Specification.new do |gem| # rubocop:disable Metrics/BlockLength
36
36
 
37
37
  gem.add_dependency "rack"
38
38
 
39
- gem.add_development_dependency "rake", "~> 11"
39
+ gem.add_development_dependency "rake", ">= 12"
40
40
  gem.add_development_dependency "rspec", "~> 3.8"
41
41
  gem.add_development_dependency "timecop"
42
42
  gem.add_development_dependency "webmock"
data/build_matrix.yml CHANGED
@@ -189,7 +189,7 @@ matrix:
189
189
  - ruby: "2.6.9"
190
190
  - ruby: "2.7.5"
191
191
  - ruby: "3.0.3"
192
- - ruby: "3.1.0"
192
+ - ruby: "3.1.1"
193
193
  - ruby: "jruby-9.2.19.0"
194
194
  gems: "minimal"
195
195
  env_vars:
@@ -201,76 +201,119 @@ matrix:
201
201
  - gem: "capistrano3"
202
202
  - gem: "grape"
203
203
  - gem: "padrino"
204
+ - gem: "psych-3"
205
+ only:
206
+ ruby:
207
+ - "3.0.3"
208
+ - "3.1.1"
209
+ - gem: "psych-4"
210
+ only:
211
+ ruby:
212
+ - "3.0.3"
213
+ - "3.1.1"
204
214
  - gem: "que"
205
215
  - gem: "que_beta"
206
216
  - gem: "rails-3.2"
207
217
  bundler: "1.17.3"
208
- exclude:
218
+ only:
209
219
  ruby:
210
- - "2.6.9"
211
- - "2.7.5"
212
- - "3.0.3"
213
- - "3.1.0"
220
+ - "2.0.0-p648"
221
+ - "2.1.10"
222
+ - "2.2.10"
223
+ - "2.3.8"
224
+ - "2.4.10"
225
+ - "2.5.8"
214
226
  - gem: "rails-4.2"
215
227
  bundler: "1.17.3"
216
- exclude:
228
+ only:
217
229
  ruby:
218
- - "2.6.9"
219
- - "2.7.5"
220
- - "3.0.3"
221
- - "3.1.0"
230
+ - "2.0.0-p648"
231
+ - "2.1.10"
232
+ - "2.2.10"
233
+ - "2.3.8"
234
+ - "2.4.10"
235
+ - "2.5.8"
222
236
  - gem: "rails-5.0"
223
- exclude:
224
- ruby:
225
- - "3.0.3"
226
- - "3.1.0"
227
- - gem: "rails-5.1"
228
- exclude:
229
- ruby:
230
- - "3.0.3"
231
- - "3.1.0"
232
- - gem: "rails-5.2"
233
- exclude:
234
- ruby:
235
- - "3.0.3"
236
- - "3.1.0"
237
- - gem: "rails-6.0"
238
- exclude:
237
+ only:
239
238
  ruby:
239
+ - "2.0.0-p648"
240
240
  - "2.1.10"
241
241
  - "2.2.10"
242
242
  - "2.3.8"
243
243
  - "2.4.10"
244
- - "3.1.0"
245
- - gem: "rails-6.1"
246
- exclude:
244
+ - "2.5.8"
245
+ - "2.6.9"
246
+ - "2.7.5"
247
+ - gem: "rails-5.1"
248
+ only:
247
249
  ruby:
250
+ - "2.0.0-p648"
248
251
  - "2.1.10"
249
252
  - "2.2.10"
250
253
  - "2.3.8"
251
254
  - "2.4.10"
252
- - gem: "rails-7.0"
253
- exclude:
255
+ - "2.5.8"
256
+ - "2.6.9"
257
+ - "2.7.5"
258
+ - gem: "rails-5.2"
259
+ only:
254
260
  ruby:
261
+ - "2.0.0-p648"
255
262
  - "2.1.10"
256
263
  - "2.2.10"
257
264
  - "2.3.8"
258
265
  - "2.4.10"
259
266
  - "2.5.8"
260
267
  - "2.6.9"
268
+ - "2.7.5"
269
+ - "jruby-9.2.19.0"
270
+ - gem: "rails-6.0"
271
+ only:
272
+ ruby:
273
+ - "2.5.8"
274
+ - "2.6.9"
275
+ - "2.7.5"
276
+ - "3.0.3"
261
277
  - "jruby-9.2.19.0"
278
+ - gem: "rails-6.1"
279
+ only:
280
+ ruby:
281
+ - "2.5.8"
282
+ - "2.6.9"
283
+ - "2.7.5"
284
+ - "3.0.3"
285
+ - "3.1.1"
286
+ - "jruby-9.2.19.0"
287
+ - gem: "rails-7.0"
288
+ only:
289
+ ruby:
290
+ - "2.7.5"
291
+ - "3.0.3"
292
+ - "3.1.1"
262
293
  - gem: "resque-1"
263
294
  bundler: "1.17.3"
264
- exclude:
295
+ only:
265
296
  ruby:
266
- - "3.0.3"
267
- - "3.1.0"
297
+ - "2.0.0-p648"
298
+ - "2.1.10"
299
+ - "2.2.10"
300
+ - "2.3.8"
301
+ - "2.4.10"
302
+ - "2.5.8"
303
+ - "2.6.9"
304
+ - "2.7.5"
268
305
  - gem: "resque-2"
269
306
  - gem: "sequel"
270
307
  - gem: "sequel-435"
271
- exclude:
308
+ only:
272
309
  ruby:
273
- - "3.0.3"
274
- - "3.1.0"
310
+ - "2.0.0-p648"
311
+ - "2.1.10"
312
+ - "2.2.10"
313
+ - "2.3.8"
314
+ - "2.4.10"
315
+ - "2.5.8"
316
+ - "2.6.9"
317
+ - "2.7.5"
275
318
  - gem: "sinatra"
276
319
  - gem: "webmachine"
data/ext/agent.yml CHANGED
@@ -3,92 +3,92 @@
3
3
  # appsignal-agent repository.
4
4
  # Modifications to this file will be overwritten with the next agent release.
5
5
  ---
6
- version: bbc830a
6
+ version: f57e6cb
7
7
  mirrors:
8
8
  - https://appsignal-agent-releases.global.ssl.fastly.net
9
9
  - https://d135dj0rjqvssy.cloudfront.net
10
10
  triples:
11
11
  x86_64-darwin:
12
12
  static:
13
- checksum: 5e817193bb57f13ff16bacceda459d8badc2d5a04a6b131a7bb343212329304a
13
+ checksum: dd1ae8d7897edf3112741381226e3622e91553dede6eeae48ca07aae84ac050d
14
14
  filename: appsignal-x86_64-darwin-all-static.tar.gz
15
15
  dynamic:
16
- checksum: 641a499de4dd2a0ebc92d0d28ea98bf9c8387ee7393d093ba2f83a64d522d162
16
+ checksum: a523a85f76bdb37ffcacbf14279c3c7fed0378fbcfd20886ab66ee7602766e72
17
17
  filename: appsignal-x86_64-darwin-all-dynamic.tar.gz
18
18
  universal-darwin:
19
19
  static:
20
- checksum: 5e817193bb57f13ff16bacceda459d8badc2d5a04a6b131a7bb343212329304a
20
+ checksum: dd1ae8d7897edf3112741381226e3622e91553dede6eeae48ca07aae84ac050d
21
21
  filename: appsignal-x86_64-darwin-all-static.tar.gz
22
22
  dynamic:
23
- checksum: 641a499de4dd2a0ebc92d0d28ea98bf9c8387ee7393d093ba2f83a64d522d162
23
+ checksum: a523a85f76bdb37ffcacbf14279c3c7fed0378fbcfd20886ab66ee7602766e72
24
24
  filename: appsignal-x86_64-darwin-all-dynamic.tar.gz
25
25
  aarch64-darwin:
26
26
  static:
27
- checksum: d443e00232acd3e53cd3d3f8c525da69ad362c38230472cc596e687cf73c7d94
27
+ checksum: cd5175979ec293d0471c71de1fdd00817bea75f800603a1b87931b19471495f3
28
28
  filename: appsignal-aarch64-darwin-all-static.tar.gz
29
29
  dynamic:
30
- checksum: 750cbaf06fca0a46e0ad046823a5b55b461cdff4bd4882383d22b0c60d4e434e
30
+ checksum: 77503ee5debad5f503719d5fe653f30c3b3bb6624694f48ef03352f575af97c0
31
31
  filename: appsignal-aarch64-darwin-all-dynamic.tar.gz
32
32
  arm64-darwin:
33
33
  static:
34
- checksum: d443e00232acd3e53cd3d3f8c525da69ad362c38230472cc596e687cf73c7d94
34
+ checksum: cd5175979ec293d0471c71de1fdd00817bea75f800603a1b87931b19471495f3
35
35
  filename: appsignal-aarch64-darwin-all-static.tar.gz
36
36
  dynamic:
37
- checksum: 750cbaf06fca0a46e0ad046823a5b55b461cdff4bd4882383d22b0c60d4e434e
37
+ checksum: 77503ee5debad5f503719d5fe653f30c3b3bb6624694f48ef03352f575af97c0
38
38
  filename: appsignal-aarch64-darwin-all-dynamic.tar.gz
39
39
  arm-darwin:
40
40
  static:
41
- checksum: d443e00232acd3e53cd3d3f8c525da69ad362c38230472cc596e687cf73c7d94
41
+ checksum: cd5175979ec293d0471c71de1fdd00817bea75f800603a1b87931b19471495f3
42
42
  filename: appsignal-aarch64-darwin-all-static.tar.gz
43
43
  dynamic:
44
- checksum: 750cbaf06fca0a46e0ad046823a5b55b461cdff4bd4882383d22b0c60d4e434e
44
+ checksum: 77503ee5debad5f503719d5fe653f30c3b3bb6624694f48ef03352f575af97c0
45
45
  filename: appsignal-aarch64-darwin-all-dynamic.tar.gz
46
46
  aarch64-linux:
47
47
  static:
48
- checksum: 7cd884dfd47466112d571ce49830057ffff0070383037eec4bfecf29547e3e47
48
+ checksum: ae899aba4fa260c1aa1d21cc8f2bf379a2b52596ef2979e9b9b70f0cd54872d4
49
49
  filename: appsignal-aarch64-linux-all-static.tar.gz
50
50
  dynamic:
51
- checksum: 060c7b768c7bd81aaf0dd9a872d4bd36f1efd433972ae5cab41e2791236a3d0c
51
+ checksum: 848ab3df66cac4122133145738a380d3e4763e0bcb324cb0d7c0423741751d80
52
52
  filename: appsignal-aarch64-linux-all-dynamic.tar.gz
53
53
  i686-linux:
54
54
  static:
55
- checksum: 21ca02f85c438190307b2a3500642a94dbd35ada6349cd97ac32253ac7dcc9e1
55
+ checksum: 3934810379bade5096a5f055450ddd38f60c1bb2fbc05bebcea92f8f7250a81e
56
56
  filename: appsignal-i686-linux-all-static.tar.gz
57
57
  dynamic:
58
- checksum: 2cf89679e62b725374e8578bb58dcfea30c573e406bd28f42215be52a2c8f31e
58
+ checksum: 2bd5207d0930f9ce262adcb955582c2a022de8872022a0ddd1ea15391339eb55
59
59
  filename: appsignal-i686-linux-all-dynamic.tar.gz
60
60
  x86-linux:
61
61
  static:
62
- checksum: 21ca02f85c438190307b2a3500642a94dbd35ada6349cd97ac32253ac7dcc9e1
62
+ checksum: 3934810379bade5096a5f055450ddd38f60c1bb2fbc05bebcea92f8f7250a81e
63
63
  filename: appsignal-i686-linux-all-static.tar.gz
64
64
  dynamic:
65
- checksum: 2cf89679e62b725374e8578bb58dcfea30c573e406bd28f42215be52a2c8f31e
65
+ checksum: 2bd5207d0930f9ce262adcb955582c2a022de8872022a0ddd1ea15391339eb55
66
66
  filename: appsignal-i686-linux-all-dynamic.tar.gz
67
67
  x86_64-linux:
68
68
  static:
69
- checksum: 6feb2ed89451c6fdf6365dd1023bd419d8fa99e3c986d6a4e804f8cb68b3f401
69
+ checksum: 956288a49717ea61ec303ef4ab52e7bfafea6e575a8bb9839df24b947d22d988
70
70
  filename: appsignal-x86_64-linux-all-static.tar.gz
71
71
  dynamic:
72
- checksum: e8dc655eaf5194dade1b5b20fc2bed0b443db84bfaf9c1828875a77dd20516c9
72
+ checksum: abf290aa7ad7be1af54889c9dd70cf2f71902359cfc5f5ce64b53b8421914a51
73
73
  filename: appsignal-x86_64-linux-all-dynamic.tar.gz
74
74
  x86_64-linux-musl:
75
75
  static:
76
- checksum: 61a70bb104b7d7cbb9d51a0a5d806346a6c36deb60d1e41351eb61c4813587c1
76
+ checksum: 5f96744692b6b079bd2b97ac6d8d5900123f108a27237664c88a49782b7ba433
77
77
  filename: appsignal-x86_64-linux-musl-all-static.tar.gz
78
78
  dynamic:
79
- checksum: cfe38530c1b1c9ab014aca25dd397540f73ca117fe48119a956d864c9d10c1e5
79
+ checksum: c0a06de99d88a2e045b60d53319e1bbb8633127667fbe9f09e52f2bbaf6fb54d
80
80
  filename: appsignal-x86_64-linux-musl-all-dynamic.tar.gz
81
81
  x86_64-freebsd:
82
82
  static:
83
- checksum: 8662a282787b11a6e48dab944afbf1afca91b45ca3147de8cdadb52ef271a43a
83
+ checksum: 23ea3fdcc5ae7dfdc85214c872ef928ed702c029b05c059db614583f689b9304
84
84
  filename: appsignal-x86_64-freebsd-all-static.tar.gz
85
85
  dynamic:
86
- checksum: 4d8f0aa768aee213fd7ada877e2e86f47fb4c17269cbe54584ff759d480afc10
86
+ checksum: 683cc20296ef05257c4209b3c5d86ef32b76be6ea75a1d1ec76db0163e729a38
87
87
  filename: appsignal-x86_64-freebsd-all-dynamic.tar.gz
88
88
  amd64-freebsd:
89
89
  static:
90
- checksum: 8662a282787b11a6e48dab944afbf1afca91b45ca3147de8cdadb52ef271a43a
90
+ checksum: 23ea3fdcc5ae7dfdc85214c872ef928ed702c029b05c059db614583f689b9304
91
91
  filename: appsignal-x86_64-freebsd-all-static.tar.gz
92
92
  dynamic:
93
- checksum: 4d8f0aa768aee213fd7ada877e2e86f47fb4c17269cbe54584ff759d480afc10
93
+ checksum: 683cc20296ef05257c4209b3c5d86ef32b76be6ea75a1d1ec76db0163e729a38
94
94
  filename: appsignal-x86_64-freebsd-all-dynamic.tar.gz
@@ -0,0 +1,5 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "psych", "~> 3.3"
4
+
5
+ gemspec :path => "../"
@@ -0,0 +1,5 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "psych", "~> 4.0"
4
+
5
+ gemspec :path => "../"
@@ -376,7 +376,7 @@ module Appsignal
376
376
  def load_from_disk
377
377
  return if !config_file || !File.exist?(config_file)
378
378
 
379
- read_options = RUBY_VERSION >= "3.1.0" ? { :aliases => true } : {}
379
+ read_options = YAML::VERSION >= "4.0.0" ? { :aliases => true } : {}
380
380
  configurations = YAML.load(ERB.new(IO.read(config_file)).result, **read_options)
381
381
  config_for_this_env = configurations[env]
382
382
  if config_for_this_env
@@ -178,7 +178,7 @@ module Appsignal
178
178
  #
179
179
  # @example Add more metadata to transaction
180
180
  # Appsignal.send_error(e) do |transaction|
181
- # transaction.params(:search_query => params[:search_query])
181
+ # transaction.params = { :search_query => params[:search_query] }
182
182
  # transaction.set_action("my_action_name")
183
183
  # transaction.set_tags(:key => "value")
184
184
  # transaction.set_namespace("my_namespace")
@@ -258,7 +258,7 @@ module Appsignal
258
258
  # begin
259
259
  # raise "oh no!"
260
260
  # rescue => e
261
- # Appsignal.set_error(error)
261
+ # Appsignal.set_error(e)
262
262
  # end
263
263
  # # Manually completing the transaction here.
264
264
  # # Manually stopping AppSignal here
@@ -275,7 +275,7 @@ module Appsignal
275
275
  #
276
276
  # @example Add more metadata to transaction
277
277
  # Appsignal.set_error(e) do |transaction|
278
- # transaction.params(:search_query => params[:search_query])
278
+ # transaction.params = { :search_query => params[:search_query] }
279
279
  # transaction.set_action("my_action_name")
280
280
  # transaction.set_tags(:key => "value")
281
281
  # transaction.set_namespace("my_namespace")
@@ -158,7 +158,7 @@ module Appsignal
158
158
 
159
159
  # Based on: https://github.com/mperham/sidekiq/blob/63ee43353bd3b753beb0233f64865e658abeb1c3/lib/sidekiq/api.rb#L403-L412
160
160
  def safe_load(content, default)
161
- if RUBY_VERSION >= "3.1.0"
161
+ if YAML::VERSION >= "4.0.0"
162
162
  yield(*YAML.unsafe_load(content))
163
163
  else
164
164
  yield(*YAML.load(content))
@@ -537,7 +537,7 @@ module Appsignal
537
537
  # Returns an unchanged message otherwise.
538
538
  def cleaned_error_message(error)
539
539
  case error.class.to_s
540
- when "PG::UniqueViolation"
540
+ when "PG::UniqueViolation", "ActiveRecord::RecordNotUnique"
541
541
  error.message.to_s.gsub(/\)=\(.*\)/, ")=(?)")
542
542
  else
543
543
  error.message.to_s
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Appsignal
4
- VERSION = "3.0.23".freeze
4
+ VERSION = "3.0.26".freeze
5
5
  end
@@ -2,7 +2,7 @@ describe Appsignal::EventFormatter::ElasticSearch::SearchFormatter do
2
2
  let(:klass) { Appsignal::EventFormatter::ElasticSearch::SearchFormatter }
3
3
  let(:formatter) { klass.new }
4
4
 
5
- it "should register query.moped" do
5
+ it "should register search.elasticsearch" do
6
6
  expect(
7
7
  Appsignal::EventFormatter.registered?("search.elasticsearch", klass)
8
8
  ).to be_truthy
@@ -376,7 +376,7 @@ if DependencyHelper.active_job_present?
376
376
  ]
377
377
  end
378
378
  let(:expected_wrapped_args) do
379
- if (DependencyHelper.rails6_1_present? && DependencyHelper.ruby_3_1_or_newer?) || DependencyHelper.rails7_present?
379
+ if DependencyHelper.active_job_wraps_args?
380
380
  [{
381
381
  "_aj_ruby2_keywords" => ["args"],
382
382
  "args" => expected_args
@@ -1350,8 +1350,8 @@ describe Appsignal::Transaction do
1350
1350
  end
1351
1351
 
1352
1352
  context "with a PG::UniqueViolation" do
1353
- module PG
1354
- class UniqueViolation < StandardError; end
1353
+ before do
1354
+ stub_const("PG::UniqueViolation", Class.new(StandardError))
1355
1355
  end
1356
1356
 
1357
1357
  let(:error) do
@@ -1364,6 +1364,25 @@ describe Appsignal::Transaction do
1364
1364
  expect(subject).to eq "ERROR: duplicate key value violates unique constraint \"index_users_on_email\" DETAIL: Key (email)=(?) already exists."
1365
1365
  end
1366
1366
  end
1367
+
1368
+ context "with a ActiveRecord::RecordNotUnique" do
1369
+ before do
1370
+ stub_const("ActiveRecord::RecordNotUnique", Class.new(StandardError))
1371
+ end
1372
+
1373
+ let(:error) do
1374
+ ActiveRecord::RecordNotUnique.new(
1375
+ "PG::UniqueViolation: ERROR: duplicate key value violates unique constraint \"example_constraint\"\n" \
1376
+ "DETAIL: Key (email)=(foo@example.com) already exists."
1377
+ )
1378
+ end
1379
+
1380
+ it "returns a sanizited error message" do
1381
+ expect(subject).to eq \
1382
+ "PG::UniqueViolation: ERROR: duplicate key value violates unique constraint \"example_constraint\"\n" \
1383
+ "DETAIL: Key (email)=(?) already exists."
1384
+ end
1385
+ end
1367
1386
  end
1368
1387
 
1369
1388
  describe ".to_hash / .to_h" do
@@ -1,6 +1,6 @@
1
1
  module ActiveJobHelpers
2
2
  def active_job_args_wrapper(args: [], params: nil)
3
- if (DependencyHelper.rails6_1_present? && DependencyHelper.ruby_3_1_or_newer?) || DependencyHelper.rails7_present?
3
+ if DependencyHelper.active_job_wraps_args?
4
4
  wrapped_args = {}
5
5
 
6
6
  if params
@@ -29,10 +29,18 @@ module DependencyHelper
29
29
  rails_present? && rails_version >= Gem::Version.new("6.1.0")
30
30
  end
31
31
 
32
+ def rails6_1_5_present?
33
+ rails_present? && rails_version >= Gem::Version.new("6.1.5")
34
+ end
35
+
32
36
  def rails7_present?
33
37
  rails_present? && rails_version >= Gem::Version.new("7.0.0")
34
38
  end
35
39
 
40
+ def active_job_wraps_args?
41
+ rails7_present? || (ruby_3_1_or_newer? && rails6_1_present? && !rails6_1_5_present?)
42
+ end
43
+
36
44
  def rails_version
37
45
  Gem.loaded_specs["rails"].version
38
46
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appsignal
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.23
4
+ version: 3.0.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Beekman
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2022-02-23 00:00:00.000000000 Z
13
+ date: 2022-04-13 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: '11'
35
+ version: '12'
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: '11'
42
+ version: '12'
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: rspec
45
45
  requirement: !ruby/object:Gem::Requirement
@@ -163,6 +163,8 @@ files:
163
163
  - gemfiles/grape.gemfile
164
164
  - gemfiles/no_dependencies.gemfile
165
165
  - gemfiles/padrino.gemfile
166
+ - gemfiles/psych-3.gemfile
167
+ - gemfiles/psych-4.gemfile
166
168
  - gemfiles/que.gemfile
167
169
  - gemfiles/que_beta.gemfile
168
170
  - gemfiles/rails-3.2.gemfile
@@ -199,7 +201,6 @@ files:
199
201
  - lib/appsignal/event_formatter/elastic_search/search_formatter.rb
200
202
  - lib/appsignal/event_formatter/faraday/request_formatter.rb
201
203
  - lib/appsignal/event_formatter/mongo_ruby_driver/query_formatter.rb
202
- - lib/appsignal/event_formatter/moped/query_formatter.rb
203
204
  - lib/appsignal/event_formatter/sequel/sql_formatter.rb
204
205
  - lib/appsignal/extension.rb
205
206
  - lib/appsignal/extension/jruby.rb
@@ -298,7 +299,6 @@ files:
298
299
  - spec/lib/appsignal/event_formatter/elastic_search/search_formatter_spec.rb
299
300
  - spec/lib/appsignal/event_formatter/faraday/request_formatter_spec.rb
300
301
  - spec/lib/appsignal/event_formatter/mongo_ruby_driver/query_formatter_spec.rb
301
- - spec/lib/appsignal/event_formatter/moped/query_formatter_spec.rb
302
302
  - spec/lib/appsignal/event_formatter/sequel/sql_formatter_spec.rb
303
303
  - spec/lib/appsignal/event_formatter_spec.rb
304
304
  - spec/lib/appsignal/extension/jruby_spec.rb
@@ -451,7 +451,6 @@ test_files:
451
451
  - spec/lib/appsignal/event_formatter/elastic_search/search_formatter_spec.rb
452
452
  - spec/lib/appsignal/event_formatter/faraday/request_formatter_spec.rb
453
453
  - spec/lib/appsignal/event_formatter/mongo_ruby_driver/query_formatter_spec.rb
454
- - spec/lib/appsignal/event_formatter/moped/query_formatter_spec.rb
455
454
  - spec/lib/appsignal/event_formatter/sequel/sql_formatter_spec.rb
456
455
  - spec/lib/appsignal/event_formatter_spec.rb
457
456
  - spec/lib/appsignal/extension/jruby_spec.rb
@@ -1,86 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Appsignal
4
- class EventFormatter
5
- # @api private
6
- module Moped
7
- class QueryFormatter
8
- def format(payload)
9
- return unless payload[:ops]
10
- return if payload[:ops].empty?
11
-
12
- op = payload[:ops].first
13
- case op.class.to_s
14
- when "Moped::Protocol::Command"
15
- [
16
- "Command", {
17
- :database => op.full_collection_name,
18
- :selector => sanitize(op.selector, true, :mongodb)
19
- }.inspect
20
- ]
21
- when "Moped::Protocol::Query"
22
- [
23
- "Query", {
24
- :database => op.full_collection_name,
25
- :selector => sanitize(op.selector, false, :mongodb),
26
- :flags => op.flags,
27
- :limit => op.limit,
28
- :skip => op.skip,
29
- :fields => op.fields
30
- }.inspect
31
- ]
32
- when "Moped::Protocol::Delete"
33
- [
34
- "Delete", {
35
- :database => op.full_collection_name,
36
- :selector => sanitize(op.selector, false, :mongodb),
37
- :flags => op.flags
38
- }.inspect
39
- ]
40
- when "Moped::Protocol::Insert"
41
- [
42
- "Insert", {
43
- :database => op.full_collection_name,
44
- :documents => sanitize(op.documents, true, :mongodb),
45
- :count => op.documents.count,
46
- :flags => op.flags
47
- }.inspect
48
- ]
49
- when "Moped::Protocol::Update"
50
- [
51
- "Update",
52
- {
53
- :database => op.full_collection_name,
54
- :selector => sanitize(op.selector, false, :mongodb),
55
- :update => sanitize(op.update, true, :mongodb),
56
- :flags => op.flags
57
- }.inspect
58
- ]
59
- when "Moped::Protocol::KillCursors"
60
- [
61
- "KillCursors",
62
- { :number_of_cursor_ids => op.number_of_cursor_ids }.inspect
63
- ]
64
- else
65
- [
66
- op.class.to_s.sub("Moped::Protocol::", ""),
67
- { :database => op.full_collection_name }.inspect
68
- ]
69
- end
70
- end
71
-
72
- private
73
-
74
- def sanitize(params, only_top_level, key_sanitizer)
75
- Appsignal::Utils::QueryParamsSanitizer.sanitize \
76
- params, only_top_level, key_sanitizer
77
- end
78
- end
79
- end
80
- end
81
- end
82
-
83
- Appsignal::EventFormatter.register(
84
- "query.moped",
85
- Appsignal::EventFormatter::Moped::QueryFormatter
86
- )
@@ -1,118 +0,0 @@
1
- describe Appsignal::EventFormatter::Moped::QueryFormatter do
2
- let(:klass) { Appsignal::EventFormatter::Moped::QueryFormatter }
3
- let(:formatter) { klass.new }
4
-
5
- it "should register query.moped" do
6
- expect(Appsignal::EventFormatter.registered?("query.moped", klass)).to be_truthy
7
- end
8
-
9
- describe "#format" do
10
- let(:payload) { { :ops => [op] } }
11
- subject { formatter.format(payload) }
12
-
13
- context "without ops in the payload" do
14
- let(:payload) { {} }
15
-
16
- it { is_expected.to be_nil }
17
- end
18
-
19
- context "when ops is nil in the payload" do
20
- let(:payload) { { :ops => nil } }
21
-
22
- it { is_expected.to be_nil }
23
- end
24
-
25
- context "Moped::Protocol::Command" do
26
- let(:op) do
27
- double(
28
- :full_collection_name => "database.collection",
29
- :selector => { "query" => { "_id" => "abc" } },
30
- :class => double(:to_s => "Moped::Protocol::Command")
31
- )
32
- end
33
-
34
- it { is_expected.to eq ["Command", '{:database=>"database.collection", :selector=>{"query"=>"?"}}'] }
35
- end
36
-
37
- context "Moped::Protocol::Query" do
38
- let(:op) do
39
- double(
40
- :full_collection_name => "database.collection",
41
- :selector => { "_id" => "abc" },
42
- :flags => [],
43
- :limit => 0,
44
- :skip => 0,
45
- :fields => nil,
46
- :class => double(:to_s => "Moped::Protocol::Query")
47
- )
48
- end
49
-
50
- it { is_expected.to eq ["Query", '{:database=>"database.collection", :selector=>{"_id"=>"?"}, :flags=>[], :limit=>0, :skip=>0, :fields=>nil}'] }
51
- end
52
-
53
- context "Moped::Protocol::Delete" do
54
- let(:op) do
55
- double(
56
- :full_collection_name => "database.collection",
57
- :selector => { "_id" => "abc" },
58
- :flags => [],
59
- :class => double(:to_s => "Moped::Protocol::Delete")
60
- )
61
- end
62
-
63
- it { is_expected.to eq ["Delete", '{:database=>"database.collection", :selector=>{"_id"=>"?"}, :flags=>[]}'] }
64
- end
65
-
66
- context "Moped::Protocol::Insert" do
67
- let(:op) do
68
- double(
69
- :full_collection_name => "database.collection",
70
- :flags => [],
71
- :documents => [
72
- { "_id" => "abc", "events" => { "foo" => [{ "bar" => "baz" }] } },
73
- { "_id" => "def", "events" => { "foo" => [{ "baz" => "bar" }] } }
74
- ],
75
- :class => double(:to_s => "Moped::Protocol::Insert")
76
- )
77
- end
78
-
79
- it { is_expected.to eq ["Insert", '{:database=>"database.collection", :documents=>[{"_id"=>"?", "events"=>"?"}], :count=>2, :flags=>[]}'] }
80
- end
81
-
82
- context "Moped::Protocol::Update" do
83
- let(:op) do
84
- double(
85
- :full_collection_name => "database.collection",
86
- :selector => { "_id" => "abc" },
87
- :update => { "user.name" => "James Bond" },
88
- :flags => [],
89
- :class => double(:to_s => "Moped::Protocol::Update")
90
- )
91
- end
92
-
93
- it { is_expected.to eq ["Update", '{:database=>"database.collection", :selector=>{"_id"=>"?"}, :update=>{"user.?"=>"?"}, :flags=>[]}'] }
94
- end
95
-
96
- context "Moped::Protocol::KillCursors" do
97
- let(:op) do
98
- double(
99
- :number_of_cursor_ids => 2,
100
- :class => double(:to_s => "Moped::Protocol::KillCursors")
101
- )
102
- end
103
-
104
- it { is_expected.to eq ["KillCursors", "{:number_of_cursor_ids=>2}"] }
105
- end
106
-
107
- context "Moped::Protocol::Other" do
108
- let(:op) do
109
- double(
110
- :full_collection_name => "database.collection",
111
- :class => double(:to_s => "Moped::Protocol::Other")
112
- )
113
- end
114
-
115
- it { is_expected.to eq ["Other", '{:database=>"database.collection"}'] }
116
- end
117
- end
118
- end