appsignal 3.2.2-java → 3.3.1-java

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1e5d7f78d66ed928ba1db81131758cdc05d7b728776c4216358d9729d2e3619e
4
- data.tar.gz: 24fcedd7b116b6a017e247c1e049b1ad575d789372894504aaa80270b6cabfd0
3
+ metadata.gz: c476ef9ec4fbb906a3c3013484975806c87fd7c1efbaef938ee49c9c1cb04081
4
+ data.tar.gz: 9b7eebe7a6a535445a6baed7ddffe8f779d373d6936fb7de4bb000c7a0bd3c3d
5
5
  SHA512:
6
- metadata.gz: 668b7e9baeaead3edca6c3738699370e3d97061a602e41bc915da49597047474165bc22099924dd3d98894cd2f34d52086e1c6fc7f1e8ac5a7360f69b129fa1e
7
- data.tar.gz: ceeac6a2e2b545b64e6f820b1acc34e0d9465500f2abf7d050c004120c3845bead373bbfcf777f725d488ec589e57791f059879e64b5f8e6af35581d96b06811
6
+ metadata.gz: 7cdd3926c3db35c5566e7d2fc1e80b7f948f26ebcb19d8fad3374db139d6962b016412a243b7ea1df8b8f47302923c321cf46676a98cd98c83e39d26f2a9d5bc
7
+ data.tar.gz: 44ea1982e6b2319c0a469d128cecaf1ab91bc21ebbaabd50d6a3c9eb082dbafea62145e204e419ca4f0180367788ae3bddb019f00411d7bb83f87f022de901b5
data/.rubocop_todo.yml CHANGED
@@ -88,6 +88,7 @@ Style/Alias:
88
88
  Style/ClassAndModuleChildren:
89
89
  Exclude:
90
90
  - 'lib/appsignal/integrations/padrino.rb'
91
+ - 'lib/appsignal/integrations/hanami.rb'
91
92
 
92
93
  # Offense count: 1
93
94
  Style/DoubleNegation:
@@ -24,12 +24,6 @@ global_job_config:
24
24
  commands:
25
25
  - checkout
26
26
  - rm -f $HOME/.rbenv/plugins/rbenv-gem-rehash/etc/rbenv.d/exec/~gem-rehash.bash
27
- - |
28
- if [ -n "$_LIBYAML" ]; then
29
- install-package --update libyaml-dev
30
- else
31
- echo Skipping libyaml-dev install
32
- fi
33
27
  - |
34
28
  if [ -n "$_C_VERSION" ]; then
35
29
  sem-version c $_C_VERSION
@@ -349,9 +343,9 @@ blocks:
349
343
  - name: BUNDLE_GEMFILE
350
344
  value: gemfiles/no_dependencies.gemfile
351
345
  - name: _RUBYGEMS_VERSION
352
- value: latest
346
+ value: 3.3.26
353
347
  - name: _BUNDLER_VERSION
354
- value: latest
348
+ value: 2.3.26
355
349
  commands:
356
350
  - "./support/bundler_wrapper exec rake test"
357
351
  - "./support/bundler_wrapper exec rake test:failure"
@@ -1368,6 +1362,24 @@ blocks:
1368
1362
  value: latest
1369
1363
  commands:
1370
1364
  - "./support/bundler_wrapper exec rake test"
1365
+ - name: Ruby 3.0.4 for hanami
1366
+ env_vars:
1367
+ - *2
1368
+ - *3
1369
+ - *4
1370
+ - *5
1371
+ - name: RUBY_VERSION
1372
+ value: 3.0.4
1373
+ - name: GEMSET
1374
+ value: hanami
1375
+ - name: BUNDLE_GEMFILE
1376
+ value: gemfiles/hanami.gemfile
1377
+ - name: _RUBYGEMS_VERSION
1378
+ value: latest
1379
+ - name: _BUNDLER_VERSION
1380
+ value: latest
1381
+ commands:
1382
+ - "./support/bundler_wrapper exec rake test"
1371
1383
  - name: Ruby 3.0.4 for http5
1372
1384
  env_vars:
1373
1385
  - *2
@@ -1707,6 +1719,24 @@ blocks:
1707
1719
  value: latest
1708
1720
  commands:
1709
1721
  - "./support/bundler_wrapper exec rake test"
1722
+ - name: Ruby 3.1.2 for hanami
1723
+ env_vars:
1724
+ - *2
1725
+ - *3
1726
+ - *4
1727
+ - *5
1728
+ - name: RUBY_VERSION
1729
+ value: 3.1.2
1730
+ - name: GEMSET
1731
+ value: hanami
1732
+ - name: BUNDLE_GEMFILE
1733
+ value: gemfiles/hanami.gemfile
1734
+ - name: _RUBYGEMS_VERSION
1735
+ value: latest
1736
+ - name: _BUNDLER_VERSION
1737
+ value: latest
1738
+ commands:
1739
+ - "./support/bundler_wrapper exec rake test"
1710
1740
  - name: Ruby 3.1.2 for http5
1711
1741
  env_vars:
1712
1742
  - *2
@@ -1923,7 +1953,7 @@ blocks:
1923
1953
  value: latest
1924
1954
  commands:
1925
1955
  - "./support/bundler_wrapper exec rake test"
1926
- - name: Ruby 3.2.0-preview3
1956
+ - name: Ruby 3.2.0
1927
1957
  dependencies:
1928
1958
  - Validation
1929
1959
  task:
@@ -1939,14 +1969,14 @@ blocks:
1939
1969
  - "./support/bundler_wrapper exec rake extension:install"
1940
1970
  epilogue: *1
