newrelic_rpm 9.1.0 → 9.21.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.
Files changed (360) hide show
  1. checksums.yaml +4 -4
  2. data/.build_ignore +27 -0
  3. data/CHANGELOG.md +841 -7
  4. data/CONTRIBUTING.md +2 -9
  5. data/README.md +25 -22
  6. data/Rakefile +2 -2
  7. data/bin/newrelic +3 -9
  8. data/bin/newrelic_rpm +15 -0
  9. data/init.rb +2 -2
  10. data/lib/boot/strap.rb +102 -0
  11. data/lib/new_relic/agent/agent.rb +11 -2
  12. data/lib/new_relic/agent/agent_helpers/connect.rb +13 -8
  13. data/lib/new_relic/agent/agent_helpers/harvest.rb +3 -0
  14. data/lib/new_relic/agent/agent_helpers/shutdown.rb +4 -1
  15. data/lib/new_relic/agent/agent_helpers/special_startup.rb +1 -1
  16. data/lib/new_relic/agent/agent_helpers/start_worker_thread.rb +4 -3
  17. data/lib/new_relic/agent/agent_helpers/startup.rb +11 -3
  18. data/lib/new_relic/agent/agent_logger.rb +3 -1
  19. data/lib/new_relic/agent/attribute_filter.rb +3 -3
  20. data/lib/new_relic/agent/attribute_pre_filtering.rb +109 -0
  21. data/lib/new_relic/agent/aws.rb +68 -0
  22. data/lib/new_relic/agent/configuration/default_source.rb +918 -166
  23. data/lib/new_relic/agent/configuration/environment_source.rb +15 -3
  24. data/lib/new_relic/agent/configuration/high_security_source.rb +1 -0
  25. data/lib/new_relic/agent/configuration/manager.rb +72 -11
  26. data/lib/new_relic/agent/configuration/security_policy_source.rb +11 -0
  27. data/lib/new_relic/agent/configuration/yaml_source.rb +22 -2
  28. data/lib/new_relic/agent/connect/request_builder.rb +1 -1
  29. data/lib/new_relic/agent/custom_event_aggregator.rb +27 -1
  30. data/lib/new_relic/agent/database/obfuscation_helpers.rb +11 -11
  31. data/lib/new_relic/agent/database/obfuscator.rb +1 -0
  32. data/lib/new_relic/agent/database.rb +41 -1
  33. data/lib/new_relic/agent/database_adapter.rb +1 -1
  34. data/lib/new_relic/agent/datastores/mongo/metric_translator.rb +1 -1
  35. data/lib/new_relic/agent/datastores/redis.rb +1 -1
  36. data/lib/new_relic/agent/distributed_tracing/cross_app_tracing.rb +1 -1
  37. data/lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb +4 -8
  38. data/lib/new_relic/agent/distributed_tracing.rb +5 -3
  39. data/lib/new_relic/agent/error_collector.rb +40 -11
  40. data/lib/new_relic/agent/event_loop.rb +1 -1
  41. data/lib/new_relic/agent/external.rb +2 -0
  42. data/lib/new_relic/agent/harvester.rb +1 -1
  43. data/lib/new_relic/agent/health_check.rb +136 -0
  44. data/lib/new_relic/agent/http_clients/abstract.rb +4 -0
  45. data/lib/new_relic/agent/http_clients/async_http_wrappers.rb +80 -0
  46. data/lib/new_relic/agent/http_clients/curb_wrappers.rb +1 -3
  47. data/lib/new_relic/agent/http_clients/ethon_wrappers.rb +109 -0
  48. data/lib/new_relic/agent/http_clients/excon_wrappers.rb +0 -3
  49. data/lib/new_relic/agent/http_clients/http_rb_wrappers.rb +1 -3
  50. data/lib/new_relic/agent/http_clients/httpclient_wrappers.rb +0 -3
  51. data/lib/new_relic/agent/http_clients/httpx_wrappers.rb +91 -0
  52. data/lib/new_relic/agent/http_clients/net_http_wrappers.rb +1 -4
  53. data/lib/new_relic/agent/http_clients/typhoeus_wrappers.rb +0 -3
  54. data/lib/new_relic/agent/http_clients/uri_util.rb +1 -1
  55. data/lib/new_relic/agent/instrumentation/action_controller_other_subscriber.rb +1 -1
  56. data/lib/new_relic/agent/instrumentation/action_dispatch.rb +1 -1
  57. data/lib/new_relic/agent/instrumentation/action_dispatch_subscriber.rb +1 -1
  58. data/lib/new_relic/agent/instrumentation/action_mailbox.rb +1 -1
  59. data/lib/new_relic/agent/instrumentation/action_mailer.rb +1 -1
  60. data/lib/new_relic/agent/instrumentation/active_job.rb +1 -1
  61. data/lib/new_relic/agent/instrumentation/active_job_subscriber.rb +6 -2
  62. data/lib/new_relic/agent/instrumentation/active_merchant.rb +3 -16
  63. data/lib/new_relic/agent/instrumentation/active_record.rb +8 -13
  64. data/lib/new_relic/agent/instrumentation/active_record_helper.rb +8 -5
  65. data/lib/new_relic/agent/instrumentation/active_record_notifications.rb +13 -10
  66. data/lib/new_relic/agent/instrumentation/active_record_prepend.rb +2 -2
  67. data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +9 -16
  68. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/chain.rb +69 -0
  69. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/instrumentation.rb +17 -0
  70. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/prepend.rb +37 -0
  71. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger.rb +21 -0
  72. data/lib/new_relic/agent/instrumentation/active_support_logger/instrumentation.rb +4 -0
  73. data/lib/new_relic/agent/instrumentation/active_support_logger.rb +3 -3
  74. data/lib/new_relic/agent/instrumentation/async_http/chain.rb +23 -0
  75. data/lib/new_relic/agent/instrumentation/async_http/instrumentation.rb +37 -0
  76. data/lib/new_relic/agent/instrumentation/async_http/prepend.rb +15 -0
  77. data/lib/new_relic/agent/instrumentation/async_http.rb +27 -0
  78. data/lib/new_relic/agent/instrumentation/aws_sdk_firehose/chain.rb +21 -0
  79. data/lib/new_relic/agent/instrumentation/aws_sdk_firehose/instrumentation.rb +66 -0
  80. data/lib/new_relic/agent/instrumentation/aws_sdk_firehose/prepend.rb +15 -0
  81. data/lib/new_relic/agent/instrumentation/aws_sdk_firehose.rb +22 -0
  82. data/lib/new_relic/agent/instrumentation/aws_sdk_kinesis/chain.rb +21 -0
  83. data/lib/new_relic/agent/instrumentation/aws_sdk_kinesis/instrumentation.rb +91 -0
  84. data/lib/new_relic/agent/instrumentation/aws_sdk_kinesis/prepend.rb +15 -0
  85. data/lib/new_relic/agent/instrumentation/aws_sdk_kinesis.rb +22 -0
  86. data/lib/new_relic/agent/instrumentation/aws_sdk_lambda/chain.rb +33 -0
  87. data/lib/new_relic/agent/instrumentation/aws_sdk_lambda/instrumentation.rb +93 -0
  88. data/lib/new_relic/agent/instrumentation/aws_sdk_lambda/prepend.rb +23 -0
  89. data/lib/new_relic/agent/instrumentation/aws_sdk_lambda.rb +23 -0
  90. data/lib/new_relic/agent/instrumentation/aws_sqs/chain.rb +37 -0
  91. data/lib/new_relic/agent/instrumentation/aws_sqs/instrumentation.rb +67 -0
  92. data/lib/new_relic/agent/instrumentation/aws_sqs/prepend.rb +21 -0
  93. data/lib/new_relic/agent/instrumentation/aws_sqs.rb +23 -0
  94. data/lib/new_relic/agent/instrumentation/bunny/chain.rb +1 -1
  95. data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +23 -0
  96. data/lib/new_relic/agent/instrumentation/bunny.rb +4 -5
  97. data/lib/new_relic/agent/instrumentation/concurrent_ruby/chain.rb +1 -1
  98. data/lib/new_relic/agent/instrumentation/concurrent_ruby/instrumentation.rb +3 -4
  99. data/lib/new_relic/agent/instrumentation/concurrent_ruby/prepend.rb +1 -1
  100. data/lib/new_relic/agent/instrumentation/concurrent_ruby.rb +2 -3
  101. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +5 -2
  102. data/lib/new_relic/agent/instrumentation/curb/instrumentation.rb +4 -0
  103. data/lib/new_relic/agent/instrumentation/curb.rb +4 -5
  104. data/lib/new_relic/agent/instrumentation/delayed_job/chain.rb +1 -0
  105. data/lib/new_relic/agent/instrumentation/delayed_job/instrumentation.rb +3 -0
  106. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +0 -23
  107. data/lib/new_relic/agent/instrumentation/dynamodb/chain.rb +27 -0
  108. data/lib/new_relic/agent/instrumentation/dynamodb/instrumentation.rb +64 -0
  109. data/lib/new_relic/agent/instrumentation/dynamodb/prepend.rb +19 -0
  110. data/lib/new_relic/agent/instrumentation/dynamodb.rb +23 -0
  111. data/lib/new_relic/agent/instrumentation/elasticsearch/chain.rb +2 -3
  112. data/lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb +65 -10
  113. data/lib/new_relic/agent/instrumentation/elasticsearch.rb +2 -4
  114. data/lib/new_relic/agent/instrumentation/ethon/chain.rb +39 -0
  115. data/lib/new_relic/agent/instrumentation/ethon/instrumentation.rb +105 -0
  116. data/lib/new_relic/agent/instrumentation/ethon/prepend.rb +35 -0
  117. data/lib/new_relic/agent/instrumentation/ethon.rb +35 -0
  118. data/lib/new_relic/agent/instrumentation/excon/middleware.rb +3 -0
  119. data/lib/new_relic/agent/instrumentation/excon.rb +1 -17
  120. data/lib/new_relic/agent/instrumentation/fiber/chain.rb +11 -4
  121. data/lib/new_relic/agent/instrumentation/fiber/instrumentation.rb +2 -6
  122. data/lib/new_relic/agent/instrumentation/fiber/prepend.rb +10 -3
  123. data/lib/new_relic/agent/instrumentation/fiber.rb +1 -3
  124. data/lib/new_relic/agent/instrumentation/grape/instrumentation.rb +4 -3
  125. data/lib/new_relic/agent/instrumentation/grape.rb +1 -1
  126. data/lib/new_relic/agent/instrumentation/grpc/client/chain.rb +1 -1
  127. data/lib/new_relic/agent/instrumentation/grpc/client/instrumentation.rb +5 -2
  128. data/lib/new_relic/agent/instrumentation/grpc/client/prepend.rb +1 -1
  129. data/lib/new_relic/agent/instrumentation/grpc/client/request_wrapper.rb +1 -1
  130. data/lib/new_relic/agent/instrumentation/grpc/server/instrumentation.rb +5 -1
  131. data/lib/new_relic/agent/instrumentation/grpc_client.rb +2 -2
  132. data/lib/new_relic/agent/instrumentation/grpc_server.rb +2 -2
  133. data/lib/new_relic/agent/instrumentation/httpclient/instrumentation.rb +4 -0
  134. data/lib/new_relic/agent/instrumentation/httpclient.rb +1 -5
  135. data/lib/new_relic/agent/instrumentation/httprb/instrumentation.rb +4 -0
  136. data/lib/new_relic/agent/instrumentation/httprb.rb +0 -1
  137. data/lib/new_relic/agent/instrumentation/httpx/chain.rb +20 -0
  138. data/lib/new_relic/agent/instrumentation/httpx/instrumentation.rb +51 -0
  139. data/lib/new_relic/agent/instrumentation/httpx/prepend.rb +15 -0
  140. data/lib/new_relic/agent/instrumentation/httpx.rb +23 -0
  141. data/lib/new_relic/agent/instrumentation/logger/instrumentation.rb +3 -0
  142. data/lib/new_relic/agent/instrumentation/logger.rb +1 -3
  143. data/lib/new_relic/agent/instrumentation/logstasher/chain.rb +21 -0
  144. data/lib/new_relic/agent/instrumentation/logstasher/instrumentation.rb +24 -0
  145. data/lib/new_relic/agent/instrumentation/logstasher/prepend.rb +13 -0
  146. data/lib/new_relic/agent/instrumentation/logstasher.rb +25 -0
  147. data/lib/new_relic/agent/instrumentation/memcache/dalli.rb +4 -2
  148. data/lib/new_relic/agent/instrumentation/memcache/helper.rb +2 -2
  149. data/lib/new_relic/agent/instrumentation/memcache/instrumentation.rb +13 -4
  150. data/lib/new_relic/agent/instrumentation/memcache/prepend.rb +4 -2
  151. data/lib/new_relic/agent/instrumentation/memcache.rb +4 -5
  152. data/lib/new_relic/agent/instrumentation/mongodb_command_subscriber.rb +3 -5
  153. data/lib/new_relic/agent/instrumentation/net_http/instrumentation.rb +13 -3
  154. data/lib/new_relic/agent/instrumentation/net_http.rb +2 -1
  155. data/lib/new_relic/agent/instrumentation/notifications_subscriber.rb +4 -2
  156. data/lib/new_relic/agent/instrumentation/opensearch/chain.rb +21 -0
  157. data/lib/new_relic/agent/instrumentation/opensearch/instrumentation.rb +66 -0
  158. data/lib/new_relic/agent/instrumentation/opensearch/prepend.rb +13 -0
  159. data/lib/new_relic/agent/instrumentation/opensearch.rb +23 -0
  160. data/lib/new_relic/agent/instrumentation/padrino/instrumentation.rb +4 -0
  161. data/lib/new_relic/agent/instrumentation/padrino.rb +3 -3
  162. data/lib/new_relic/agent/instrumentation/queue_time.rb +1 -1
  163. data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +9 -0
  164. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +4 -0
  165. data/lib/new_relic/agent/instrumentation/rails_notifications/action_cable.rb +1 -1
  166. data/lib/new_relic/agent/instrumentation/rails_notifications/action_controller.rb +10 -5
  167. data/lib/new_relic/agent/instrumentation/rake/instrumentation.rb +4 -0
  168. data/lib/new_relic/agent/instrumentation/rake.rb +1 -2
  169. data/lib/new_relic/agent/instrumentation/rdkafka/chain.rb +72 -0
  170. data/lib/new_relic/agent/instrumentation/rdkafka/instrumentation.rb +70 -0
  171. data/lib/new_relic/agent/instrumentation/rdkafka/prepend.rb +67 -0
  172. data/lib/new_relic/agent/instrumentation/rdkafka.rb +25 -0
  173. data/lib/new_relic/agent/instrumentation/redis/cluster_middleware.rb +26 -0
  174. data/lib/new_relic/agent/instrumentation/redis/constants.rb +2 -2
  175. data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +18 -11
  176. data/lib/new_relic/agent/instrumentation/redis/middleware.rb +3 -0
  177. data/lib/new_relic/agent/instrumentation/redis.rb +11 -5
  178. data/lib/new_relic/agent/instrumentation/resque/instrumentation.rb +4 -0
  179. data/lib/new_relic/agent/instrumentation/resque.rb +8 -6
  180. data/lib/new_relic/agent/instrumentation/roda/chain.rb +43 -0
  181. data/lib/new_relic/agent/instrumentation/roda/ignorer.rb +45 -0
  182. data/lib/new_relic/agent/instrumentation/roda/instrumentation.rb +68 -0
  183. data/lib/new_relic/agent/instrumentation/roda/prepend.rb +24 -0
  184. data/lib/new_relic/agent/instrumentation/roda/roda_transaction_namer.rb +29 -0
  185. data/lib/new_relic/agent/instrumentation/roda.rb +36 -0
  186. data/lib/new_relic/agent/instrumentation/ruby_kafka/chain.rb +55 -0
  187. data/lib/new_relic/agent/instrumentation/ruby_kafka/instrumentation.rb +67 -0
  188. data/lib/new_relic/agent/instrumentation/ruby_kafka/prepend.rb +60 -0
  189. data/lib/new_relic/agent/instrumentation/ruby_kafka.rb +25 -0
  190. data/lib/new_relic/agent/instrumentation/ruby_openai/chain.rb +36 -0
  191. data/lib/new_relic/agent/instrumentation/ruby_openai/instrumentation.rb +196 -0
  192. data/lib/new_relic/agent/instrumentation/ruby_openai/prepend.rb +20 -0
  193. data/lib/new_relic/agent/instrumentation/ruby_openai.rb +35 -0
  194. data/lib/new_relic/agent/instrumentation/sequel.rb +1 -1
  195. data/lib/new_relic/agent/instrumentation/sidekiq/client.rb +4 -0
  196. data/lib/new_relic/agent/instrumentation/sidekiq/extensions/delay_extensions.rb +24 -0
  197. data/lib/new_relic/agent/instrumentation/sidekiq/extensions/delayed_class.rb +2 -2
  198. data/lib/new_relic/agent/instrumentation/sidekiq/server.rb +26 -3
  199. data/lib/new_relic/agent/instrumentation/sidekiq.rb +13 -16
  200. data/lib/new_relic/agent/instrumentation/sinatra/ignorer.rb +1 -1
  201. data/lib/new_relic/agent/instrumentation/sinatra/instrumentation.rb +4 -0
  202. data/lib/new_relic/agent/instrumentation/sinatra/transaction_namer.rb +1 -3
  203. data/lib/new_relic/agent/instrumentation/sinatra.rb +3 -19
  204. data/lib/new_relic/agent/instrumentation/stripe.rb +28 -0
  205. data/lib/new_relic/agent/instrumentation/stripe_subscriber.rb +98 -0
  206. data/lib/new_relic/agent/instrumentation/thread/chain.rb +1 -1
  207. data/lib/new_relic/agent/instrumentation/thread/instrumentation.rb +1 -5
  208. data/lib/new_relic/agent/instrumentation/thread/prepend.rb +1 -1
  209. data/lib/new_relic/agent/instrumentation/thread.rb +0 -2
  210. data/lib/new_relic/agent/instrumentation/tilt/instrumentation.rb +4 -0
  211. data/lib/new_relic/agent/instrumentation/tilt.rb +0 -4
  212. data/lib/new_relic/agent/instrumentation/typhoeus/instrumentation.rb +7 -3
  213. data/lib/new_relic/agent/instrumentation/typhoeus.rb +0 -1
  214. data/lib/new_relic/agent/instrumentation/view_component/chain.rb +21 -0
  215. data/lib/new_relic/agent/instrumentation/view_component/instrumentation.rb +45 -0
  216. data/lib/{tasks/instrumentation_generator/templates/instrumentation.tt → new_relic/agent/instrumentation/view_component/prepend.rb} +4 -4
  217. data/lib/new_relic/agent/instrumentation/view_component.rb +24 -0
  218. data/lib/new_relic/agent/javascript_instrumentor.rb +2 -4
  219. data/lib/new_relic/agent/llm/chat_completion_message.rb +25 -0
  220. data/lib/new_relic/agent/llm/chat_completion_summary.rb +66 -0
  221. data/lib/new_relic/agent/llm/embedding.rb +60 -0
  222. data/lib/new_relic/agent/llm/llm_event.rb +95 -0
  223. data/lib/new_relic/agent/llm/response_headers.rb +80 -0
  224. data/lib/new_relic/agent/llm.rb +49 -0
  225. data/lib/new_relic/agent/local_log_decorator.rb +20 -3
  226. data/lib/new_relic/agent/log_event_aggregator.rb +149 -26
  227. data/lib/new_relic/agent/log_event_attributes.rb +115 -0
  228. data/lib/new_relic/agent/logging.rb +5 -5
  229. data/lib/new_relic/agent/messaging.rb +18 -7
  230. data/lib/new_relic/agent/method_tracer.rb +4 -1
  231. data/lib/new_relic/agent/method_tracer_helpers.rb +26 -5
  232. data/lib/new_relic/agent/monitors/inbound_request_monitor.rb +1 -1
  233. data/lib/new_relic/agent/monitors/synthetics_monitor.rb +12 -1
  234. data/lib/new_relic/agent/new_relic_service/encoders.rb +2 -2
  235. data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +2 -2
  236. data/lib/new_relic/agent/new_relic_service.rb +61 -28
  237. data/lib/new_relic/agent/obfuscator.rb +0 -2
  238. data/lib/new_relic/agent/opentelemetry/context/propagation/trace_propagator.rb +66 -0
  239. data/lib/new_relic/agent/opentelemetry/context/propagation.rb +15 -0
  240. data/lib/{tasks/instrumentation_generator/templates/Envfile.tt → new_relic/agent/opentelemetry/context.rb} +9 -5
  241. data/lib/new_relic/agent/opentelemetry/trace/span.rb +31 -0
  242. data/lib/new_relic/agent/opentelemetry/trace/tracer.rb +129 -0
  243. data/lib/new_relic/agent/opentelemetry/trace/tracer_provider.rb +18 -0
  244. data/lib/new_relic/agent/opentelemetry/trace.rb +15 -0
  245. data/lib/new_relic/agent/opentelemetry/transaction_patch.rb +69 -0
  246. data/lib/new_relic/agent/opentelemetry_bridge.rb +32 -0
  247. data/lib/new_relic/agent/parameter_filtering.rb +1 -1
  248. data/lib/new_relic/agent/pipe_channel_manager.rb +2 -2
  249. data/lib/new_relic/agent/pipe_service.rb +1 -1
  250. data/lib/new_relic/agent/rules_engine/segment_terms_rule.rb +1 -2
  251. data/lib/new_relic/agent/rules_engine.rb +1 -1
  252. data/lib/new_relic/agent/sampler.rb +1 -0
  253. data/lib/new_relic/agent/samplers/cpu_sampler.rb +1 -1
  254. data/lib/new_relic/agent/samplers/memory_sampler.rb +1 -1
  255. data/lib/new_relic/agent/serverless_handler.rb +406 -0
  256. data/lib/new_relic/agent/serverless_handler_event_sources.json +155 -0
  257. data/lib/new_relic/agent/serverless_handler_event_sources.rb +49 -0
  258. data/lib/new_relic/agent/span_event_primitive.rb +32 -15
  259. data/lib/new_relic/agent/sql_sampler.rb +0 -1
  260. data/lib/new_relic/agent/system_info.rb +40 -0
  261. data/lib/new_relic/agent/threading/agent_thread.rb +1 -2
  262. data/lib/new_relic/agent/threading/backtrace_node.rb +10 -1
  263. data/lib/new_relic/agent/tracer.rb +16 -16
  264. data/lib/new_relic/agent/transaction/abstract_segment.rb +103 -41
  265. data/lib/new_relic/agent/transaction/datastore_segment.rb +1 -1
  266. data/lib/new_relic/agent/transaction/distributed_tracer.rb +3 -3
  267. data/lib/new_relic/agent/transaction/distributed_tracing.rb +7 -8
  268. data/lib/new_relic/agent/transaction/external_request_segment.rb +5 -12
  269. data/lib/new_relic/agent/transaction/message_broker_segment.rb +5 -3
  270. data/lib/new_relic/agent/transaction/request_attributes.rb +54 -11
  271. data/lib/new_relic/agent/transaction/trace_context.rb +34 -5
  272. data/lib/new_relic/agent/transaction/tracing.rb +20 -4
  273. data/lib/new_relic/agent/transaction.rb +38 -13
  274. data/lib/new_relic/agent/transaction_error_primitive.rb +39 -19
  275. data/lib/new_relic/agent/transaction_event_primitive.rb +19 -0
  276. data/lib/new_relic/agent/transaction_time_aggregator.rb +1 -1
  277. data/lib/new_relic/agent/utilization/ecs.rb +22 -0
  278. data/lib/new_relic/agent/utilization/ecs_v4.rb +22 -0
  279. data/lib/new_relic/agent/utilization/gcp.rb +1 -3
  280. data/lib/new_relic/agent/utilization/vendor.rb +5 -7
  281. data/lib/new_relic/agent/utilization_data.rb +40 -5
  282. data/lib/new_relic/agent/vm/{mri_vm.rb → c_ruby_vm.rb} +10 -18
  283. data/lib/new_relic/agent/vm.rb +2 -2
  284. data/lib/new_relic/agent/worker_loop.rb +1 -1
  285. data/lib/new_relic/agent.rb +286 -17
  286. data/lib/new_relic/base64.rb +25 -0
  287. data/lib/new_relic/cli/command.rb +6 -3
  288. data/lib/new_relic/constants.rb +8 -0
  289. data/lib/new_relic/control/class_methods.rb +1 -7
  290. data/lib/new_relic/control/frameworks/grape.rb +14 -0
  291. data/lib/new_relic/control/frameworks/padrino.rb +14 -0
  292. data/lib/new_relic/control/frameworks/rails.rb +17 -5
  293. data/lib/new_relic/control/frameworks/rails4.rb +1 -3
  294. data/lib/new_relic/control/frameworks/roda.rb +20 -0
  295. data/lib/new_relic/control/instance_methods.rb +13 -0
  296. data/lib/new_relic/control/instrumentation.rb +2 -16
  297. data/lib/new_relic/control/private_instance_methods.rb +4 -0
  298. data/lib/new_relic/control/security_interface.rb +57 -0
  299. data/lib/new_relic/control.rb +1 -1
  300. data/lib/new_relic/dependency_detection.rb +25 -13
  301. data/lib/new_relic/environment_report.rb +2 -2
  302. data/lib/new_relic/helper.rb +22 -0
  303. data/lib/new_relic/language_support.rb +12 -1
  304. data/lib/new_relic/latest_changes.rb +1 -1
  305. data/lib/new_relic/local_environment.rb +31 -18
  306. data/lib/new_relic/noticed_error.rb +5 -2
  307. data/lib/new_relic/rack/agent_hooks.rb +1 -1
  308. data/lib/new_relic/rack/agent_middleware.rb +0 -16
  309. data/lib/new_relic/rack/browser_monitoring.rb +29 -13
  310. data/lib/new_relic/supportability_helper.rb +5 -1
  311. data/lib/new_relic/thread_local_storage.rb +31 -0
  312. data/lib/new_relic/traced_thread.rb +2 -3
  313. data/lib/new_relic/version.rb +1 -1
  314. data/lib/sequel/extensions/new_relic_instrumentation.rb +4 -3
  315. data/lib/tasks/bump_version.rake +21 -0
  316. data/lib/tasks/config.rake +11 -5
  317. data/lib/tasks/coverage_report.rake +1 -1
  318. data/lib/tasks/gha.rake +31 -0
  319. data/lib/tasks/helpers/config.html.erb +94 -0
  320. data/lib/tasks/helpers/format.rb +11 -7
  321. data/lib/tasks/helpers/newrelicyml.rb +211 -0
  322. data/lib/tasks/helpers/version_bump.rb +62 -0
  323. data/lib/tasks/newrelic.rb +1 -0
  324. data/lib/tasks/newrelicyml.rake +13 -0
  325. data/lib/tasks/tests.rake +71 -0
  326. data/newrelic.yml +657 -251
  327. data/newrelic_rpm.gemspec +17 -10
  328. data/test/agent_helper.rb +38 -4
  329. metadata +230 -44
  330. data/.gitignore +0 -43
  331. data/.project +0 -23
  332. data/.rubocop.yml +0 -1909
  333. data/.rubocop_todo.yml +0 -61
  334. data/.simplecov +0 -15
  335. data/.snyk +0 -11
  336. data/.yardopts +0 -27
  337. data/Brewfile +0 -12
  338. data/DOCKER.md +0 -167
  339. data/Dockerfile +0 -10
  340. data/Guardfile +0 -26
  341. data/bin/newrelic_cmd +0 -6
  342. data/config/database.yml +0 -5
  343. data/config.dot +0 -278
  344. data/docker-compose.yml +0 -107
  345. data/lefthook.yml +0 -9
  346. data/lib/new_relic/agent/range_extensions.rb +0 -27
  347. data/lib/tasks/helpers/removers.rb +0 -33
  348. data/lib/tasks/instrumentation_generator/README.md +0 -63
  349. data/lib/tasks/instrumentation_generator/TODO.md +0 -33
  350. data/lib/tasks/instrumentation_generator/instrumentation.thor +0 -121
  351. data/lib/tasks/instrumentation_generator/templates/chain.tt +0 -22
  352. data/lib/tasks/instrumentation_generator/templates/chain_method.tt +0 -8
  353. data/lib/tasks/instrumentation_generator/templates/dependency_detection.tt +0 -29
  354. data/lib/tasks/instrumentation_generator/templates/instrumentation_method.tt +0 -3
  355. data/lib/tasks/instrumentation_generator/templates/newrelic.yml.tt +0 -19
  356. data/lib/tasks/instrumentation_generator/templates/prepend.tt +0 -13
  357. data/lib/tasks/instrumentation_generator/templates/prepend_method.tt +0 -3
  358. data/lib/tasks/instrumentation_generator/templates/test.tt +0 -15
  359. data/lib/tasks/multiverse.rake +0 -6
  360. data/lib/tasks/multiverse.rb +0 -83
