appmap 0.23.0 → 0.25.0

Sign up to get free protection for your applications and to get access to all the features.
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