appmap 0.23.0 → 0.25.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 (109) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +17 -8
  4. data/.travis.yml +6 -0
  5. data/CHANGELOG.md +19 -0
  6. data/README.md +29 -12
  7. data/Rakefile +3 -3
  8. data/appmap.gemspec +3 -1
  9. data/exe/appmap +6 -18
  10. data/lib/appmap.rb +47 -6
  11. data/lib/appmap/algorithm/prune_class_map.rb +2 -0
  12. data/lib/appmap/algorithm/stats.rb +4 -2
  13. data/lib/appmap/class_map.rb +143 -0
  14. data/lib/appmap/command/record.rb +8 -6
  15. data/lib/appmap/command/stats.rb +2 -0
  16. data/lib/appmap/command/upload.rb +4 -2
  17. data/lib/appmap/event.rb +168 -0
  18. data/lib/appmap/hook.rb +151 -0
  19. data/lib/appmap/middleware/remote_recording.rb +14 -20
  20. data/lib/appmap/rails/action_handler.rb +10 -6
  21. data/lib/appmap/rails/sql_handler.rb +10 -8
  22. data/lib/appmap/railtie.rb +31 -18
  23. data/lib/appmap/rspec.rb +238 -261
  24. data/lib/appmap/trace.rb +88 -0
  25. data/lib/appmap/version.rb +1 -1
  26. data/package-lock.json +90 -92
  27. data/spec/abstract_controller4_base_spec.rb +1 -1
  28. data/spec/abstract_controller_base_spec.rb +7 -3
  29. data/spec/config_spec.rb +25 -0
  30. data/spec/fixtures/hook/attr_accessor.rb +5 -0
  31. data/spec/fixtures/hook/class_method.rb +17 -0
  32. data/spec/fixtures/hook/constructor.rb +7 -0
  33. data/spec/fixtures/hook/exception_method.rb +11 -0
  34. data/spec/fixtures/hook/instance_method.rb +23 -0
  35. data/spec/fixtures/rails4_users_app/app/controllers/api/users_controller.rb +3 -3
  36. data/spec/fixtures/rails4_users_app/config/database.yml +2 -1
  37. data/spec/fixtures/rails4_users_app/docker-compose.yml +2 -0
  38. data/spec/fixtures/rails_users_app/.ruby-version +1 -1
  39. data/spec/fixtures/rails_users_app/app/controllers/api/users_controller.rb +2 -2
  40. data/spec/fixtures/rails_users_app/config/database.yml +2 -1
  41. data/spec/fixtures/rails_users_app/create_app +1 -0
  42. data/spec/fixtures/rails_users_app/docker-compose.yml +4 -0
  43. data/spec/fixtures/rails_users_app/spec/models/user_spec.rb +1 -1
  44. data/spec/hook_spec.rb +357 -0
  45. data/spec/rails_spec_helper.rb +25 -16
  46. data/spec/railtie_spec.rb +1 -1
  47. data/spec/record_sql_rails_pg_spec.rb +1 -2
  48. data/spec/remote_recording_spec.rb +117 -0
  49. data/spec/spec_helper.rb +1 -0
  50. data/test/cli_test.rb +7 -36
  51. data/test/fixtures/cli_record_test/appmap.yml +2 -1
  52. data/test/fixtures/cli_record_test/lib/cli_record_test/main.rb +4 -2
  53. data/test/test_helper.rb +0 -42
  54. metadata +46 -62
  55. data/exe/_appmap-record-self +0 -49
  56. data/lib/appmap/command/inspect.rb +0 -14
  57. data/lib/appmap/config.rb +0 -65
  58. data/lib/appmap/config/directory.rb +0 -65
  59. data/lib/appmap/config/file.rb +0 -13
  60. data/lib/appmap/config/named_function.rb +0 -21
  61. data/lib/appmap/config/package_dir.rb +0 -52
  62. data/lib/appmap/config/path.rb +0 -25
  63. data/lib/appmap/feature.rb +0 -262
  64. data/lib/appmap/inspect.rb +0 -91
  65. data/lib/appmap/inspect/inspector.rb +0 -99
  66. data/lib/appmap/inspect/parse_node.rb +0 -170
  67. data/lib/appmap/inspect/parser.rb +0 -15
  68. data/lib/appmap/parser.rb +0 -60
  69. data/lib/appmap/rspec/parse_node.rb +0 -41
  70. data/lib/appmap/rspec/parser.rb +0 -15
  71. data/lib/appmap/trace/event_handler/rack_handler_webrick.rb +0 -65
  72. data/lib/appmap/trace/tracer.rb +0 -356
  73. data/spec/fixtures/rails_users_app/bin/_appmap-record-self +0 -29
  74. data/spec/rack_handler_webrick_spec.rb +0 -59
  75. data/test/config_test.rb +0 -149
  76. data/test/explict_inspect_test.rb +0 -29
  77. data/test/fixtures/active_record_like/active_record.rb +0 -2
  78. data/test/fixtures/active_record_like/active_record/aggregations.rb +0 -4
  79. data/test/fixtures/active_record_like/active_record/association.rb +0 -4
  80. data/test/fixtures/active_record_like/active_record/associations/join_dependency.rb +0 -6
  81. data/test/fixtures/active_record_like/active_record/associations/join_dependency/join_base.rb +0 -8
  82. data/test/fixtures/active_record_like/active_record/associations/join_dependency/join_part.rb +0 -8
  83. data/test/fixtures/active_record_like/active_record/caps/caps.rb +0 -4
  84. data/test/fixtures/ignore_non_ruby_file/class.rb +0 -3
  85. data/test/fixtures/ignore_non_ruby_file/non-ruby.txt +0 -1
  86. data/test/fixtures/includes_excludes/lib/a/a_1.rb +0 -6
  87. data/test/fixtures/includes_excludes/lib/a/a_2.rb +0 -6
  88. data/test/fixtures/includes_excludes/lib/a/x/x_1.rb +0 -8
  89. data/test/fixtures/includes_excludes/lib/b/b_1.rb +0 -6
  90. data/test/fixtures/includes_excludes/lib/root_1.rb +0 -4
  91. data/test/fixtures/inspect_multiple_subdirs/module_a.rb +0 -2
  92. data/test/fixtures/inspect_multiple_subdirs/module_a/class_a.rb +0 -5
  93. data/test/fixtures/inspect_multiple_subdirs/module_b.rb +0 -2
  94. data/test/fixtures/inspect_multiple_subdirs/module_b/class_b.rb +0 -5
  95. data/test/fixtures/inspect_multiple_subdirs/module_b/class_c.rb +0 -5
  96. data/test/fixtures/inspect_package/module_a/module_b/class_in_module.rb +0 -6
  97. data/test/fixtures/parse_file/defs_static_function.rb +0 -96
  98. data/test/fixtures/parse_file/function_within_class.rb +0 -36
  99. data/test/fixtures/parse_file/include_public_methods.rb +0 -127
  100. data/test/fixtures/parse_file/instance_function.rb +0 -17
  101. data/test/fixtures/parse_file/modules.rb +0 -71
  102. data/test/fixtures/parse_file/sclass_static_function.rb +0 -88
  103. data/test/fixtures/parse_file/toplevel_class.rb +0 -13
  104. data/test/fixtures/parse_file/toplevel_function.rb +0 -14
  105. data/test/fixtures/trace_test/trace_program_1.rb +0 -44
  106. data/test/implicit_inspect_test.rb +0 -33
  107. data/test/include_exclude_test.rb +0 -48
  108. data/test/prerecorded_trace_test.rb +0 -76
  109. data/test/trace_test.rb +0 -92
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppMap
4
+ module Trace
5
+ ScopedMethod = Struct.new(:defined_class, :method)
6
+
7
+ class Tracers
8
+ def initialize
9
+ @tracers = []
10
+ end
11
+
12
+ def empty?
13
+ @tracers.empty?
14
+ end
15
+
16
+ def trace(enable: true)
17
+ Tracer.new.tap do |tracer|
18
+ @tracers << tracer
19
+ tracer.enable if enable
20
+ end
21
+ end
22
+
23
+ def enabled?
24
+ @tracers.any?(&:enabled?)
25
+ end
26
+
27
+ def record_event(event, defined_class: nil, method: nil)
28
+ @tracers.each do |tracer|
29
+ tracer.record_event(event, defined_class: defined_class, method: method)
30
+ end
31
+ end
32
+
33
+ def delete(tracer)
34
+ return unless @tracers.member?(tracer)
35
+
36
+ @tracers.delete(tracer)
37
+ tracer.disable
38
+ end
39
+ end
40
+ end
41
+
42
+ class Tracer
43
+ # Records the events which happen in a program.
44
+ def initialize
45
+ @events = []
46
+ @methods = Set.new
47
+ @enabled = false
48
+ end
49
+
50
+ def enable
51
+ @enabled = true
52
+ end
53
+
54
+ def enabled?
55
+ @enabled
56
+ end
57
+
58
+ # Private function. Use AppMap.tracing#delete.
59
+ def disable # :nodoc:
60
+ @enabled = false
61
+ end
62
+
63
+ # Record a program execution event.
64
+ #
65
+ # The event should be one of the MethodEvent subclasses.
66
+ def record_event(event, defined_class: nil, method: nil)
67
+ return unless @enabled
68
+
69
+ @events << event
70
+ @methods << Trace::ScopedMethod.new(defined_class, method) if defined_class && method
71
+ end
72
+
73
+ # Gets a unique list of the methods that were invoked by the program.
74
+ def event_methods
75
+ @methods.to_a
76
+ end
77
+
78
+ # Whether there is an event available for processing.
79
+ def event?
80
+ !@events.empty?
81
+ end
82
+
83
+ # Gets the next available event, if any.
84
+ def next_event
85
+ @events.shift
86
+ end
87
+ end
88
+ end
@@ -3,7 +3,7 @@
3
3
  module AppMap