1941
1971
  jobs:
1942
- - name: Ruby 3.2.0-preview3 for no_dependencies
1972
+ - name: Ruby 3.2.0 for no_dependencies
1943
1973
  env_vars:
1944
1974
  - *2
1945
1975
  - *3
1946
1976
  - *4
1947
1977
  - *5
1948
1978
  - name: RUBY_VERSION
1949
- value: 3.2.0-preview3
1979
+ value: 3.2.0
1950
1980
  - name: GEMSET
1951
1981
  value: no_dependencies
1952
1982
  - name: BUNDLE_GEMFILE
@@ -1955,15 +1985,12 @@ blocks:
1955
1985
  value: latest
1956
1986
  - name: _BUNDLER_VERSION
1957
1987
  value: latest
1958
- - &6
1959
- name: _LIBYAML
1960
- value: '1'
1961
1988
  commands:
1962
1989
  - "./support/bundler_wrapper exec rake test"
1963
1990
  - "./support/bundler_wrapper exec rake test:failure"
1964
- - name: Ruby 3.2.0-preview3 - Gems
1991
+ - name: Ruby 3.2.0 - Gems
1965
1992
  dependencies:
1966
- - Ruby 3.2.0-preview3
1993
+ - Ruby 3.2.0
1967
1994
  task:
1968
1995
  prologue:
1969
1996
  commands:
@@ -1977,14 +2004,14 @@ blocks:
1977
2004
  - "./support/bundler_wrapper exec rake extension:install"
1978
2005
  epilogue: *1
1979
2006
  jobs:
1980
- - name: Ruby 3.2.0-preview3 for capistrano2
2007
+ - name: Ruby 3.2.0 for capistrano2
1981
2008
  env_vars:
1982
2009
  - *2
1983
2010
  - *3
1984
2011
  - *4
1985
2012
  - *5
1986
2013
  - name: RUBY_VERSION
1987
- value: 3.2.0-preview3
2014
+ value: 3.2.0
1988
2015
  - name: GEMSET
1989
2016
  value: capistrano2
1990
2017
  - name: BUNDLE_GEMFILE
@@ -1993,17 +2020,16 @@ blocks:
1993
2020
  value: latest
1994
2021
  - name: _BUNDLER_VERSION
1995
2022
  value: latest
1996
- - *6
1997
2023
  commands:
1998
2024
  - "./support/bundler_wrapper exec rake test"
1999
- - name: Ruby 3.2.0-preview3 for capistrano3
2025
+ - name: Ruby 3.2.0 for capistrano3
2000
2026
  env_vars:
2001
2027
  - *2
2002
2028
  - *3
2003
2029
  - *4
2004
2030
  - *5
2005
2031
  - name: RUBY_VERSION
2006
- value: 3.2.0-preview3
2032
+ value: 3.2.0
2007
2033
  - name: GEMSET
2008
2034
  value: capistrano3
2009
2035
  - name: BUNDLE_GEMFILE
@@ -2012,17 +2038,16 @@ blocks:
2012
2038
  value: latest
2013
2039
  - name: _BUNDLER_VERSION
2014
2040
  value: latest
2015
- - *6
2016
2041
  commands:
2017
2042
  - "./support/bundler_wrapper exec rake test"
2018
- - name: Ruby 3.2.0-preview3 for grape
2043
+ - name: Ruby 3.2.0 for grape
2019
2044
  env_vars:
2020
2045
  - *2
2021
2046
  - *3
2022
2047
  - *4
2023
2048
  - *5
2024
2049
  - name: RUBY_VERSION
2025
- value: 3.2.0-preview3
2050
+ value: 3.2.0
2026
2051
  - name: GEMSET
2027
2052
  value: grape
2028
2053
  - name: BUNDLE_GEMFILE
@@ -2031,17 +2056,34 @@ blocks:
2031
2056
  value: latest
2032
2057
  - name: _BUNDLER_VERSION
2033
2058
  value: latest
2034
- - *6
2035
2059
  commands:
2036
2060
  - "./support/bundler_wrapper exec rake test"
2037
- - name: Ruby 3.2.0-preview3 for http5
2061
+ - name: Ruby 3.2.0 for hanami
2062
+ env_vars:
2063
+ - *2
2064
+ - *3
2065
+ - *4
2066
+ - *5
2067
+ - name: RUBY_VERSION
2068
+ value: 3.2.0
2069
+ - name: GEMSET
2070
+ value: hanami
2071
+ - name: BUNDLE_GEMFILE
2072
+ value: gemfiles/hanami.gemfile
2073
+ - name: _RUBYGEMS_VERSION
2074
+ value: latest
2075
+ - name: _BUNDLER_VERSION
2076
+ value: latest
2077
+ commands:
2078
+ - "./support/bundler_wrapper exec rake test"
2079
+ - name: Ruby 3.2.0 for http5
2038
2080
  env_vars:
2039
2081
  - *2
2040
2082
  - *3
2041
2083
  - *4
2042
2084
  - *5
2043
2085
  - name: RUBY_VERSION
2044
- value: 3.2.0-preview3
2086
+ value: 3.2.0
2045
2087
  - name: GEMSET
2046
2088
  value: http5
2047
2089
  - name: BUNDLE_GEMFILE
@@ -2050,17 +2092,16 @@ blocks:
2050
2092
  value: latest
2051
2093
  - name: _BUNDLER_VERSION
2052
2094
  value: latest
2053
- - *6
2054
2095
  commands:
2055
2096
  - "./support/bundler_wrapper exec rake test"
2056
- - name: Ruby 3.2.0-preview3 for padrino
2097
+ - name: Ruby 3.2.0 for padrino
2057
2098
  env_vars:
2058
2099
  - *2
2059
2100
  - *3
2060
2101
  - *4
2061
2102
  - *5
2062
2103
  - name: RUBY_VERSION
2063
- value: 3.2.0-preview3
2104
+ value: 3.2.0
2064
2105
  - name: GEMSET
2065
2106
  value: padrino
2066
2107
  - name: BUNDLE_GEMFILE
@@ -2069,17 +2110,16 @@ blocks:
2069
2110
  value: latest
2070
2111
  - name: _BUNDLER_VERSION
2071
2112
  value: latest
2072
- - *6
2073
2113
  commands:
2074
2114
  - "./support/bundler_wrapper exec rake test"
2075
- - name: Ruby 3.2.0-preview3 for psych-3
2115
+ - name: Ruby 3.2.0 for psych-3
2076
2116
  env_vars:
2077
2117
  - *2
2078
2118
  - *3
2079
2119
  - *4
2080
2120
  - *5
2081
2121
  - name: RUBY_VERSION
2082
- value: 3.2.0-preview3
2122
+ value: 3.2.0
2083
2123
  - name: GEMSET
2084
2124
  value: psych-3
2085
2125
  - name: BUNDLE_GEMFILE
@@ -2088,17 +2128,16 @@ blocks:
2088
2128
  value: latest
2089
2129
  - name: _BUNDLER_VERSION
2090
2130
  value: latest
2091
- - *6
2092
2131
  commands:
2093
2132
  - "./support/bundler_wrapper exec rake test"
2094
- - name: Ruby 3.2.0-preview3 for psych-4
2133
+ - name: Ruby 3.2.0 for psych-4
2095
2134
  env_vars:
2096
2135
  - *2
2097
2136
  - *3
2098
2137
  - *4
2099
2138
  - *5
2100
2139
  - name: RUBY_VERSION
2101
- value: 3.2.0-preview3
2140
+ value: 3.2.0
2102
2141
  - name: GEMSET
2103
2142
  value: psych-4
2104
2143
  - name: BUNDLE_GEMFILE
@@ -2107,17 +2146,16 @@ blocks:
2107
2146
  value: latest
2108
2147
  - name: _BUNDLER_VERSION
2109
2148
  value: latest
2110
- - *6
2111
2149
  commands:
2112
2150
  - "./support/bundler_wrapper exec rake test"
2113
- - name: Ruby 3.2.0-preview3 for que
2151
+ - name: Ruby 3.2.0 for que
2114
2152
  env_vars:
2115
2153
  - *2
2116
2154
  - *3
2117
2155
  - *4
2118
2156
  - *5
2119
2157
  - name: RUBY_VERSION
2120
- value: 3.2.0-preview3
2158
+ value: 3.2.0
2121
2159
  - name: GEMSET
2122
2160
  value: que
2123
2161
  - name: BUNDLE_GEMFILE
@@ -2126,17 +2164,16 @@ blocks:
2126
2164
  value: latest
2127
2165
  - name: _BUNDLER_VERSION
2128
2166
  value: latest
2129
- - *6
2130
2167
  commands:
2131
2168
  - "./support/bundler_wrapper exec rake test"
2132
- - name: Ruby 3.2.0-preview3 for que_beta
2169
+ - name: Ruby 3.2.0 for que_beta
2133
2170
  env_vars:
2134
2171
  - *2
2135
2172
  - *3
2136
2173
  - *4
2137
2174
  - *5
2138
2175
  - name: RUBY_VERSION
2139
- value: 3.2.0-preview3
2176
+ value: 3.2.0
2140
2177
  - name: GEMSET
2141
2178
  value: que_beta
2142
2179
  - name: BUNDLE_GEMFILE
@@ -2145,17 +2182,16 @@ blocks:
2145
2182
  value: latest
2146
2183
  - name: _BUNDLER_VERSION
2147
2184
  value: latest
2148
- - *6
2149
2185
  commands:
2150
2186
  - "./support/bundler_wrapper exec rake test"
2151
- - name: Ruby 3.2.0-preview3 for rails-6.1
2187
+ - name: Ruby 3.2.0 for rails-6.1
2152
2188
  env_vars:
2153
2189
  - *2
2154
2190
  - *3
2155
2191
  - *4
2156
2192
  - *5
2157
2193
  - name: RUBY_VERSION
2158
- value: 3.2.0-preview3
2194
+ value: 3.2.0
2159
2195
  - name: GEMSET
2160
2196
  value: rails-6.1
2161
2197
  - name: BUNDLE_GEMFILE
@@ -2164,17 +2200,16 @@ blocks:
2164
2200
  value: latest
2165
2201
  - name: _BUNDLER_VERSION
2166
2202
  value: latest
2167
- - *6
2168
2203
  commands:
2169
2204
  - "./support/bundler_wrapper exec rake test"
2170
- - name: Ruby 3.2.0-preview3 for rails-7.0
2205
+ - name: Ruby 3.2.0 for rails-7.0
2171
2206
  env_vars:
2172
2207
  - *2
2173
2208
  - *3
2174
2209
  - *4
2175
2210
  - *5
2176
2211
  - name: RUBY_VERSION
2177
- value: 3.2.0-preview3
2212
+ value: 3.2.0
2178
2213
  - name: GEMSET
2179
2214
  value: rails-7.0
2180
2215
  - name: BUNDLE_GEMFILE
@@ -2183,17 +2218,16 @@ blocks:
2183
2218
  value: latest
2184
2219
  - name: _BUNDLER_VERSION
2185
2220
  value: latest
2186
- - *6
2187
2221
  commands:
2188
2222
  - "./support/bundler_wrapper exec rake test"
2189
- - name: Ruby 3.2.0-preview3 for resque-2
2223
+ - name: Ruby 3.2.0 for resque-2
2190
2224
  env_vars:
2191
2225
  - *2
2192
2226
  - *3
2193
2227
  - *4
2194
2228
  - *5
2195
2229
  - name: RUBY_VERSION
2196
- value: 3.2.0-preview3
2230
+ value: 3.2.0
2197
2231
  - name: GEMSET
2198
2232
  value: resque-2
2199
2233
  - name: BUNDLE_GEMFILE
@@ -2202,17 +2236,16 @@ blocks:
2202
2236
  value: latest
2203
2237
  - name: _BUNDLER_VERSION
2204
2238
  value: latest
2205
- - *6
2206
2239
  commands:
2207
2240
  - "./support/bundler_wrapper exec rake test"
2208
- - name: Ruby 3.2.0-preview3 for sequel
2241
+ - name: Ruby 3.2.0 for sequel
2209
2242
  env_vars:
2210
2243
  - *2
2211
2244
  - *3
2212
2245
  - *4
2213
2246
  - *5
2214
2247
  - name: RUBY_VERSION
2215
- value: 3.2.0-preview3
2248
+ value: 3.2.0
2216
2249
  - name: GEMSET
2217
2250
  value: sequel
2218
2251
  - name: BUNDLE_GEMFILE
@@ -2221,17 +2254,16 @@ blocks:
2221
2254
  value: latest
2222
2255
  - name: _BUNDLER_VERSION
2223
2256
  value: latest
2224
- - *6
2225
2257
  commands:
2226
2258
  - "./support/bundler_wrapper exec rake test"
2227
- - name: Ruby 3.2.0-preview3 for sinatra
2259
+ - name: Ruby 3.2.0 for sinatra
2228
2260
  env_vars:
2229
2261
  - *2
2230
2262
  - *3
2231
2263
  - *4
2232
2264
  - *5
2233
2265
  - name: RUBY_VERSION
2234
- value: 3.2.0-preview3
2266
+ value: 3.2.0
2235
2267
  - name: GEMSET
2236
2268
  value: sinatra
2237
2269
  - name: BUNDLE_GEMFILE
@@ -2240,17 +2272,16 @@ blocks:
2240
2272
  value: latest
2241
2273
  - name: _BUNDLER_VERSION
2242
2274
  value: latest
2243
- - *6
2244
2275
  commands:
2245
2276
  - "./support/bundler_wrapper exec rake test"
2246
- - name: Ruby 3.2.0-preview3 for webmachine
2277
+ - name: Ruby 3.2.0 for webmachine
2247
2278
  env_vars:
2248
2279
  - *2
2249
2280
  - *3
2250
2281
  - *4
2251
2282
  - *5
2252
2283
  - name: RUBY_VERSION
2253
- value: 3.2.0-preview3
2284
+ value: 3.2.0
2254
2285
  - name: GEMSET
2255
2286
  value: webmachine
2256
2287
  - name: BUNDLE_GEMFILE
@@ -2259,7 +2290,6 @@ blocks:
2259
2290
  value: latest
2260
2291
  - name: _BUNDLER_VERSION
2261
2292
  value: latest
2262
- - *6
2263
2293
  commands:
2264
2294
  - "./support/bundler_wrapper exec rake test"
2265
2295
  - name: Ruby jruby-9.3.9.0
data/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # AppSignal for Ruby gem Changelog
2
2
 