data/.rubocop.yml DELETED
@@ -1,1909 +0,0 @@
1
- inherit_from: .rubocop_todo.yml
2
-
3
- require:
4
- # Default minitest configurations: https://github.com/rubocop/rubocop-minitest/blob/master/config/default.yml
5
- - rubocop-minitest
6
- # Default performance configurations: https://github.com/rubocop/rubocop-performance/blob/master/config/default.yml
7
- - rubocop-performance
8
- # Default rake configurations: https://github.com/rubocop/rubocop-rake/blob/master/config/default.yml
9
- <%= '- rubocop-rake' if RUBY_VERSION >= '2.4.0' %>
10
-
11
- AllCops:
12
- TargetRubyVersion: 2.7
13
- # Rubocop shouldn't run on auto generated files.
14
- Exclude:
15
- - 'test/multiverse/suites/active_record/db/schema.rb'
16
- - 'test/multiverse/suites/active_record_pg/db/schema.rb'
17
-
18
- # New cops
19
- Layout/LineContinuationLeadingSpace: # new in 1.31
20
- Enabled: true
21
- Layout/LineContinuationSpacing: # new in 1.31
22
- Enabled: true
23
- Lint/ConstantOverwrittenInRescue: # new in 1.31
24
- Enabled: true
25
- Lint/DuplicateMagicComment: # new in 1.37
26
- Enabled: true
27
- Lint/NonAtomicFileOperation: # new in 1.31
28
- Enabled: true
29
- Lint/RefinementImportMethods: # new in 1.27
30
- Enabled: true
31
- Lint/RequireRangeParentheses: # new in 1.32
32
- Enabled: true
33
- Lint/UselessRuby2Keywords: # new in 1.23
34
- Enabled: true
35
- Naming/BlockForwarding: # new in 1.24
36
- Enabled: true
37
- Security/CompoundHash: # new in 1.28
38
- Enabled: true
39
- Style/ArrayIntersect: # new in 1.40
40
- Enabled: true
41
- Style/EmptyHeredoc: # new in 1.32
42
- Enabled: true
43
- Style/FileRead: # new in 1.24
44
- Enabled: true
45
- Style/FileWrite: # new in 1.24
46
- Enabled: true
47
- Style/MagicCommentFormat: # new in 1.35
48
- Enabled: true
49
- Style/MapCompactWithConditionalBlock: # new in 1.30
50
- Enabled: true
51
- Style/MapToSet: # new in 1.42
52
- Enabled: true
53
- Style/MinMaxComparison: # new in 1.42
54
- Enabled: true
55
- Style/NestedFileDirname: # new in 1.26
56
- Enabled: true
57
- Style/ObjectThen: # new in 1.28
58
- Enabled: true
59
- Style/OperatorMethodCall: # new in 1.37
60
- Enabled: true
61
- Style/RedundantConstantBase: # new in 1.40
62
- Enabled: true
63
- Style/RedundantDoubleSplatHashBraces: # new in 1.41
64
- Enabled: true
65
- Style/RedundantEach: # new in 1.38
66
- Enabled: true
67
- Style/RedundantInitialize: # new in 1.27
68
- Enabled: true
69
- Style/RedundantStringEscape: # new in 1.37, 'pending' by default so enabled to make sure it's applied
70
- Enabled: true
71
- Style/YodaExpression: # new in 1.42
72
- Enabled: true
73
- Minitest/AssertKindOf: # new in 0.10
74
- Enabled: true
75
- Minitest/AssertOutput: # new in 0.10
76
- Enabled: true
77
- Minitest/AssertPathExists: # new in 0.10
78
- Enabled: true
79
- Minitest/AssertPredicate: # new in 0.18
80
- Enabled: true
81
- Minitest/AssertRaisesCompoundBody: # new in 0.21
82
- Enabled: true
83
- Minitest/AssertRaisesWithRegexpArgument: # new in 0.22
84
- Enabled: true
85
- Minitest/AssertSilent: # new in 0.10
86
- Enabled: true
87
- Minitest/AssertWithExpectedArgument: # new in 0.11
88
- Enabled: true
89
- Minitest/AssertionInLifecycleHook: # new in 0.10
90
- Enabled: true
91
- Minitest/DuplicateTestRun: # new in 0.19
92
- Enabled: true
93
- Minitest/EmptyLineBeforeAssertionMethods: # new in 0.23
94
- Enabled: true
95
- Minitest/LiteralAsActualArgument: # new in 0.10
96
- Enabled: true
97
- Minitest/MultipleAssertions: # new in 0.10
98
- Enabled: true
99
- Minitest/RefuteInDelta: # new in 0.10
100
- Enabled: true
101
- Minitest/RefuteKindOf: # new in 0.10
102
- Enabled: true
103
- Minitest/RefutePathExists: # new in 0.10
104
- Enabled: true
105
- Minitest/SkipEnsure: # new in 0.20
106
- Enabled: true
107
- Minitest/SkipWithoutReason: # new in 0.24
108
- Enabled: true
109
- Minitest/UnreachableAssertion: # new in 0.14
110
- Enabled: true
111
- Minitest/UnspecifiedException: # new in 0.10
112
- Enabled: true
113
- Performance/AncestorsInclude: # new in 1.7
114
- Enabled: true
115
- Performance/BigDecimalWithNumericArgument: # new in 1.7
116
- Enabled: true
117
- Performance/BlockGivenWithExplicitBlock: # new in 1.9
118
- Enabled: true
119
- Performance/CollectionLiteralInLoop: # new in 1.8
120
- Enabled: true
121
- Performance/ConcurrentMonotonicTime: # new in 1.12
122
- Enabled: true
123
- Performance/ConstantRegexp: # new in 1.9
124
- Enabled: true
125
- Performance/RedundantEqualityComparisonBlock: # new in 1.10
126
- Enabled: true
127
- Performance/RedundantSortBlock: # new in 1.7
128
- Enabled: true
129
- Performance/RedundantSplitRegexpArgument: # new in 1.10
130
- Enabled: true
131
- Performance/RedundantStringChars: # new in 1.7
132
- Enabled: true
133
- Performance/ReverseFirst: # new in 1.7
134
- Enabled: true
135
- Performance/SortReverse: # new in 1.7
136
- Enabled: true
137
- Performance/Squeeze: # new in 1.7
138
- Enabled: true
139
- Performance/StringIdentifierArgument: # new in 1.13
140
- Enabled: true
141
- Performance/StringInclude: # new in 1.7
142
- Enabled: true
143
- Performance/Sum: # new in 1.8, pending so left enabled explicitly until 2.0
144
- Enabled: true
145
-
146
- # Old cops
147
-
148
- Bundler/DuplicatedGem:
149
- Enabled: true
150
- Include:
151
- - '**/*.gemfile'
152
- - '**/Gemfile'
153
- - '**/gems.rb'
154
- - '**/*.gemspec'
155
-
156
- Bundler/GemComment:
157
- Enabled: false
158
-
159
- Bundler/GemFilename:
160
- Enabled: false
161
-
162
- Bundler/GemVersion:
163
- Enabled: false
164
-
165
- Bundler/InsecureProtocolSource:
166
- Enabled: true
167
- Include:
168
- - '**/*.gemfile'
169
- - '**/Gemfile'
170
- - '**/gems.rb'
171
-
172
- Bundler/OrderedGems:
173
- Enabled: false
174
-
175
- Gemspec/DeprecatedAttributeAssignment:
176
- Enabled: true
177
-
178
- Gemspec/DuplicatedAssignment:
179
- Enabled: true
180
- Include:
181
- - '**/*.gemspec'
182
-
183
- Gemspec/OrderedDependencies:
184
- Enabled: false
185
-
186
- Gemspec/RequireMFA:
187
- Enabled: false
188
-
189
- Gemspec/RequiredRubyVersion:
190
- Enabled: false
191
-
192
- Gemspec/RubyVersionGlobalsUsage:
193
- Enabled: false
194
-
195
- Layout/AccessModifierIndentation:
196
- Enabled: true
197
- EnforcedStyle: indent
198
- IndentationWidth: ~
199
-
200
- Layout/ArgumentAlignment:
201
- Enabled: true
202
- EnforcedStyle: with_fixed_indentation
203
-
204
- Layout/ArrayAlignment:
205
- Enabled: true
206
- EnforcedStyle: with_fixed_indentation
207
-
208
- Layout/AssignmentIndentation:
209
- Enabled: true
210
- IndentationWidth: ~
211
-
212
- Layout/BeginEndAlignment:
213
- Enabled: true
214
- EnforcedStyleAlignWith: start_of_line
215
- AutoCorrect: true
216
- Severity: warning
217
-
218
- Layout/BlockAlignment:
219
- Enabled: true
220
- EnforcedStyleAlignWith: either
221
-
222
- Layout/BlockEndNewline:
223
- Enabled: true
224
-
225
- Layout/CaseIndentation:
226
- # Disabled because IndentOneStep can't be configured for one-liner cases. See:
227
- # https://github.com/rubocop-hq/rubocop/issues/6447
228
- Enabled: false
229
-
230
- Layout/ClassStructure:
231
- Enabled: false
232
-
233
- Layout/ClosingHeredocIndentation:
234
- Enabled: true
235
-
236
- Layout/ClosingParenthesisIndentation:
237
- Enabled: true
238
-
239
- Layout/CommentIndentation:
240
- Enabled: true
241
-
242
- # Disabling for now
243
- Layout/ConditionPosition:
244
- Enabled: false
245
-
246
- Layout/DefEndAlignment:
247
- Enabled: true
248
- EnforcedStyleAlignWith: start_of_line
249
- AutoCorrect: true
250
- Severity: warning
251
-
252
- Layout/DotPosition:
253
- Enabled: true
254
- EnforcedStyle: leading
255
-
256
- Layout/ElseAlignment:
257
- Enabled: true
258
-
259
- Layout/EmptyComment:
260
- Enabled: true
261
- AllowBorderComment: true
262
- AllowMarginComment: true
263
-
264
- # Disabling for now
265
- Layout/EmptyLineAfterMagicComment:
266
- Enabled: false
267
-
268
- Layout/EmptyLineAfterMultilineCondition:
269
- Enabled: false
270
-
271
- # Disabling for now
272
- Layout/EmptyLineBetweenDefs:
273
- Enabled: false
274
- # AllowAdjacentOneLineDefs: false
275
- # NumberOfEmptyLines: 1
276
-
277
- Layout/EmptyLines:
278
- Enabled: true
279
-
280
- Layout/EmptyLinesAroundAccessModifier:
281
- Enabled: true
282
-
283
- Layout/EmptyLinesAroundArguments:
284
- Enabled: true
285
-
286
- Layout/EmptyLinesAroundAttributeAccessor:
287
- Enabled: false
288
-
289
- Layout/EmptyLinesAroundBeginBody:
290
- Enabled: true
291
-
292
- Layout/EmptyLinesAroundBlockBody:
293
- Enabled: true
294
- EnforcedStyle: no_empty_lines
295
-
296
- Layout/EmptyLinesAroundClassBody:
297
- Enabled: true
298
- EnforcedStyle: no_empty_lines
299
-
300
- Layout/EmptyLinesAroundExceptionHandlingKeywords:
301
- Enabled: true
302
-
303
- Layout/EmptyLinesAroundMethodBody:
304
- Enabled: true
305
-
306
- Layout/EmptyLinesAroundModuleBody:
307
- Enabled: true
308
- EnforcedStyle: no_empty_lines
309
-
310
- Layout/EndAlignment:
311
- Enabled: true
312
- AutoCorrect: true
313
- EnforcedStyleAlignWith: variable
314
- Severity: warning
315
-
316
- Layout/EndOfLine:
317
- Enabled: true
318
- EnforcedStyle: native
319
-
320
- Layout/ExtraSpacing:
321
- Enabled: true
322
- AllowForAlignment: false
323
- AllowBeforeTrailingComments: false
324
- ForceEqualSignAlignment: false
325
-
326
- Layout/FirstArgumentIndentation:
327
- Enabled: true
328
- EnforcedStyle: consistent
329
- IndentationWidth: ~
330
-
331
- Layout/FirstArrayElementIndentation:
332
- Enabled: true
333
- EnforcedStyle: consistent
334
- IndentationWidth: ~
335
-
336
- Layout/FirstArrayElementLineBreak:
337
- Enabled: false
338
-
339
- Layout/FirstHashElementIndentation:
340
- Enabled: true
341
- EnforcedStyle: consistent
342
- IndentationWidth: ~
343
-
344
- Layout/FirstHashElementLineBreak:
345
- Enabled: false
346
-
347
- Layout/FirstMethodArgumentLineBreak:
348
- Enabled: false
349
-
350
- Layout/FirstMethodParameterLineBreak:
351
- Enabled: false
352
-
353
- Layout/FirstParameterIndentation:
354
- Enabled: false
355
-
356
- Layout/HashAlignment:
357
- Enabled: true
358
- EnforcedHashRocketStyle: key
359
- EnforcedColonStyle: key
360
- EnforcedLastArgumentHashStyle: always_inspect
361
-
362
- Layout/HeredocArgumentClosingParenthesis:
363
- Enabled: false
364
-
365
- # Disabling for now
366
- Layout/HeredocIndentation:
367
- Enabled: false
368
-
369
- Layout/IndentationConsistency:
370
- Enabled: true
371
- EnforcedStyle: normal
372
-
373
- Layout/IndentationStyle:
374
- Enabled: true
375
- IndentationWidth: ~
376
-
377
- Layout/IndentationWidth:
378
- Enabled: true
379
- Width: 2
380
- AllowedPatterns: []
381
-
382
- Layout/InitialIndentation:
383
- Enabled: true
384
-
385
- Layout/LeadingCommentSpace:
386
- Enabled: true
387
-
388
- Layout/LeadingEmptyLines:
389
- Enabled: true
390
-
391
- Layout/LineEndStringConcatenationIndentation:
392
- Enabled: false
393
-
394
- Layout/LineLength:
395
- # TODO: get this down to something closer to the 80 col ideal
396
- # we should be able to manage 120
397
- Max: 576
398
-
399
- Layout/MultilineArrayBraceLayout:
400
- Enabled: true
401
- EnforcedStyle: symmetrical
402
-
403
- Layout/MultilineArrayLineBreaks:
404
- Enabled: false
405
-
406
- Layout/MultilineAssignmentLayout:
407
- Enabled: false
408
-
409
- Layout/MultilineBlockLayout:
410
- Enabled: true
411
-
412
- Layout/MultilineHashBraceLayout:
413
- Enabled: true
414
- EnforcedStyle: symmetrical
415
-
416
- Layout/MultilineHashKeyLineBreaks:
417
- Enabled: false
418
-
419
- Layout/MultilineMethodArgumentLineBreaks:
420
- Enabled: false
421
-
422
- Layout/MultilineMethodCallBraceLayout:
423
- Enabled: true
424
- EnforcedStyle: symmetrical
425
-
426
- Layout/MultilineMethodCallIndentation:
427
- Enabled: true
428
- EnforcedStyle: indented
429
- IndentationWidth: ~
430
-
431
- Layout/MultilineMethodDefinitionBraceLayout:
432
- Enabled: true
433
- EnforcedStyle: symmetrical
434
-
435
- Layout/MultilineOperationIndentation:
436
- Enabled: true
437
- EnforcedStyle: indented
438
- IndentationWidth: ~
439
-
440
- Layout/ParameterAlignment:
441
- Enabled: true
442
- EnforcedStyle: with_fixed_indentation
443
- IndentationWidth: ~
444
-
445
- Layout/RedundantLineBreak:
446
- Enabled: false
447
-
448
- Layout/RescueEnsureAlignment:
449
- Enabled: true
450
-
451
- Layout/SingleLineBlockChain:
452
- Enabled: false
453
-
454
- Layout/SpaceAfterColon:
455
- Enabled: true
456
-
457
- Layout/SpaceAfterComma:
458
- Enabled: true
459
-
460
- Layout/SpaceAfterMethodName:
461
- Enabled: true
462
-
463
- Layout/SpaceAfterNot:
464
- Enabled: true
465
-
466
- Layout/SpaceAfterSemicolon:
467
- Enabled: true
468
-
469
- Layout/SpaceAroundBlockParameters:
470
- Enabled: true
471
- EnforcedStyleInsidePipes: no_space
472
-
473
- Layout/SpaceAroundEqualsInParameterDefault:
474
- Enabled: true
475
- EnforcedStyle: space
476
-
477
- Layout/SpaceAroundKeyword:
478
- Enabled: true
479
-
480
- Layout/SpaceAroundMethodCallOperator:
481
- Enabled: true
482
-
483
- Layout/SpaceAroundOperators:
484
- Enabled: true
485
- AllowForAlignment: true
486
-
487
- Layout/SpaceBeforeBlockBraces:
488
- Enabled: true
489
- EnforcedStyle: space
490
- EnforcedStyleForEmptyBraces: space
491
-
492
- Layout/SpaceBeforeBrackets:
493
- Enabled: false
494
-
495
- Layout/SpaceBeforeComma:
496
- Enabled: true
497
-
498
- Layout/SpaceBeforeComment:
499
- Enabled: true
500
-
501
- Layout/SpaceBeforeFirstArg:
502
- Enabled: true
503
- AllowForAlignment: true
504
-
505
- Layout/SpaceBeforeSemicolon:
506
- Enabled: true
507
-
508
- # Disabling for now
509
- Layout/SpaceInLambdaLiteral:
510
- Enabled: false
511
- # EnforcedStyle: require_no_space
512
-
513
- Layout/SpaceInsideArrayLiteralBrackets:
514
- Enabled: true
515
- EnforcedStyle: no_space
516
- EnforcedStyleForEmptyBrackets: no_space
517
-
518
- Layout/SpaceInsideArrayPercentLiteral:
519
- Enabled: true
520
-
521
- Layout/SpaceInsideBlockBraces:
522
- Enabled: true
523
- EnforcedStyle: space
524
- EnforcedStyleForEmptyBraces: no_space
525
- SpaceBeforeBlockParameters: true
526
-
527
- Layout/SpaceInsideHashLiteralBraces:
528
- Enabled: true
529
- EnforcedStyle: no_space
530
- EnforcedStyleForEmptyBraces: no_space
531
-
532
- Layout/SpaceInsideParens:
533
- Enabled: true
534
- EnforcedStyle: no_space
535
-
536
- # Disabling for now
537
- Layout/SpaceInsidePercentLiteralDelimiters:
538
- Enabled: false
539
-
540
- Layout/SpaceInsideRangeLiteral:
541
- Enabled: true
542
-
543
- Layout/SpaceInsideReferenceBrackets:
544
- Enabled: true
545
- EnforcedStyle: no_space
546
- EnforcedStyleForEmptyBrackets: no_space
547
-
548
- Layout/SpaceInsideStringInterpolation:
549
- Enabled: true
550
- EnforcedStyle: no_space
551
-
552
- Layout/TrailingEmptyLines:
553
- Enabled: true
554
- EnforcedStyle: final_newline
555
-
556
- Layout/TrailingWhitespace:
557
- Enabled: true
558
- AllowInHeredoc: true
559
-
560
- Lint/AmbiguousAssignment:
561
- Enabled: true
562
-
563
- Lint/AmbiguousBlockAssociation:
564
- Enabled: false
565
-
566
- # Disabling for now
567
- Lint/AmbiguousOperator:
568
- Enabled: false
569
-
570
- Lint/AmbiguousOperatorPrecedence:
571
- Enabled: false
572
-
573
- Lint/AmbiguousRange:
574
- Enabled: false
575
-
576
- # Disabling for now
577
- Lint/AmbiguousRegexpLiteral:
578
- Enabled: false
579
-
580
- # Disabling for now
581
- Lint/AssignmentInCondition:
582
- Enabled: false
583
- # AllowSafeAssignment: true
584
-
585
- Lint/BigDecimalNew:
586
- Enabled: true
587
-
588
- # Disabling for now
589
- Lint/BinaryOperatorWithIdenticalOperands:
590
- Enabled: false
591
-
592
- # Disabling for now
593
- Lint/BooleanSymbol:
594
- Enabled: false
595
-
596
- Lint/CircularArgumentReference:
597
- Enabled: true
598
-
599
- # Disabling for now
600
- Lint/ConstantDefinitionInBlock:
601
- Enabled: false
602
-
603
- Lint/ConstantResolution:
604
- Enabled: false
605
-
606
- Lint/Debugger:
607
- Enabled: true
608
-
609
- # Disabling for now
610
- Lint/DeprecatedClassMethods:
611
- Enabled: false
612
-
613
- Lint/DeprecatedConstants:
614
- Enabled: true
615
-
616
- Lint/DeprecatedOpenSSLConstant:
617
- Enabled: true
618
-
619
- Lint/DisjunctiveAssignmentInConstructor:
620
- Enabled: false
621
-
622
- Lint/DuplicateBranch:
623
- Enabled: false
624
-
625
- # Disabling for now
626
- Lint/DuplicateCaseCondition:
627
- Enabled: false
628
-
629
- Lint/DuplicateElsifCondition:
630
- Enabled: true
631
-
632
- Lint/DuplicateHashKey:
633
- Enabled: true
634
-
635
- # Disabling for now
636
- Lint/DuplicateMethods:
637
- Enabled: false
638
-
639
- Lint/DuplicateRegexpCharacterClassElement:
640
- Enabled: true
641
-
642
- Lint/DuplicateRequire:
643
- Enabled: true
644
-
645
- Lint/DuplicateRescueException:
646
- Enabled: true
647
-
648
- Lint/EachWithObjectArgument:
649
- Enabled: true
650
-
651
- Lint/ElseLayout:
652
- Enabled: true
653
-
654
- Lint/EmptyBlock:
655
- Enabled: false
656
-
657
- Lint/EmptyClass:
658
- Enabled: false
659
-
660
- Lint/EmptyConditionalBody:
661
- Enabled: false
662
-
663
- # Disabling for now
664
- Lint/EmptyEnsure:
665
- Enabled: false
666
- # AutoCorrect: true
667
-
668
- Lint/EmptyExpression:
669
- Enabled: true
670
-
671
- Lint/EmptyFile:
672
- Enabled: false
673
-
674
- Lint/EmptyInPattern:
675
- Enabled: false
676
-
677
- Lint/EmptyInterpolation:
678
- Enabled: true
679
-
680
- Lint/EmptyWhen:
681
- Enabled: true
682
- AllowComments: true
683
-
684
- # Disabling for now
685
- Lint/EnsureReturn:
686
- Enabled: false
687
-
688
- Lint/ErbNewArguments:
689
- Enabled: true
690
-
691
- Lint/FlipFlop:
692
- Enabled: true
693
-
694
- # Disabling for now
695
- Lint/FloatComparison:
696
- Enabled: false
697
-
698
- Lint/FloatOutOfRange:
699
- Enabled: true
700
-
701
- Lint/FormatParameterMismatch:
702
- Enabled: true
703
-
704
- Lint/HashCompareByIdentity:
705
- Enabled: false
706
-
707
- Lint/HeredocMethodCallPosition:
708
- Enabled: false
709
-
710
- Lint/IdentityComparison:
711
- Enabled: true
712
-
713
- Lint/ImplicitStringConcatenation:
714
- Enabled: true
715
-
716
- # Disabling for now
717
- Lint/IneffectiveAccessModifier:
718
- Enabled: false
719
-
720
- # Disabling for now
721
- Lint/InheritException:
722
- Enabled: false
723
- # EnforcedStyle: runtime_error
724
-
725
- # Disabling for now
726
- Lint/InterpolationCheck:
727
- Enabled: false
728
-
729
- Lint/LambdaWithoutLiteralBlock:
730
- Enabled: false
731
-
732
- Lint/LiteralAsCondition:
733
- Enabled: true
734
-
735
- Lint/LiteralInInterpolation:
736
- Enabled: true
737
-
738
- Lint/Loop:
739
- Enabled: true
740
-
741
- Lint/MissingCopEnableDirective:
742
- Enabled: true
743
- MaximumRangeSize: .inf
744
-
745
- Lint/MissingSuper:
746
- Enabled: false
747
-
748
- Lint/MixedRegexpCaptureTypes:
749
- Enabled: true
750
-
751
- Lint/MultipleComparison:
752
- Enabled: true
753
-
754
- # Disabling for now
755
- Lint/NestedMethodDefinition:
756
- Enabled: false
757
-
758
- Lint/NestedPercentLiteral:
759
- Enabled: true
760
-
761
- Lint/NextWithoutAccumulator:
762
- Enabled: true
763
-
764
- Lint/NoReturnInBeginEndBlocks:
765
- Enabled: false
766
-
767
- # Disabling for now
768
- Lint/NonDeterministicRequireOrder:
769
- Enabled: false
770
-
771
- # Disabling for now
772
- Lint/NonLocalExitFromIterator:
773
- Enabled: false
774
-
775
- Lint/NumberConversion:
776
- Enabled: false
777
-
778
- Lint/NumberedParameterAssignment:
779
- Enabled: true
780
-
781
- Lint/OrAssignmentToConstant:
782
- Enabled: false
783
-
784
- Lint/OrderedMagicComments:
785
- Enabled: true
786
-
787
- Lint/OutOfRangeRegexpRef:
788
- Enabled: true
789
-
790
- # Disabling for now
791
- Lint/ParenthesesAsGroupedExpression:
792
- Enabled: false
793
-
794
- Lint/PercentStringArray:
795
- Enabled: false
796
-
797
- Lint/PercentSymbolArray:
798
- Enabled: true
799
-
800
- # Disabling for now
801
- Lint/RaiseException:
802
- Enabled: false
803
-
804
- Lint/RandOne:
805
- Enabled: true
806
-
807
- Lint/RedundantCopDisableDirective:
808
- Enabled: true
809
-
810
- Lint/RedundantCopEnableDirective:
811
- Enabled: false
812
-
813
- Lint/RedundantDirGlobSort:
814
- Enabled: false
815
-
816
- # Disabling for now
817
- Lint/RedundantRequireStatement:
818
- Enabled: false
819
-
820
- Lint/RedundantSafeNavigation:
821
- Enabled: false
822
-
823
- # Disabling for now
824
- Lint/RedundantSplatExpansion:
825
- Enabled: false
826
-
827
- # Disabling for now
828
- Lint/RedundantStringCoercion:
829
- Enabled: false
830
-
831
- Lint/RedundantWithIndex:
832
- Enabled: true
833
-
834
- Lint/RedundantWithObject:
835
- Enabled: true
836
-
837
- Lint/RegexpAsCondition:
838
- Enabled: true
839
-
840
- Lint/RequireParentheses:
841
- Enabled: true
842
-
843
- # Disabling for now
844
- Lint/RescueException:
845
- Enabled: false
846
-
847
- Lint/RescueType:
848
- Enabled: true
849
-
850
- Lint/ReturnInVoidContext:
851
- Enabled: true
852
-
853
- Lint/SafeNavigationChain:
854
- Enabled: true
855
- AllowedMethods:
856
- - present?
857
- - blank?
858
- - presence
859
- - try
860
- - try!
861
-
862
- Lint/SafeNavigationConsistency:
863
- Enabled: true
864
- AllowedMethods:
865
- - present?
866
- - blank?
867
- - presence
868
- - try
869
- - try!
870
-
871
- Lint/SafeNavigationWithEmpty:
872
- Enabled: true
873
-
874
- Lint/ScriptPermission:
875
- Enabled: false
876
-
877
- Lint/SelfAssignment:
878
- Enabled: true
879
-
880
- Lint/SendWithMixinArgument:
881
- Enabled: false
882
-
883
- # Disabling for now
884
- Lint/ShadowedArgument:
885
- Enabled: false
886
- # IgnoreImplicitReferences: false
887
-
888
- # Disabling for now
889
- Lint/ShadowedException:
890
- Enabled: false
891
-
892
- Lint/ShadowingOuterLocalVariable:
893
- Enabled: false
894
-
895
- Lint/StructNewOverride:
896
- Enabled: false
897
-
898
- Lint/SuppressedException:
899
- Enabled: false
900
-
901
- # Disabling for now
902
- Lint/SymbolConversion:
903
- Enabled: false
904
-
905
- Lint/Syntax:
906
- Enabled: true
907
-
908
- Lint/ToEnumArguments:
909
- Enabled: false
910
-
911
- Lint/ToJSON:
912
- Enabled: false
913
-
914
- Lint/TopLevelReturnWithArgument:
915
- Enabled: true
916
-
917
- Lint/TrailingCommaInAttributeDeclaration:
918
- Enabled: true
919
-
920
- Lint/TripleQuotes:
921
- Enabled: true
922
-
923
- # Disabling for now
924
- Lint/UnderscorePrefixedVariableName:
925
- Enabled: false
926
-
927
- Lint/UnexpectedBlockArity:
928
- Enabled: false
929
-
930
- # Disabling for now
931
- Lint/UnifiedInteger:
932
- Enabled: false
933
-
934
- Lint/UnmodifiedReduceAccumulator:
935
- Enabled: false
936
-
937
- # Disabling for now
938
- Lint/UnreachableCode:
939
- Enabled: false
940
-
941
- Lint/UnreachableLoop:
942
- Enabled: false
943
-
944
- Lint/UnusedBlockArgument:
945
- Enabled: false
946
-
947
- Lint/UnusedMethodArgument:
948
- Enabled: false
949
-
950
- Lint/UriEscapeUnescape:
951
- Enabled: true
952
-
953
- Lint/UriRegexp:
954
- Enabled: true
955
-
956
- Lint/UselessAccessModifier:
957
- Enabled: false
958
-
959
- # Disabling for now
960
- Lint/UselessAssignment:
961
- Enabled: false
962
-
963
- Lint/UselessMethodDefinition:
964
- Enabled: false
965
-
966
- Lint/UselessSetterCall:
967
- Enabled: true
968
-
969
- # Disabling for now
970
- Lint/UselessTimes:
971
- Enabled: false
972
-
973
- # Disabling for now
974
- Lint/Void:
975
- Enabled: false
976
- # CheckForMethodsWithNoSideEffects: false
977
-
978
- Lint/IncompatibleIoSelectWithFiberScheduler:
979
- Enabled: false
980
-
981
- Lint/RequireRelativeSelfPath:
982
- Enabled: true
983
-
984
- Metrics/BlockLength:
985
- Enabled: false
986
-
987
- Metrics/BlockNesting:
988
- Enabled: false
989
-
990
- Metrics/ClassLength:
991
- Enabled: false
992
-
993
- Metrics/CyclomaticComplexity:
994
- Enabled: false
995
-
996
- Metrics/MethodLength:
997
- Enabled: false
998
-
999
- Metrics/ModuleLength:
1000
- Enabled: false
1001
-
1002
- Metrics/ParameterLists:
1003
- Enabled: false
1004
-
1005
- Metrics/PerceivedComplexity:
1006
- Enabled: false
1007
-
1008
- Migration/DepartmentName:
1009
- Enabled: true
1010
-
1011
- Naming/AccessorMethodName:
1012
- Enabled: false
1013
-
1014
- Naming/AsciiIdentifiers:
1015
- Enabled: false
1016
-
1017
- # Disabling for now
1018
- Naming/BinaryOperatorParameterName:
1019
- Enabled: false
1020
-
1021
- Naming/BlockParameterName:
1022
- Enabled: true
1023
- MinNameLength: 1
1024
- AllowNamesEndingInNumbers: true
1025
- AllowedNames: []
1026
- ForbiddenNames: []
1027
-
1028
- Naming/ClassAndModuleCamelCase:
1029
- Enabled: true
1030
-
1031
- Naming/ConstantName:
1032
- Enabled: true
1033
-
1034
- Naming/FileName:
1035
- Enabled: false
1036
-
1037
- Naming/HeredocDelimiterCase:
1038
- Enabled: true
1039
- EnforcedStyle: uppercase
1040
-
1041
- Naming/HeredocDelimiterNaming:
1042
- Enabled: false
1043
-
1044
- Naming/InclusiveLanguage:
1045
- Enabled: false
1046
-
1047
- Naming/MemoizedInstanceVariableName:
1048
- Enabled: false
1049
-
1050
- Naming/MethodName:
1051
- Enabled: false
1052
-
1053
- Naming/MethodParameterName:
1054
- Enabled: false
1055
-
1056
- Naming/PredicateName:
1057
- Enabled: false
1058
-
1059
- Naming/RescuedExceptionsVariableName:
1060
- Enabled: false
1061
-
1062
- Naming/VariableName:
1063
- Enabled: false
1064
- # EnforcedStyle: snake_case
1065
-
1066
- Naming/VariableNumber:
1067
- Enabled: false
1068
-
1069
- # TODO: OLD RUBIES - Requires 2.7
1070
- Performance/BindCall:
1071
- Enabled: false
1072
-
1073
- # TODO: OLD RUBIES - Requites 2.5
1074
- Performance/DeletePrefix:
1075
- Enabled: false
1076
-
1077
- # TODO: OLD RUBIES - Requires 2.7
1078
- Performance/MapCompact:
1079
- Enabled: false
1080
-
1081
- # TODO: Enable when time can be spent on it (no autocorrect)
1082
- Performance/MethodObjectAsBlock:
1083
- Enabled: false
1084
-
1085
- # Disabling for now
1086
- Security/Eval:
1087
- Enabled: false
1088
-
1089
- # Disabling for now
1090
- Security/JSONLoad:
1091
- Enabled: false
1092
- # AutoCorrect: false
1093
- # SafeAutoCorrect: false
1094
-
1095
- Security/MarshalLoad:
1096
- Enabled: false
1097
-
1098
- Security/Open:
1099
- Enabled: true
1100
- Safe: false
1101
-
1102
- # Disabling for now
1103
- Security/YAMLLoad:
1104
- Enabled: false
1105
- # SafeAutoCorrect: false
1106
-
1107
- Security/IoMethods:
1108
- Enabled: false
1109
- Safe: false
1110
-
1111
- # raised unrecognized cop or department
1112
- # Standard/BlockSingleLineBraces:
1113
- # Enabled: true
1114
-
1115
- Style/AccessModifierDeclarations:
1116
- Enabled: false
1117
-
1118
- Style/AccessorGrouping:
1119
- Enabled: false
1120
-
1121
- # Disabling for now
1122
- Style/Alias:
1123
- Enabled: false
1124
- # EnforcedStyle: prefer_alias_method
1125
-
1126
- # Disabling for now
1127
- Style/AndOr:
1128
- Enabled: false
1129
-
1130
- # Disabled for support of older ruby versions
1131
- Style/ArgumentsForwarding:
1132
- Enabled: false
1133
-
1134
- Style/ArrayCoercion:
1135
- Enabled: false
1136
-
1137
- Style/ArrayJoin:
1138
- Enabled: true
1139
-
1140
- Style/AsciiComments:
1141
- Enabled: false
1142
-
1143
- Style/Attr:
1144
- Enabled: true
1145
-
1146
- Style/AutoResourceCleanup:
1147
- Enabled: false
1148
-
1149
- # Disabling for now
1150
- Style/BarePercentLiterals:
1151
- Enabled: false
1152
- EnforcedStyle: bare_percent
1153
-
1154
- Style/BeginBlock:
1155
- Enabled: true
1156
-
1157
- Style/BisectedAttrAccessor:
1158
- Enabled: false
1159
-
1160
- Style/BlockComments:
1161
- Enabled: true
1162
-
1163
- Style/BlockDelimiters:
1164
- Enabled: false
1165
-
1166
- Style/CaseEquality:
1167
- Enabled: false
1168
-
1169
- Style/CaseLikeIf:
1170
- Enabled: false
1171
-
1172
- Style/CharacterLiteral:
1173
- Enabled: true
1174
-
1175
- Style/ClassAndModuleChildren:
1176
- Enabled: false
1177
-
1178
- # Disabling for now
1179
- Style/ClassCheck:
1180
- Enabled: false
1181
- # EnforcedStyle: is_a?
1182
-
1183
- # Disabling for now
1184
- Style/ClassEqualityComparison:
1185
- Enabled: false
1186
-
1187
- Style/ClassMethods:
1188
- Enabled: true
1189
-
1190
- Style/ClassMethodsDefinitions:
1191
- Enabled: false
1192
-
1193
- Style/ClassVars:
1194
- Enabled: false
1195
-
1196
- Style/CollectionCompact:
1197
- Enabled: false
1198
-
1199
- Style/CollectionMethods:
1200
- Enabled: false
1201
-
1202
- # Disabling for now
1203
- Style/ColonMethodCall:
1204
- Enabled: false
1205
-
1206
- Style/ColonMethodDefinition:
1207
- Enabled: true
1208
-
1209
- Style/CombinableLoops:
1210
- Enabled: false
1211
-
1212
- # Disabling for now
1213
- Style/CommandLiteral:
1214
- Enabled: false
1215
- # EnforcedStyle: mixed
1216
- # AllowInnerBackticks: false
1217
-
1218
- Style/CommentedKeyword:
1219
- Enabled: false
1220
-
1221
- # Disabling for now
1222
- Style/ConditionalAssignment:
1223
- Enabled: false
1224
- # EnforcedStyle: assign_to_condition
1225
- # SingleLineConditionsOnly: true
1226
- # IncludeTernaryExpressions: true
1227
-
1228
- Style/ConstantVisibility:
1229
- Enabled: false
1230
-
1231
- Style/Copyright:
1232
- Enabled: false
1233
-
1234
- Style/DateTime:
1235
- Enabled: false
1236
-
1237
- Style/DefWithParentheses:
1238
- Enabled: true
1239
-
1240
- # Disabling for now
1241
- Style/Dir:
1242
- Enabled: false
1243
-
1244
- Style/DisableCopsWithinSourceCodeDirective:
1245
- Enabled: false
1246
-
1247
- Style/DocumentDynamicEvalDefinition:
1248
- Enabled: false
1249
-
1250
- Style/Documentation:
1251
- Enabled: false
1252
-
1253
- Style/DocumentationMethod:
1254
- Enabled: false
1255
-
1256
- Style/DoubleCopDisableDirective:
1257
- Enabled: false
1258
-
1259
- Style/EachForSimpleLoop:
1260
- Enabled: true
1261
-
1262
- # Disabling for now
1263
- Style/EachWithObject:
1264
- Enabled: false
1265
-
1266
- Style/EmptyBlockParameter:
1267
- Enabled: true
1268
-
1269
- # Disabling for now
1270
- Style/EmptyCaseCondition:
1271
- Enabled: false
1272
-
1273
- Style/EmptyElse:
1274
- Enabled: true
1275
- EnforcedStyle: both
1276
-
1277
- # Disabling for now
1278
- Style/EmptyLambdaParameter:
1279
- Enabled: false
1280
-
1281
- # Disabling for now
1282
- Style/EmptyLiteral:
1283
- Enabled: false
1284
-
1285
- # Disabling for now
1286
- Style/EmptyMethod:
1287
- Enabled: false
1288
- # EnforcedStyle: expanded
1289
-
1290
- Style/EndBlock:
1291
- Enabled: true
1292
- AutoCorrect: true
1293
-
1294
- Style/EndlessMethod:
1295
- Enabled: false
1296
-
1297
- # The use of Dir.home should be preferred over ENV['HOME'], but as of
1298
- # JRuby 9.3.3.0 the use of ENV['HOME'] is required to deliver the desired
1299
- # functionality
1300
- Style/EnvHome:
1301
- Enabled: false
1302
-
1303
- # Disabling for now
1304
- Style/EvalWithLocation:
1305
- Enabled: false
1306
-
1307
- Style/EvenOdd:
1308
- Enabled: false
1309
-
1310
- Style/ExpandPathArguments:
1311
- Enabled: false
1312
-
1313
- Style/ExplicitBlockArgument:
1314
- Enabled: false
1315
-
1316
- Style/ExponentialNotation:
1317
- Enabled: false
1318
-
1319
- Style/FetchEnvVar:
1320
- Enabled: false
1321
-
1322
- Style/FloatDivision:
1323
- Enabled: false
1324
-
1325
- # Disabling for now
1326
- Style/For:
1327
- Enabled: false
1328
- # EnforcedStyle: each
1329
-
1330
- Style/FormatString:
1331
- Enabled: false
1332
-
1333
- Style/FormatStringToken:
1334
- Enabled: false
1335
-
1336
- # Disabling for now
1337
- Style/GlobalStdStream:
1338
- Enabled: false
1339
-
1340
- # Disabling for now
1341
- Style/GlobalVars:
1342
- Enabled: false
1343
- # AllowedVariables: []
1344
-
1345
- Style/GuardClause:
1346
- Enabled: false
1347
-
1348
- Style/HashAsLastArrayItem:
1349
- Enabled: false
1350
-
1351
- # Disabling for now
1352
- Style/HashConversion:
1353
- Enabled: false
1354
-
1355
- Style/HashEachMethods:
1356
- Enabled: false
1357
-
1358
- Style/HashExcept:
1359
- Enabled: true
1360
-
1361
- Style/HashLikeCase:
1362
- Enabled: false
1363
-
1364
- # Documentation: https://docs.rubocop.org/rubocop/cops_style.html#stylehashsyntax
1365
- # I believe we want either hash_rockets or no_mixed_keys
1366
- # Disabling for now
1367
- Style/HashSyntax:
1368
- Enabled: false
1369
- # EnforcedStyle: ruby19_no_mixed_keys
1370
-
1371
- Style/HashTransformKeys:
1372
- Enabled: false
1373
-
1374
- Style/HashTransformValues:
1375
- Enabled: false
1376
-
1377
- # Disabling for now
1378
- Style/IdenticalConditionalBranches:
1379
- Enabled: false
1380
-
1381
- # Disabling for now
1382
- Style/IfInsideElse:
1383
- Enabled: false
1384
-
1385
- Style/IfUnlessModifier:
1386
- Enabled: false
1387
-
1388
- Style/IfUnlessModifierOfIfUnless:
1389
- Enabled: true
1390
-
1391
- Style/IfWithBooleanLiteralBranches:
1392
- Enabled: true
1393
-
1394
- Style/IfWithSemicolon:
1395
- Enabled: true
1396
-
1397
- Style/ImplicitRuntimeError:
1398
- Enabled: false
1399
-
1400
- Style/InPatternThen:
1401
- Enabled: false
1402
-
1403
- # Disabling for now
1404
- Style/InfiniteLoop:
1405
- Enabled: false
1406
-
1407
- Style/InlineComment:
1408
- Enabled: false
1409
-
1410
- Style/InverseMethods:
1411
- Enabled: false
1412
-
1413
- Style/IpAddresses:
1414
- Enabled: false
1415
-
1416
- # Disabling for now
1417
- Style/KeywordParametersOrder:
1418
- Enabled: false
1419
-
1420
- Style/Lambda:
1421
- Enabled: false
1422
-
1423
- Style/LambdaCall:
1424
- Enabled: true
1425
- EnforcedStyle: call
1426
-
1427
- # Disabling for now
1428
- Style/LineEndConcatenation:
1429
- Enabled: false
1430
- # SafeAutoCorrect: false
1431
-
1432
- # TODO: OLD RUBIES - enable this cop after support for Ruby <= 2.5 has been
1433
- # dropped. NewRelic::Agent::InfiniteTracing::Transformer.hash_to_attributes
1434
- # currently does `values.map {}.to_h`. Newer Rubies should
1435
- # use `values.to_h {}` instead.
1436
- Style/MapToHash:
1437
- Enabled: false
1438
-
1439
- Style/MethodCallWithArgsParentheses:
1440
- Enabled: true
1441
- AllowedMethods:
1442
- - add_dependency
1443
- - add_development_dependency
1444
- - expect
1445
- - fail
1446
- - gem
1447
- - include
1448
- - print
1449
- - puts
1450
- - pp
1451
- - raise
1452
- - require
1453
- - skip
1454
- - source
1455
- - stub
1456
- - stub_const
1457
- - use
1458
- AllowedPatterns: [^assert, ^refute]
1459
-
1460
- Style/MethodCallWithoutArgsParentheses:
1461
- Enabled: false
1462
- AllowedMethods: []
1463
-
1464
- Style/MethodCalledOnDoEndBlock:
1465
- Enabled: false
1466
-
1467
- Style/MethodDefParentheses:
1468
- Enabled: true
1469
-
1470
- Style/MinMax:
1471
- Enabled: false
1472
-
1473
- Style/MissingElse:
1474
- Enabled: false
1475
-
1476
- # Disabling for now
1477
- Style/MissingRespondToMissing:
1478
- Enabled: false
1479
-
1480
- # Disabling for now
1481
- Style/MixinGrouping:
1482
- Enabled: false
1483
- # EnforcedStyle: separated
1484
-
1485
- # Disabling for now
1486
- Style/MixinUsage:
1487
- Enabled: false
1488
-
1489
- Style/ModuleFunction:
1490
- Enabled: false
1491
-
1492
- Style/MultilineBlockChain:
1493
- Enabled: false
1494
-
1495
- Style/MultilineIfModifier:
1496
- Enabled: true
1497
-
1498
- Style/MultilineIfThen:
1499
- Enabled: true
1500
-
1501
- Style/MultilineInPatternThen:
1502
- Enabled: false
1503
-
1504
- # Disabling for now
1505
- Style/MultilineMemoization:
1506
- Enabled: false
1507
- # EnforcedStyle: keyword
1508
-
1509
- Style/MultilineMethodSignature:
1510
- Enabled: false
1511
-
1512
- Style/MultilineWhenThen:
1513
- Enabled: true
1514
-
1515
- Style/MultipleComparison:
1516
- Enabled: false
1517
-
1518
- Style/MutableConstant:
1519
- Enabled: false
1520
-
1521
- Style/NegatedIf:
1522
- Enabled: false
1523
-
1524
- Style/NegatedIfElseCondition:
1525
- Enabled: false
1526
-
1527
- Style/NegatedUnless:
1528
- Enabled: false
1529
-
1530
- # Disabling for now
1531
- Style/NegatedWhile:
1532
- Enabled: false
1533
-
1534
- Style/NestedModifier:
1535
- Enabled: true
1536
-
1537
- # Disabling for now
1538
- Style/NestedParenthesizedCalls:
1539
- Enabled: false
1540
- # AllowedMethods:
1541
- # - be
1542
- # - be_a
1543
- # - be_an
1544
- # - be_between
1545
- # - be_falsey
1546
- # - be_kind_of
1547
- # - be_instance_of
1548
- # - be_truthy
1549
- # - be_within
1550
- # - eq
1551
- # - eql
1552
- # - end_with
1553
- # - include
1554
- # - match
1555
- # - raise_error
1556
- # - respond_to
1557
- # - start_with
1558
-
1559
- Style/NestedTernaryOperator:
1560
- Enabled: true
1561
-
1562
- Style/Next:
1563
- Enabled: false
1564
-
1565
- # Disabling for now
1566
- Style/NilLambda:
1567
- Enabled: false
1568
-
1569
- Style/Not:
1570
- Enabled: true
1571
-
1572
- # Disabling for now
1573
- Style/NumericLiteralPrefix:
1574
- Enabled: false
1575
- # EnforcedOctalStyle: zero_with_o
1576
-
1577
- Style/NumericLiterals:
1578
- Enabled: false
1579
-
1580
- Style/NumericPredicate:
1581
- Enabled: false
1582
-
1583
- Style/OneLineConditional:
1584
- Enabled: true
1585
-
1586
- # TODO: UNIT TESTS - tests relying on OpenStruct should be refactored to not
1587
- # do so, given that the use of OpenStruct instances can
1588
- # give a false sense of security with their extreme
1589
- # flexibility that may not match realistic code behavior.
1590
- Style/OpenStructUse:
1591
- Enabled: false
1592
-
1593
- Style/OptionHash:
1594
- Enabled: false
1595
-
1596
- Style/OptionalArguments:
1597
- Enabled: true
1598
-
1599
- Style/OptionalBooleanParameter:
1600
- Enabled: false
1601
-
1602
- Style/ParallelAssignment:
1603
- Enabled: false
1604
-
1605
- Style/ParenthesesAroundCondition:
1606
- Enabled: true
1607
- AllowSafeAssignment: true
1608
- AllowInMultilineConditions: false
1609
-
1610
- Style/PercentLiteralDelimiters:
1611
- Enabled: true
1612
- PreferredDelimiters:
1613
- default: ()
1614
- '%i': '[]'
1615
- '%I': '[]'
1616
- '%r': '{}'
1617
- '%w': '[]'
1618
- '%W': '[]'
1619
-
1620
- Style/PercentQLiterals:
1621
- Enabled: false
1622
-
1623
- Style/PerlBackrefs:
1624
- Enabled: false
1625
-
1626
- Style/PreferredHashMethods:
1627
- Enabled: false
1628
-
1629
- Style/QuotedSymbols:
1630
- Enabled: false
1631
-
1632
- Style/RaiseArgs:
1633
- Enabled: false
1634
-
1635
- Style/RandomWithOffset:
1636
- Enabled: true
1637
-
1638
- Style/RedundantArgument:
1639
- Enabled: false
1640
-
1641
- # Disabling for now
1642
- Style/RedundantAssignment:
1643
- Enabled: false
1644
-
1645
- # Disabling for now
1646
- Style/RedundantBegin:
1647
- Enabled: false
1648
-
1649
- Style/RedundantCapitalW:
1650
- Enabled: false
1651
-
1652
- Style/RedundantCondition:
1653
- Enabled: true
1654
-
1655
- Style/RedundantConditional:
1656
- Enabled: true
1657
-
1658
- Style/RedundantException:
1659
- Enabled: true
1660
-
1661
- Style/RedundantFetchBlock:
1662
- Enabled: true
1663
-
1664
- Style/RedundantFileExtensionInRequire:
1665
- Enabled: true
1666
-
1667
- # Disabling for now
1668
- Style/RedundantFreeze:
1669
- Enabled: false
1670
-
1671
- # Disabling for now
1672
- Style/RedundantInterpolation:
1673
- Enabled: false
1674
-
1675
- # Disabling for now
1676
- Style/RedundantParentheses:
1677
- Enabled: false
1678
-
1679
- # Disabling for now
1680
- Style/RedundantPercentQ:
1681
- Enabled: false
1682
-
1683
- Style/RedundantRegexpCharacterClass:
1684
- Enabled: true
1685
-
1686
- # Disabling for now
1687
- Style/RedundantRegexpEscape:
1688
- Enabled: false
1689
-
1690
- # Disabling for now
1691
- Style/RedundantReturn:
1692
- Enabled: false
1693
- # AllowMultipleReturnValues: false
1694
-
1695
- # Disabling for now
1696
- Style/RedundantSelf:
1697
- Enabled: false
1698
-
1699
- Style/RedundantSelfAssignment:
1700
- Enabled: false
1701
-
1702
- Style/RedundantSelfAssignmentBranch:
1703
- Enabled: false
1704
-
1705
- # Disabling for now
1706
- Style/RedundantSort:
1707
- Enabled: false
1708
-
1709
- Style/RedundantSortBy:
1710
- Enabled: true
1711
-
1712
- Style/RegexpLiteral:
1713
- Enabled: false
1714
-
1715
- # Disabling for now
1716
- Style/RescueModifier:
1717
- Enabled: false
1718
-
1719
- # Disabling for now
1720
- Style/RescueStandardError:
1721
- Enabled: false
1722
- # EnforcedStyle: implicit
1723
-
1724
- Style/ReturnNil:
1725
- Enabled: false
1726
-
1727
- Style/Sample:
1728
- Enabled: true
1729
-
1730
- Style/SelfAssignment:
1731
- Enabled: true
1732
-
1733
- # Disabling for now
1734
- Style/Semicolon:
1735
- Enabled: false
1736
- # AllowAsExpressionSeparator: false
1737
-
1738
- Style/Send:
1739
- Enabled: false
1740
-
1741
- Style/SignalException:
1742
- Enabled: false
1743
-
1744
- Style/SingleArgumentDig:
1745
- Enabled: false
1746
-
1747
- Style/SingleLineBlockParams:
1748
- Enabled: false
1749
-
1750
- # Disabling for now
1751
- Style/SingleLineMethods:
1752
- Enabled: false
1753
- # AllowIfMethodIsEmpty: false
1754
-
1755
- # Disabled for support of older ruby versions
1756
- Style/SlicingWithRange:
1757
- Enabled: false
1758
-
1759
- Style/SoleNestedConditional:
1760
- Enabled: false
1761
-
1762
- Style/SpecialGlobalVars:
1763
- Enabled: false
1764
-
1765
- Style/StabbyLambdaParentheses:
1766
- Enabled: true
1767
- EnforcedStyle: require_parentheses
1768
-
1769
- Style/StaticClass:
1770
- Enabled: false
1771
-
1772
- # Do we want this one? Use warn instead of STDERR.puts
1773
- Style/StderrPuts:
1774
- Enabled: false
1775
-
1776
- Style/StringChars:
1777
- Enabled: true
1778
-
1779
- Style/StringConcatenation:
1780
- Enabled: false
1781
-
1782
- Style/StringHashKeys:
1783
- Enabled: false
1784
-
1785
- Style/StringMethods:
1786
- Enabled: false
1787
-
1788
- Style/Strip:
1789
- Enabled: true
1790
-
1791
- Style/StructInheritance:
1792
- Enabled: false
1793
-
1794
- Style/SwapValues:
1795
- Enabled: false
1796
-
1797
- Style/SymbolArray:
1798
- Enabled: false
1799
-
1800
- # Disabling for now
1801
- Style/SymbolLiteral:
1802
- Enabled: false
1803
-
1804
- Style/SymbolProc:
1805
- Enabled: false
1806
-
1807
- Style/TernaryParentheses:
1808
- Enabled: true
1809
- EnforcedStyle: require_no_parentheses
1810
- AllowSafeAssignment: true
1811
-
1812
- Style/TopLevelMethodDefinition:
1813
- Enabled: false
1814
-
1815
- Style/TrailingBodyOnClass:
1816
- Enabled: true
1817
-
1818
- Style/TrailingBodyOnMethodDefinition:
1819
- Enabled: true
1820
-
1821
- Style/TrailingBodyOnModule:
1822
- Enabled: true
1823
-
1824
- Style/TrailingCommaInArguments:
1825
- Enabled: true
1826
- EnforcedStyleForMultiline: no_comma
1827
-
1828
- Style/TrailingCommaInArrayLiteral:
1829
- Enabled: true
1830
- EnforcedStyleForMultiline: no_comma
1831
-
1832
- Style/TrailingCommaInBlockArgs:
1833
- Enabled: true
1834
-
1835
- Style/TrailingCommaInHashLiteral:
1836
- Enabled: true
1837
- EnforcedStyleForMultiline: no_comma
1838
-
1839
- Style/TrailingMethodEndStatement:
1840
- Enabled: true
1841
-
1842
- Style/TrailingUnderscoreVariable:
1843
- Enabled: false
1844
-
1845
- # Do we want? Performance test first
1846
- Style/TrivialAccessors:
1847
- Enabled: false
1848
- # ExactNameMatch: true
1849
- # AllowPredicates: true
1850
- # AllowDSLWriters: false
1851
- # IgnoreClassMethods: false
1852
- # AllowedMethods:
1853
- # - to_ary
1854
- # - to_a
1855
- # - to_c
1856
- # - to_enum
1857
- # - to_h
1858
- # - to_hash
1859
- # - to_i
1860
- # - to_int
1861
- # - to_io
1862
- # - to_open
1863
- # - to_path
1864
- # - to_proc
1865
- # - to_r
1866
- # - to_regexp
1867
- # - to_str
1868
- # - to_s
1869
- # - to_sym
1870
-
1871
- Style/UnlessElse:
1872
- Enabled: true
1873
-
1874
- Style/UnlessLogicalOperators:
1875
- Enabled: false
1876
-
1877
- # Disabling for now
1878
- Style/UnpackFirst:
1879
- Enabled: false
1880
-
1881
- # Disabling for now
1882
- Style/VariableInterpolation:
1883
- Enabled: false
1884
-
1885
- Style/WhenThen:
1886
- Enabled: true
1887
-
1888
- Style/WhileUntilDo:
1889
- Enabled: true
1890
-
1891
- Style/WhileUntilModifier:
1892
- Enabled: false
1893
-
1894
- # Disabling for now
1895
- Style/YodaCondition:
1896
- Enabled: false
1897
- # EnforcedStyle: forbid_for_all_comparison_operators
1898
-
1899
- Style/ZeroLengthPredicate:
1900
- Enabled: false
1901
-
1902
- Style/NumberedParameters:
1903
- Enabled: false
1904
-
1905
- Style/NumberedParametersLimit:
1906
- Enabled: false
1907
-
1908
- Style/SelectByRegexp:
1909
- Enabled: false