4
4
  URL = 'https://github.com/applandinc/appmap-ruby'
5
5
 
6
- VERSION = '0.23.0'
6
+ VERSION = '0.25.0'
7
7
 
8
8
  APPMAP_FORMAT_VERSION = '1.2'
9
9
  end
data/package-lock.json CHANGED
@@ -5,17 +5,17 @@
5
5
  "requires": true,
6
6
  "dependencies": {
7
7
  "@babel/runtime": {
8
- "version": "7.4.5",
9
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.5.tgz",
10
- "integrity": "sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ==",
8
+ "version": "7.9.2",
9
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz",
10
+ "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==",
11
11
  "requires": {
12
- "regenerator-runtime": "^0.13.2"
12
+ "regenerator-runtime": "^0.13.4"
13
13
  },
14
14
  "dependencies": {
15
15
  "regenerator-runtime": {
16
- "version": "0.13.2",
17
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
18
- "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
16
+ "version": "0.13.5",
17
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
18
+ "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA=="
19
19
  }
20
20
  }
21
21
  },
@@ -234,9 +234,9 @@
234
234
  }
235
235
  },
236
236
  "commander": {
237
- "version": "2.20.0",
238
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
239
- "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ=="
237
+ "version": "2.20.3",
238
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
239
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
240
240
  },