3
+ ## 3.3.1
4
+
5
+ ### Added
6
+
7
+ - [7f62ada8](https://github.com/appsignal/appsignal-ruby/commit/7f62ada8deb67a2b7d355ec0c1bc2ad1d1e2d8d1) patch - Track the Operating System release/distro in the diagnose report. This helps us with debugging what exact version of Linux an app is running on, for example.
8
+
9
+ ### Fixed
10
+
11
+ - [1443e05f](https://github.com/appsignal/appsignal-ruby/commit/1443e05f0fa5bf6af69c40753b2d135f082871de) patch - Attempt to load C extension from lib/ directory. Fixes an issue where JRuby would fail to load
12
+ the extension from the ext/ directory, as the directory is cleaned after installation when using
13
+ RubyGems 3.4.0.
14
+
15
+ ## 3.3.0
16
+
17
+ ### Added
18
+
19
+ - [e4314b5b](https://github.com/appsignal/appsignal-ruby/commit/e4314b5b2d3fdf7865555535b2324094ec620349) minor - Hanami 2 is now supported. Requests will now appear as performance measurements.
20
+
3
21
  ## 3.2.2
4
22
 
5
23
  ### Changed
data/README.md CHANGED
@@ -232,6 +232,7 @@ configurations you need to run the spec suite with a specific Gemfile.
232
232
  BUNDLE_GEMFILE=gemfiles/capistrano2.gemfile bundle exec rspec
233
233
  BUNDLE_GEMFILE=gemfiles/capistrano3.gemfile bundle exec rspec
234
234
  BUNDLE_GEMFILE=gemfiles/grape.gemfile bundle exec rspec
235
+ BUNDLE_GEMFILE=gemfiles/hanami.gemfile bundle exec rspec
235
236
  BUNDLE_GEMFILE=gemfiles/http5.gemfile bundle exec rspec
236
237
  BUNDLE_GEMFILE=gemfiles/no_dependencies.gemfile bundle exec rspec
237
238
  BUNDLE_GEMFILE=gemfiles/padrino.gemfile bundle exec rspec
data/build_matrix.yml CHANGED
@@ -25,12 +25,6 @@ semaphore: # Default `.semaphore/semaphore.yml` contents
25
25
  commands:
26
26
  - checkout
27
27
  - rm -f $HOME/.rbenv/plugins/rbenv-gem-rehash/etc/rbenv.d/exec/~gem-rehash.bash
28
- - |
29
- if [ -n "$_LIBYAML" ]; then
30
- install-package --update libyaml-dev
31
- else
32
- echo Skipping libyaml-dev install
33
- fi
34
28
  - |
35
29
  if [ -n "$_C_VERSION" ]; then
36
30
  sem-version c $_C_VERSION
@@ -197,6 +191,8 @@ matrix:
197
191
  gems: "none"
198
192
  - ruby: "2.3.8"
199
193
  gems: "none"
194
+ rubygems: "3.3.26"
195
+ bundler: "2.3.26"
200
196
  - ruby: "2.4.10"
201
197
  gems: "none"
202
198
  - ruby: "2.5.8"
@@ -205,10 +201,7 @@ matrix:
205
201
  - ruby: "2.7.7"
206
202
  - ruby: "3.0.4"
207
203
  - ruby: "3.1.2"
208
- - ruby: "3.2.0-preview3"
209
- env_vars:
210
- - name: "_LIBYAML"
211
- value: "1"
204
+ - ruby: "3.2.0"
212
205
  - ruby: "jruby-9.3.9.0"
213
206
  gems: "minimal"
214
207
  - ruby: "jruby-9.4.0.0"
@@ -218,6 +211,12 @@ matrix:
218
211
  - gem: "capistrano2"
219
212
  - gem: "capistrano3"
220
213
  - gem: "grape"
214
+ - gem: "hanami"
215
+ only:
216
+ ruby:
217
+ - "3.0.4"
218
+ - "3.1.2"
219
+ - "3.2.0"
221
220
  - gem: "http5"
222
221
  - gem: "padrino"
223
222
  - gem: "psych-3"
@@ -225,13 +224,13 @@ matrix:
225
224
  ruby:
226
225
  - "3.0.4"
227
226
  - "3.1.2"
228
- - "3.2.0-preview3"
227
+ - "3.2.0"
229
228
  - gem: "psych-4"
230
229
  only:
231
230
  ruby:
232
231
  - "3.0.4"
233
232
  - "3.1.2"
234
- - "3.2.0-preview3"
233
+ - "3.2.0"
235
234
  - gem: "que"
236
235
  - gem: "que_beta"
237
236
  - gem: "rails-3.2"
@@ -304,7 +303,7 @@ matrix:
304
303
  - "2.7.7"
305
304
  - "3.0.4"
306
305
  - "3.1.2"
307
- - "3.2.0-preview3"
306
+ - "3.2.0"
308
307
  - "jruby-9.4.0.0"
309
308
  - gem: "rails-7.0"
310
309
  only:
@@ -312,7 +311,7 @@ matrix:
312
311
  - "2.7.7"
313
312
  - "3.0.4"
314
313
  - "3.1.2"
315
- - "3.2.0-preview3"
314
+ - "3.2.0"
316
315
  - "jruby-9.4.0.0"
317
316
  - gem: "resque-1"
318
317
  bundler: "1.17.3"
@@ -0,0 +1,7 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem "hanami", "~> 2.0.0"
4
+ gem "hanami-router", "~> 2.0.0"
5
+ gem "hanami-controller", "~> 2.0.0"
6
+
7
+ gemspec :path => '../'
@@ -443,6 +443,9 @@ module Appsignal
443
443
  save :os, os
444
444
  puts_value "Operating System", os_label
445
445
 
446
+ distribution_file = "/etc/os-release"
447
+ save :os_distribution, File.exist?(distribution_file) ? File.read(distribution_file) : ""
448
+
446
449
  language_version = "#{rbconfig["RUBY_PROGRAM_VERSION"]}-p#{rbconfig["PATCHLEVEL"]}"
447
450
  save :language_version, language_version
448
451
  puts_format "Ruby version", language_version
@@ -61,6 +61,8 @@ module Appsignal
61
61
  install_for_padrino(config)
62
62
  elsif installed_frameworks.include?(:grape)
63
63
  install_for_grape(config)
64
+ elsif installed_frameworks.include?(:hanami)
65
+ install_for_hanami(config)
64
66
  elsif installed_frameworks.include?(:sinatra)
65
67
  install_for_sinatra(config)
66
68
  else
@@ -162,6 +164,24 @@ module Appsignal
162
164
  done_notice
163
165
  end
164
166
 
167
+ def install_for_hanami(config)
168
+ puts "Installing for Hanami"
169
+ config[:name] = required_input(" Enter application name: ")
170
+ puts
171
+ configure(config, %w[development production staging], true)
172
+
173
+ puts "Finish Hanami installation"
174
+ puts " Hanami requires some manual configuration."
175
+ puts " After installing the gem, add the following line to config.ru:"
176
+ puts
177
+ puts " require 'appsignal/integrations/hanami'"
178
+ puts
179
+ puts " You can find more information in the documentation:"
180
+ puts " http://docs.appsignal.com/ruby/integrations/hanami.html"
181
+ press_any_key
182
+ done_notice
183
+ end
184
+
165
185
  def install_for_capistrano
166
186
  capfile = File.join(Dir.pwd, "Capfile")
167
187
  return unless File.exist?(capfile)
@@ -256,6 +276,7 @@ module Appsignal
256
276
  out << :sinatra if framework_available? "sinatra"
257
277
  out << :padrino if framework_available? "padrino"
258
278
  out << :grape if framework_available? "grape"
279
+ out << :hanami if framework_available? "hanami"
259
280
  end
260
281
  end
261
282
 
@@ -50,7 +50,12 @@ module Appsignal
50
50
  end
51
51
 
52
52
  begin
53
- ffi_lib File.join(File.dirname(__FILE__), "../../../ext/libappsignal.#{lib_extension}")
53
+ begin
54
+ # RubyGems will install the extension in the gem's lib directory.
55
+ ffi_lib File.join(File.dirname(__FILE__), "../../../lib/libappsignal.#{lib_extension}")
56
+ rescue LoadError
57
+ ffi_lib File.join(File.dirname(__FILE__), "../../../ext/libappsignal.#{lib_extension}")
58
+ end
54
59
  typedef AppsignalString.by_value, :appsignal_string
55
60
 
56
61
  attach_function :appsignal_start, [], :void
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "appsignal"
4
+
5
+ module Appsignal
6
+ module Integrations
7
+ module HanamiPlugin
8
+ def self.init
9
+ Appsignal.logger.debug("Loading Hanami integration")
10
+
11
+ hanami_app_config = ::Hanami.app.config
12
+ Appsignal.config = Appsignal::Config.new(
13
+ hanami_app_config.root || Dir.pwd,
14
+ hanami_app_config.env
15
+ )
16
+
17
+ Appsignal.start_logger
18
+ Appsignal.start
19
+
20
+ ::Hanami::Action.send(:prepend, Appsignal::Integrations::HanamiIntegration) if Appsignal.active?
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+ module Appsignal::Integrations::HanamiIntegration
27
+ def call(env)
28
+ params = ::Hanami::Action::BaseParams.new(env)
29
+ request = ::Hanami::Action::Request.new(
30
+ :env => env,
31
+ :params => params,
32
+ :sessions_enabled => true
33
+ )
34
+
35
+ transaction = Appsignal::Transaction.create(
36
+ SecureRandom.uuid,
37
+ Appsignal::Transaction::HTTP_REQUEST,
38
+ request
39
+ )
40
+
41
+ begin
42
+ Appsignal.instrument("process_action.hanami") do
43
+ super.tap do |response|
44
+ transaction.set_metadata("status", response.status.to_s)
45
+ end
46
+ end
47
+ rescue Exception => error # rubocop:disable Lint/RescueException
48
+ transaction.set_error(error)
49
+ transaction.set_metadata("status", "500")
50
+ raise error
51
+ ensure
52
+ transaction.params = request.params.to_h
53
+ transaction.set_action_if_nil(self.class.name)
54
+ transaction.set_metadata("path", request.path)
55
+ transaction.set_metadata("method", request.request_method)
56
+ transaction.set_http_or_background_queue_start
57
+ Appsignal::Transaction.complete_current!
58
+ end
59
+ end
60
+ end
61
+
62
+ Appsignal::Integrations::HanamiPlugin.init
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Appsignal
4
- VERSION = "3.2.2".freeze
4
+ VERSION = "3.3.1".freeze
5
5
  end
@@ -636,9 +636,12 @@ describe Appsignal::CLI::Diagnose, :api_stub => true, :send_report => :yes_cli_i
636
636
  run
637
637
  host_report = received_report["host"]
638
638
  host_report.delete("running_in_container") # Tested elsewhere
639
+ distribution_file = "/etc/os-release"
640
+ os_distribution = File.exist?(distribution_file) ? File.read(distribution_file) : ""
639
641
  expect(host_report).to eq(
640
642
  "architecture" => rbconfig["host_cpu"],
641
643
  "os" => rbconfig["host_os"],
644
+ "os_distribution" => os_distribution,
642
645
  "language_version" => language_version,
643
646
  "heroku" => false,
644
647
  "root" => false
@@ -660,7 +660,73 @@ describe Appsignal::CLI::Install do
660
660
  end
661
661
  end
662
662
 
663
- if !rails_present? && !sinatra_present? && !padrino_present? && !grape_present?
663
+ if hanami2_present?
664
+ context "with hanami" do
665
+ it_behaves_like "push_api_key validation"
666
+ it_behaves_like "requires an application name"
667
+
668
+ describe "hanami specific tests" do
669
+ let(:installation_instructions) do
670
+ [
671
+ "Installing for Hanami",
672
+ "Hanami requires some manual configuration.",
673
+ "http://docs.appsignal.com/ruby/integrations/hanami.html"
674
+ ]
675
+ end
676
+ let(:app_name) { "Test app" }
677
+ before { enter_app_name app_name }
678
+
679
+ describe "configuration with environment variables" do
680
+ before { choose_environment_config }
681
+
682
+ it_behaves_like "windows installation"
683
+ it_behaves_like "capistrano install"
684
+ it_behaves_like "demo data"
685
+
686
+ it "prints environment variables" do
687
+ run
688
+
689
+ expect(output).to include_env_push_api_key(push_api_key)
690
+ expect(output).to include_env_app_name(app_name)
691
+ end
692
+
693
+ it "completes the installation" do
694
+ run
695
+
696
+ expect(output).to include(*installation_instructions)
697
+ expect(output).to include_complete_install
698
+ end
699
+ end
700
+
701
+ describe "configure with a configuration file" do
702
+ before { choose_config_file }
703
+
704
+ it_behaves_like "windows installation"
705
+ it_behaves_like "capistrano install"
706
+ it_behaves_like "demo data"
707
+
708
+ it "writes configuration to file" do
709
+ run
710
+ expect(output).to include_file_config
711
+ expect(config_file).to configure_app_name(app_name)
712
+ expect(config_file).to configure_push_api_key(push_api_key)
713
+ expect(config_file).to configure_environment("development")
714
+ expect(config_file).to configure_environment("staging")
715
+ expect(config_file).to configure_environment("production")
716
+ end
717
+
718
+ it "completes the installation" do
719
+ run
720
+
721
+ expect(output).to include(*installation_instructions)
722
+ expect(output).to include_complete_install
723
+ end
724
+ end
725
+ end
726
+ end
727
+ end
728
+
729
+ if !rails_present? && !sinatra_present? && !padrino_present? && !grape_present? && !hanami2_present?
664
730
  context "with unknown framework" do
665
731
  let(:push_api_key) { "my_key" }
666
732
 
@@ -0,0 +1,116 @@
1
+ # frozen_string_literal: true
2
+
3
+ if DependencyHelper.hanami2_present?
4
+ describe "Hanami integration" do
5
+ require "appsignal/integrations/hanami"
6
+
7
+ before do
8
+ allow(Appsignal).to receive(:active?).and_return(true)
9
+ allow(Appsignal).to receive(:start).and_return(true)
10
+ allow(Appsignal).to receive(:start_logger).and_return(true)
11
+ end
12
+
13
+ describe Appsignal::Integrations::HanamiPlugin do
14
+ it "starts AppSignal on init" do
15
+ expect(Appsignal).to receive(:start)
16
+ end
17
+
18
+ it "starts the logger on init" do
19
+ expect(Appsignal).to receive(:start_logger)
20
+ end
21
+
22
+ it "prepends the integration to Hanami" do
23
+ expect(::Hanami::Action).to receive(:send).with(:prepend, Appsignal::Integrations::HanamiIntegration)
24
+ end
25
+
26
+ context "when not active" do
27
+ before { allow(Appsignal).to receive(:active?).and_return(false) }
28
+
29
+ it "does not prepend the integration" do
30
+ expect(::Hanami::Action).to_not receive(:send).with(:prepend, Appsignal::Integrations::HanamiIntegration)
31
+ end
32
+ end
33
+
34
+ context "when APPSIGNAL_APP_ENV ENV var is provided" do
35
+ it "uses this as the environment" do
36
+ ENV["APPSIGNAL_APP_ENV"] = "custom"
37
+
38
+ # Reset the plugin to pull down the latest data
39
+ Appsignal::Integrations::HanamiPlugin.init
40
+
41
+ expect(Appsignal.config.env).to eq("custom")
42
+ end
43
+ end
44
+
45
+ context "when APPSIGNAL_APP_ENV ENV var is not provided" do
46
+ it "uses the Hanami environment" do
47
+ # Reset the plugin to pull down the latest data
48
+ Appsignal::Integrations::HanamiPlugin.init
49
+
50
+ expect(Appsignal.config.env).to eq("test")
51
+ end
52
+ end
53
+
54
+ after { Appsignal::Integrations::HanamiPlugin.init }
55
+ end
56
+
57
+ describe "Hanami Actions" do
58
+ let(:env) do
59
+ Rack::MockRequest.env_for(
60
+ "/books",
61
+ "router.params" => router_params,
62
+ :method => "GET"
63
+ )
64
+ end
65
+
66
+ let(:router_params) { { :foo => "bar", :baz => "qux" } }
67
+
68
+ describe "#call", :error => false do
69
+ it "sets params" do
70
+ expect_any_instance_of(Appsignal::Transaction).to receive(:params=).with(router_params)
71
+ end
72
+
73
+ it "sets the action name" do
74
+ expect_any_instance_of(Appsignal::Transaction).to receive(:set_action_if_nil).with("HanamiApp::Actions::Books::Index")
75
+ end
76
+
77
+ it "sets the metadata" do
78
+ expect_any_instance_of(Appsignal::Transaction).to receive(:set_metadata).with("status", "200")
79
+ expect_any_instance_of(Appsignal::Transaction).to receive(:set_metadata).with("path", "/books")
80
+ expect_any_instance_of(Appsignal::Transaction).to receive(:set_metadata).with("method", "GET")
81
+ end
82
+
83
+ it "sets the queue start" do
84
+ expect_any_instance_of(Appsignal::Transaction).to receive(:set_http_or_background_queue_start)
85
+ end
86
+
87
+ context "with error", :error => true do
88
+ let(:error) { HanamiApp::ExampleError }
89
+
90
+ it "records the exception" do
91
+ expect_any_instance_of(Appsignal::Transaction).to receive(:set_error).with(error)
92
+ end
93
+
94
+ it "sets the status to 500" do
95
+ expect_any_instance_of(Appsignal::Transaction).to receive(:set_metadata).with("status", "500")
96
+ expect_any_instance_of(Appsignal::Transaction).to receive(:set_metadata).twice
97
+ end
98
+ end
99
+
100
+ after(:error => false) do
101
+ Appsignal::Integrations::HanamiPlugin.init
102
+
103
+ action = HanamiApp::Actions::Books::Index.new
104
+ action.call(env)
105
+ end
106
+
107
+ after(:error => true) do
108
+ Appsignal::Integrations::HanamiPlugin.init
109
+
110
+ action = HanamiApp::Actions::Books::Error.new
111
+ expect { action.call(env) }.to raise_error(error)
112
+ end
113
+ end
114
+ end
115
+ end
116
+ end
data/spec/spec_helper.rb CHANGED
@@ -29,6 +29,11 @@ if DependencyHelper.rails_present?
29
29
  require f
30
30
  end
31
31
  end
32
+ if DependencyHelper.hanami2_present?
33
+ Dir[File.join(DirectoryHelper.support_dir, "hanami", "*.rb")].each do |f|
34
+ require f
35
+ end
36
+ end
32
37
  require "pry" if DependencyHelper.dependency_present?("pry")
33
38
  require "appsignal"
34
39
  # Include patches of AppSignal modules and classes to make test helpers
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "hanami"
4
+ require "hanami/action"
5
+
6
+ module HanamiApp
7
+ class App < Hanami::App
8
+ end
9
+
10
+ class Routes < Hanami::Routes
11
+ get "/books", :to => "books.index"
12
+ end
13
+
14
+ module Actions
15
+ module Books
16
+ class Index < Hanami::Action
17
+ def handle(_request, response)
18
+ response.body = "YOU REQUESTED BOOKS!"
19
+ end
20
+ end
21
+
22
+ class Error < Hanami::Action
23
+ def handle(_request, _response)
24
+ raise ExampleError
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ class ExampleError < StandardError; end
31
+ end
@@ -9,6 +9,10 @@ module DependencyHelper
9
9
  ruby_version.segments.take(2) == [2, 0]
10
10
  end
11
11
 
12
+ def ruby_3_0_or_newer?
13
+ ruby_version >= Gem::Version.new("3.0.0")
14
+ end
15
+
12
16
  def ruby_3_1_or_newer?
13
17
  ruby_version >= Gem::Version.new("3.1.0")
14
18
  end
@@ -115,6 +119,14 @@ module DependencyHelper
115
119
  dependency_present? "que"
116
120
  end
117
121
 
122
+ def hanami_present?
123
+ dependency_present? "hanami"
124
+ end
125
+
126
+ def hanami2_present?
127
+ ruby_3_0_or_newer? && hanami_present? && Gem.loaded_specs["hanami"].version >= Gem::Version.new("2.0")
128
+ end
129
+
118
130
  def dependency_present?(dependency_file)
119
131
  Gem.loaded_specs.key? dependency_file
120
132
  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.2.2
4
+ version: 3.3.1
5
5
  platform: java
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-12-13 00:00:00.000000000 Z
13
+ date: 2023-01-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rack
@@ -175,6 +175,7 @@ files:
175
175
  - gemfiles/capistrano2.gemfile
176
176
  - gemfiles/capistrano3.gemfile
177
177
  - gemfiles/grape.gemfile
178
+ - gemfiles/hanami.gemfile
178
179
  - gemfiles/http5.gemfile
179
180
  - gemfiles/no_dependencies.gemfile
180
181
  - gemfiles/padrino.gemfile
@@ -254,6 +255,7 @@ files:
254
255
  - lib/appsignal/integrations/delayed_job_plugin.rb
255
256
  - lib/appsignal/integrations/excon.rb
256
257
  - lib/appsignal/integrations/grape.rb
258
+ - lib/appsignal/integrations/hanami.rb
257
259
  - lib/appsignal/integrations/http.rb
258
260
  - lib/appsignal/integrations/mongo_ruby_driver.rb
259
261
  - lib/appsignal/integrations/net_http.rb
@@ -353,6 +355,7 @@ files:
353
355
  - spec/lib/appsignal/hooks_spec.rb
354
356
  - spec/lib/appsignal/integrations/data_mapper_spec.rb
355
357
  - spec/lib/appsignal/integrations/grape_spec.rb
358
+ - spec/lib/appsignal/integrations/hanami_spec.rb
356
359
  - spec/lib/appsignal/integrations/http_spec.rb
357
360
  - spec/lib/appsignal/integrations/mongo_ruby_driver_spec.rb
358
361
  - spec/lib/appsignal/integrations/object_spec.rb
@@ -392,6 +395,7 @@ files:
392
395
  - spec/support/fixtures/projects/valid/config/environments/test.rb
393
396
  - spec/support/fixtures/projects/valid/log/.gitkeep
394
397
  - spec/support/fixtures/uploaded_file.txt
398
+ - spec/support/hanami/hanami_app.rb
395
399
  - spec/support/helpers/action_mailer_helpers.rb
396
400
  - spec/support/helpers/activejob_helpers.rb
397
401
  - spec/support/helpers/api_request_helper.rb
@@ -448,7 +452,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
448
452
  - !ruby/object:Gem::Version
449
453
  version: '0'
450
454
  requirements: []
451
- rubygems_version: 3.3.26
455
+ rubygems_version: 3.4.2
452
456
  signing_key:
453
457
  specification_version: 4
454
458
  summary: Logs performance and exception data from your app to appsignal.com
@@ -508,6 +512,7 @@ test_files:
508
512
  - spec/lib/appsignal/hooks_spec.rb
509
513
  - spec/lib/appsignal/integrations/data_mapper_spec.rb
510
514
  - spec/lib/appsignal/integrations/grape_spec.rb
515
+ - spec/lib/appsignal/integrations/hanami_spec.rb
511
516
  - spec/lib/appsignal/integrations/http_spec.rb
512
517
  - spec/lib/appsignal/integrations/mongo_ruby_driver_spec.rb
513
518
  - spec/lib/appsignal/integrations/object_spec.rb
@@ -547,6 +552,7 @@ test_files:
547
552
  - spec/support/fixtures/projects/valid/config/environments/test.rb
548
553
  - spec/support/fixtures/projects/valid/log/.gitkeep
549
554
  - spec/support/fixtures/uploaded_file.txt
555
+ - spec/support/hanami/hanami_app.rb
550
556
  - spec/support/helpers/action_mailer_helpers.rb
551
557
  - spec/support/helpers/activejob_helpers.rb
552
558
  - spec/support/helpers/api_request_helper.rb