241
241
  "constantinople": {
242
242
  "version": "3.1.2",
@@ -263,16 +263,16 @@
263
263
  "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
264
264
  },
265
265
  "cookie": {
266
- "version": "0.3.1",
267
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
268
- "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
266
+ "version": "0.4.0",
267
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
268
+ "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
269
269
  },
270
270
  "cookie-parser": {
271
- "version": "1.4.4",
272
- "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.4.tgz",
273
- "integrity": "sha512-lo13tqF3JEtFO7FyA49CqbhaFkskRJ0u/UAiINgrIXeRCY41c88/zxtrECl8AKH3B0hj9q10+h3Kt8I7KlW4tw==",
271
+ "version": "1.4.5",
272
+ "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz",
273
+ "integrity": "sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw==",
274
274
  "requires": {
275
- "cookie": "0.3.1",
275
+ "cookie": "0.4.0",
276
276
  "cookie-signature": "1.0.6"
277
277
  }
278
278
  },
@@ -282,9 +282,9 @@
282
282
  "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
283
283
  },
284
284
  "core-js": {
285
- "version": "2.6.8",
286
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.8.tgz",
287
- "integrity": "sha512-RWlREFU74TEkdXzyl1bka66O3kYp8jeTXrvJZDzVVMH8AiHUSOFpL1yfhQJ+wHocAm1m+4971W1PPzfLuCv1vg=="
285
+ "version": "2.6.11",
286
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
287
+ "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="
288
288
  },
289
289
  "debug": {
290
290
  "version": "2.6.9",
@@ -335,9 +335,9 @@
335
335
  "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
336
336
  },
337
337
  "esutils": {
338
- "version": "2.0.2",
339
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
340
- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
338
+ "version": "2.0.3",
339
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
340
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
341
341
  },
342
342
  "etag": {
343
343
  "version": "1.8.1",
@@ -345,9 +345,9 @@
345
345
  "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
346
346
  },
347
347
  "express": {
348
- "version": "4.17.0",
349
- "resolved": "https://registry.npmjs.org/express/-/express-4.17.0.tgz",
350
- "integrity": "sha512-1Z7/t3Z5ZnBG252gKUPyItc4xdeaA0X934ca2ewckAsVsw9EG71i++ZHZPYnus8g/s5Bty8IMpSVEuRkmwwPRQ==",
348
+ "version": "4.17.1",
349
+ "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
350
+ "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
351
351
  "requires": {
352
352
  "accepts": "~1.3.7",
353
353
  "array-flatten": "1.1.1",
@@ -379,13 +379,6 @@
379
379
  "type-is": "~1.6.18",
380
380
  "utils-merge": "1.0.1",
381
381
  "vary": "~1.1.2"
382
- },
383
- "dependencies": {
384
- "cookie": {
385
- "version": "0.4.0",
386
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
387
- "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
388
- }
389
382
  }
390
383
  },
391
384
  "finalhandler": {
@@ -431,9 +424,9 @@
431
424
  }
432
425
  },
433
426
  "highlight.js": {
434
- "version": "9.15.6",
435
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.6.tgz",
436
- "integrity": "sha512-zozTAWM1D6sozHo8kqhfYgsac+B+q0PmsjXeyDrYIHHcBN0zTVT66+s2GW1GZv7DbyaROdLXKdabwS/WqPyIdQ=="
427
+ "version": "9.18.1",
428
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.1.tgz",
429
+ "integrity": "sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg=="
437
430
  },
438
431
  "http-errors": {
439
432
  "version": "1.6.3",
@@ -467,9 +460,9 @@
467
460
  "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
468
461
  },
469
462
  "ipaddr.js": {
470
- "version": "1.9.0",
471
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
472
- "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="
463
+ "version": "1.9.1",
464
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
465
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
473
466
  },
474
467
  "is-buffer": {
475
468
  "version": "1.1.6",
@@ -498,11 +491,11 @@
498
491
  "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
499
492
  },
500
493
  "is-regex": {
501
- "version": "1.0.4",
502
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
503
- "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
494
+ "version": "1.0.5",
495
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
496
+ "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
504
497
  "requires": {
505
- "has": "^1.0.1"
498
+ "has": "^1.0.3"
506
499
  }
507
500
  },
508
501
  "js-stringify": {
@@ -550,9 +543,9 @@
550
543
  "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4="
551
544
  },
552
545
  "linkify-it": {
553
- "version": "2.1.0",
554
- "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.1.0.tgz",
555
- "integrity": "sha512-4REs8/062kV2DSHxNfq5183zrqXMl7WP0WzABH9IeJI+NLm429FgE1PDecltYfnOoFDFlZGh2T8PfZn0r+GTRg==",
546
+ "version": "2.2.0",
547
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz",
548
+ "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==",
556
549
  "requires": {
557
550
  "uc.micro": "^1.0.1"
558
551
  }
@@ -605,16 +598,16 @@
605
598
  "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
606
599
  },
607
600
  "mime-db": {
608
- "version": "1.40.0",
609
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
610
- "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
601
+ "version": "1.43.0",
602
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
603
+ "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="
611
604
  },
612
605
  "mime-types": {
613
- "version": "2.1.24",
614
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
615
- "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
606
+ "version": "2.1.26",
607
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
608
+ "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
616
609
  "requires": {
617
- "mime-db": "1.40.0"
610
+ "mime-db": "1.43.0"
618
611
  }
619
612
  },
620
613
  "morgan": {
@@ -681,12 +674,12 @@
681
674
  }
682
675
  },
683
676
  "proxy-addr": {
684
- "version": "2.0.5",
685
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
686
- "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
677
+ "version": "2.0.6",
678
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
679
+ "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
687
680
  "requires": {
688
681
  "forwarded": "~0.1.2",
689
- "ipaddr.js": "1.9.0"
682
+ "ipaddr.js": "1.9.1"
690
683
  }
691
684
  },
692
685
  "pug": {
@@ -705,13 +698,13 @@
705
698
  }
706
699
  },
707
700
  "pug-attrs": {
708
- "version": "2.0.3",
709
- "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.3.tgz",
710
- "integrity": "sha1-owlflw5kFR972tlX7vVftdeQXRU=",
701
+ "version": "2.0.4",
702
+ "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz",
703
+ "integrity": "sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==",
711
704
  "requires": {
712
705
  "constantinople": "^3.0.1",
713
706
  "js-stringify": "^1.0.1",
714
- "pug-runtime": "^2.0.4"
707
+ "pug-runtime": "^2.0.5"
715
708
  }
716
709
  },
717
710
  "pug-code-gen": {
@@ -730,9 +723,9 @@
730
723
  }
731
724
  },
732
725
  "pug-error": {
733
- "version": "1.3.2",
734
- "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.2.tgz",
735
- "integrity": "sha1-U659nSm7A89WRJOgJhCfVMR/XyY="
726
+ "version": "1.3.3",
727
+ "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz",
728
+ "integrity": "sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ=="
736
729
  },
737
730
  "pug-filters": {
738
731
  "version": "2.1.5",
@@ -768,12 +761,12 @@
768
761
  }
769
762
  },
770
763
  "pug-load": {
771
- "version": "2.0.11",
772
- "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.11.tgz",
773
- "integrity": "sha1-5kjlftET/iwfRdV4WOorrWvAFSc=",
764
+ "version": "2.0.12",
765
+ "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz",
766
+ "integrity": "sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg==",
774
767
  "requires": {
775
768
  "object-assign": "^4.1.0",
776
- "pug-walk": "^1.1.7"
769
+ "pug-walk": "^1.1.8"
777
770
  }
778
771
  },
779
772
  "pug-parser": {
@@ -786,22 +779,22 @@
786
779
  }
787
780
  },
788
781
  "pug-runtime": {
789
- "version": "2.0.4",
790
- "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.4.tgz",
791
- "integrity": "sha1-4XjhvaaKsujArPybztLFT9iM61g="
782
+ "version": "2.0.5",
783
+ "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz",
784
+ "integrity": "sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw=="
792
785
  },
793
786
  "pug-strip-comments": {
794
- "version": "1.0.3",
795
- "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.3.tgz",
796
- "integrity": "sha1-8VWVkiBu3G+FMQ2s9K+0igJa9Z8=",
787
+ "version": "1.0.4",
788
+ "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz",
789
+ "integrity": "sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw==",
797
790
  "requires": {
798
- "pug-error": "^1.3.2"
791
+ "pug-error": "^1.3.3"
799
792
  }
800
793
  },
801
794
  "pug-walk": {
802
- "version": "1.1.7",
803
- "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.7.tgz",
804
- "integrity": "sha1-wA1cUSi6xYBr7BXSt+fNq+QlMfM="
795
+ "version": "1.1.8",
796
+ "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz",
797
+ "integrity": "sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA=="
805
798
  },
806
799
  "qs": {
807
800
  "version": "6.7.0",
@@ -849,9 +842,9 @@
849
842
  "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
850
843
  },
851
844
  "resolve": {
852
- "version": "1.11.0",
853
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.0.tgz",
854
- "integrity": "sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==",
845
+ "version": "1.15.1",
846
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
847
+ "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
855
848
  "requires": {
856
849
  "path-parse": "^1.0.6"
857
850
  }
@@ -895,17 +888,22 @@
895
888
  },
896
889
  "dependencies": {
897
890
  "http-errors": {
898
- "version": "1.7.2",
899
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
900
- "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
891
+ "version": "1.7.3",
892
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
893
+ "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
901
894
  "requires": {
902
895
  "depd": "~1.1.2",
903
- "inherits": "2.0.3",
896
+ "inherits": "2.0.4",
904
897
  "setprototypeof": "1.1.1",
905
898
  "statuses": ">= 1.5.0 < 2",
906
899
  "toidentifier": "1.0.0"
907
900
  }
908
901
  },
902
+ "inherits": {
903
+ "version": "2.0.4",
904
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
905
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
906
+ },
909
907
  "ms": {
910
908
  "version": "2.1.1",
911
909
  "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
@@ -930,9 +928,9 @@
930
928
  "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
931
929
  },
932
930
  "slugify": {
933
- "version": "1.3.4",
934
- "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.3.4.tgz",
935
- "integrity": "sha512-KP0ZYk5hJNBS8/eIjGkFDCzGQIoZ1mnfQRYS5WM3273z+fxGWXeN0fkwf2ebEweydv9tioZIHGZKoF21U07/nw=="
931
+ "version": "1.4.0",
932
+ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.0.tgz",
933
+ "integrity": "sha512-FtLNsMGBSRB/0JOE2A0fxlqjI6fJsgHGS13iTuVT28kViI4JjUiNqp/vyis0ZXYcMnpR3fzGNkv+6vRlI2GwdQ=="
936
934
  },
937
935
  "source-map": {
938
936
  "version": "0.4.4",
@@ -1044,11 +1042,11 @@
1044
1042
  "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
1045
1043
  },
1046
1044
  "yaml": {
1047
- "version": "1.5.1",
1048
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.5.1.tgz",
1049
- "integrity": "sha512-btfJvMOgVthGZSgHBMrDkLuQu4YxOycw6kwuC67cUEOKJmmNozjIa02eKvuSq7usqqqpwwCvflGTF6JcDvSudw==",
1045
+ "version": "1.8.3",
1046
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.8.3.tgz",
1047
+ "integrity": "sha512-X/v7VDnK+sxbQ2Imq4Jt2PRUsRsP7UcpSl3Llg6+NRRqWLIvxkMFYtH1FmvwNGYRKKPa+EPA4qDBlI9WVG1UKw==",
1050
1048
  "requires": {
1051
- "@babel/runtime": "^7.4.4"
1049
+ "@babel/runtime": "^7.8.7"
1052
1050
  }
1053
1051
  },
1054
1052
  "yargs": {
@@ -49,7 +49,7 @@ describe 'AbstractControllerBase' do
49
49
  expect(appmap).to match(<<-CREATE_CALL.strip)
50
50
  event: call
51
51
  defined_class: Api::UsersController
52
- method_id: create_user
52
+ method_id: build_user
53
53
  path: app/controllers/api/users_controller.rb
54
54
  lineno: 23
55
55
  static: false