appmap 0.77.2 → 0.78.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -0
  3. data/.travis.yml +0 -7
  4. data/CHANGELOG.md +21 -0
  5. data/Rakefile +29 -3
  6. data/ext/appmap/appmap.c +21 -2
  7. data/lib/appmap/builtin_hooks/ruby.yml +6 -3
  8. data/lib/appmap/config.rb +9 -1
  9. data/lib/appmap/handler/eval.rb +41 -0
  10. data/lib/appmap/handler/function.rb +8 -8
  11. data/lib/appmap/handler/net_http.rb +19 -18
  12. data/lib/appmap/handler/rails/request_handler.rb +3 -4
  13. data/lib/appmap/handler/rails/template.rb +68 -62
  14. data/lib/appmap/hook/method/ruby2.rb +56 -0
  15. data/lib/appmap/hook/method/ruby3.rb +56 -0
  16. data/lib/appmap/hook/method.rb +42 -98
  17. data/lib/appmap/hook.rb +2 -2
  18. data/lib/appmap/version.rb +1 -1
  19. data/spec/fixtures/rails7_users_app/.dockerignore +1 -0
  20. data/spec/fixtures/rails7_users_app/.gitattributes +7 -0
  21. data/spec/fixtures/rails7_users_app/.gitignore +31 -0
  22. data/spec/fixtures/rails7_users_app/.rspec +1 -0
  23. data/spec/fixtures/rails7_users_app/.ruby-version +1 -0
  24. data/spec/fixtures/rails7_users_app/Dockerfile +30 -0
  25. data/spec/fixtures/rails7_users_app/Dockerfile.pg +3 -0
  26. data/spec/fixtures/rails7_users_app/Gemfile +99 -0
  27. data/spec/fixtures/rails7_users_app/README.md +24 -0
  28. data/spec/fixtures/rails7_users_app/Rakefile +6 -0
  29. data/spec/fixtures/rails7_users_app/app/assets/config/manifest.js +4 -0
  30. data/spec/fixtures/rails7_users_app/app/assets/images/.keep +0 -0
  31. data/spec/fixtures/rails7_users_app/app/assets/stylesheets/application.css +15 -0
  32. data/spec/fixtures/rails7_users_app/app/channels/application_cable/channel.rb +4 -0
  33. data/spec/fixtures/rails7_users_app/app/channels/application_cable/connection.rb +4 -0
  34. data/spec/fixtures/rails7_users_app/app/controllers/application_controller.rb +2 -0
  35. data/spec/fixtures/rails7_users_app/app/controllers/concerns/.keep +0 -0
  36. data/spec/fixtures/rails7_users_app/app/helpers/application_helper.rb +2 -0
  37. data/spec/fixtures/rails7_users_app/app/javascript/application.js +3 -0
  38. data/spec/fixtures/rails7_users_app/app/javascript/controllers/application.js +9 -0
  39. data/spec/fixtures/rails7_users_app/app/javascript/controllers/hello_controller.js +7 -0
  40. data/spec/fixtures/rails7_users_app/app/javascript/controllers/index.js +11 -0
  41. data/spec/fixtures/rails7_users_app/app/jobs/application_job.rb +7 -0
  42. data/spec/fixtures/rails7_users_app/app/mailers/application_mailer.rb +4 -0
  43. data/spec/fixtures/rails7_users_app/app/models/application_record.rb +3 -0
  44. data/spec/fixtures/rails7_users_app/app/models/concerns/.keep +0 -0
  45. data/spec/fixtures/rails7_users_app/app/models/instance.rb +7 -0
  46. data/spec/fixtures/rails7_users_app/app/models/instructor.rb +7 -0
  47. data/spec/fixtures/rails7_users_app/app/views/layouts/application.html.erb +16 -0
  48. data/spec/fixtures/rails7_users_app/app/views/layouts/mailer.html.erb +13 -0
  49. data/spec/fixtures/rails7_users_app/app/views/layouts/mailer.text.erb +1 -0
  50. data/spec/fixtures/rails7_users_app/appmap.yml +3 -0
  51. data/spec/fixtures/rails7_users_app/bin/bundle +114 -0
  52. data/spec/fixtures/rails7_users_app/bin/importmap +4 -0
  53. data/spec/fixtures/rails7_users_app/bin/rails +4 -0
  54. data/spec/fixtures/rails7_users_app/bin/rake +4 -0
  55. data/spec/fixtures/rails7_users_app/bin/setup +33 -0
  56. data/spec/fixtures/rails7_users_app/config/application.rb +22 -0
  57. data/spec/fixtures/rails7_users_app/config/boot.rb +4 -0
  58. data/spec/fixtures/rails7_users_app/config/cable.yml +10 -0
  59. data/spec/fixtures/rails7_users_app/config/credentials.yml.enc +1 -0
  60. data/spec/fixtures/rails7_users_app/config/database.yml +86 -0
  61. data/spec/fixtures/rails7_users_app/config/environment.rb +5 -0
  62. data/spec/fixtures/rails7_users_app/config/environments/development.rb +70 -0
  63. data/spec/fixtures/rails7_users_app/config/environments/production.rb +93 -0
  64. data/spec/fixtures/rails7_users_app/config/environments/test.rb +60 -0
  65. data/spec/fixtures/rails7_users_app/config/importmap.rb +7 -0
  66. data/spec/fixtures/rails7_users_app/config/initializers/assets.rb +12 -0
  67. data/spec/fixtures/rails7_users_app/config/initializers/content_security_policy.rb +26 -0
  68. data/spec/fixtures/rails7_users_app/config/initializers/filter_parameter_logging.rb +8 -0
  69. data/spec/fixtures/rails7_users_app/config/initializers/inflections.rb +16 -0
  70. data/spec/fixtures/rails7_users_app/config/initializers/permissions_policy.rb +11 -0
  71. data/spec/fixtures/rails7_users_app/config/locales/en.yml +33 -0
  72. data/spec/fixtures/rails7_users_app/config/puma.rb +43 -0
  73. data/spec/fixtures/rails7_users_app/config/routes.rb +6 -0
  74. data/spec/fixtures/rails7_users_app/config/storage.yml +34 -0
  75. data/spec/fixtures/rails7_users_app/config.ru +6 -0
  76. data/spec/fixtures/rails7_users_app/create_app +31 -0
  77. data/spec/fixtures/rails7_users_app/db/migrate/20220328093141_create_instances.rb +8 -0
  78. data/spec/fixtures/rails7_users_app/db/migrate/20220328093154_create_instructors.rb +8 -0
  79. data/spec/fixtures/rails7_users_app/db/schema.rb +27 -0
  80. data/spec/fixtures/rails7_users_app/db/seeds.rb +7 -0
  81. data/spec/fixtures/rails7_users_app/docker-compose.yml +31 -0
  82. data/spec/fixtures/rails7_users_app/lib/assets/.keep +0 -0
  83. data/spec/fixtures/rails7_users_app/lib/tasks/.keep +0 -0
  84. data/spec/fixtures/rails7_users_app/log/.keep +0 -0
  85. data/spec/fixtures/rails7_users_app/public/404.html +67 -0
  86. data/spec/fixtures/rails7_users_app/public/422.html +67 -0
  87. data/spec/fixtures/rails7_users_app/public/500.html +66 -0
  88. data/spec/fixtures/rails7_users_app/public/apple-touch-icon-precomposed.png +0 -0
  89. data/spec/fixtures/rails7_users_app/public/apple-touch-icon.png +0 -0
  90. data/spec/fixtures/rails7_users_app/public/favicon.ico +0 -0
  91. data/spec/fixtures/rails7_users_app/public/robots.txt +1 -0
  92. data/spec/fixtures/rails7_users_app/storage/.keep +0 -0
  93. data/spec/fixtures/rails7_users_app/test/application_system_test_case.rb +5 -0
  94. data/spec/fixtures/rails7_users_app/test/channels/application_cable/connection_test.rb +11 -0
  95. data/spec/fixtures/rails7_users_app/test/controllers/.keep +0 -0
  96. data/spec/fixtures/rails7_users_app/test/fixtures/files/.keep +0 -0
  97. data/spec/fixtures/rails7_users_app/test/fixtures/instances.yml +11 -0
  98. data/spec/fixtures/rails7_users_app/test/fixtures/instructors.yml +11 -0
  99. data/spec/fixtures/rails7_users_app/test/helpers/.keep +0 -0
  100. data/spec/fixtures/rails7_users_app/test/integration/.keep +0 -0
  101. data/spec/fixtures/rails7_users_app/test/mailers/.keep +0 -0
  102. data/spec/fixtures/rails7_users_app/test/models/.keep +0 -0
  103. data/spec/fixtures/rails7_users_app/test/models/instance_test.rb +6 -0
  104. data/spec/fixtures/rails7_users_app/test/models/instructor_test.rb +7 -0
  105. data/spec/fixtures/rails7_users_app/test/system/.keep +0 -0
  106. data/spec/fixtures/rails7_users_app/test/test_helper.rb +13 -0
  107. data/spec/handler/eval_spec.rb +66 -0
  108. data/spec/hook_spec.rb +2 -2
  109. data/spec/rails_recording_spec.rb +6 -4
  110. data/spec/rails_spec_helper.rb +7 -0
  111. data/spec/rails_test_spec.rb +45 -0
  112. metadata +95 -2
@@ -0,0 +1,45 @@
1
+ require 'rails_spec_helper'
2
+
3
+ # Rails5 doesn't work with Ruby 3.x, Rails 7 doesn't work with Ruby < 2.7.
4
+ def default_rails_versions
5
+ if testing_ruby_2?
6
+ if Gem::Requirement.create('>= 2.7') =~ Gem::Version.new(ENV['RUBY_VERSION'])
7
+ [ 5, 6, 7 ]
8
+ else
9
+ [ 5, 6 ]
10
+ end
11
+ else
12
+ [ 6, 7 ]
13
+ end
14
+ end
15
+
16
+ def rails_versions
17
+ Array(ENV['RAILS_VERSIONS'] || default_rails_versions)
18
+ end
19
+
20
+ describe 'Rails' do
21
+ rails_versions.each do |rails_major_version| # rubocop:disable Metrics/BlockLength
22
+ context "#{rails_major_version}" do
23
+ include_context 'Rails app pg database', "spec/fixtures/rails#{rails_major_version}_users_app" unless use_existing_data?
24
+ def tmpdir
25
+ 'tmp/spec/rails_test_spec'
26
+ end
27
+ before(:all) do
28
+ FileUtils.rm_rf tmpdir
29
+ FileUtils.mkdir_p tmpdir
30
+ end
31
+
32
+ def run_tests
33
+ cmd = <<~CMD.gsub "\n", ' '
34
+ docker-compose run --rm -e RAILS_ENV=test -e APPMAP=true -e TEST_OPTS=--verbose
35
+ -v #{File.absolute_path tmpdir}:/app/tmp app bundle exec rake
36
+ CMD
37
+ run_cmd cmd, chdir: fixture_dir
38
+ end
39
+
40
+ it 'runs tests with APPMAP=true' do
41
+ run_tests
42
+ end
43
+ end
44
+ end
45
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appmap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.77.2
4
+ version: 0.78.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Gilpin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-25 00:00:00.000000000 Z
11
+ date: 2022-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -376,6 +376,7 @@ files:
376
376
  - lib/appmap/gem_hooks/sidekiq.yml
377
377
  - lib/appmap/gem_hooks/sprockets.yml
378
378
  - lib/appmap/handler.rb
379
+ - lib/appmap/handler/eval.rb
379
380
  - lib/appmap/handler/function.rb
380
381
  - lib/appmap/handler/net_http.rb
381
382
  - lib/appmap/handler/rails/request_handler.rb
@@ -383,6 +384,8 @@ files:
383
384
  - lib/appmap/handler/rails/template.rb
384
385
  - lib/appmap/hook.rb
385
386
  - lib/appmap/hook/method.rb
387
+ - lib/appmap/hook/method/ruby2.rb
388
+ - lib/appmap/hook/method/ruby3.rb
386
389
  - lib/appmap/metadata.rb
387
390
  - lib/appmap/middleware/remote_recording.rb
388
391
  - lib/appmap/minitest.rb
@@ -613,10 +616,100 @@ files:
613
616
  - spec/fixtures/rails6_users_app/test/integration/integration_calc_test.rb
614
617
  - spec/fixtures/rails6_users_app/users_app/.gitignore
615
618
  - spec/fixtures/rails6_users_app/yarn.lock
619
+ - spec/fixtures/rails7_users_app/.dockerignore
620
+ - spec/fixtures/rails7_users_app/.gitattributes
621
+ - spec/fixtures/rails7_users_app/.gitignore
622
+ - spec/fixtures/rails7_users_app/.rspec
623
+ - spec/fixtures/rails7_users_app/.ruby-version
624
+ - spec/fixtures/rails7_users_app/Dockerfile
625
+ - spec/fixtures/rails7_users_app/Dockerfile.pg
626
+ - spec/fixtures/rails7_users_app/Gemfile
627
+ - spec/fixtures/rails7_users_app/README.md
628
+ - spec/fixtures/rails7_users_app/Rakefile
629
+ - spec/fixtures/rails7_users_app/app/assets/config/manifest.js
630
+ - spec/fixtures/rails7_users_app/app/assets/images/.keep
631
+ - spec/fixtures/rails7_users_app/app/assets/stylesheets/application.css
632
+ - spec/fixtures/rails7_users_app/app/channels/application_cable/channel.rb
633
+ - spec/fixtures/rails7_users_app/app/channels/application_cable/connection.rb
634
+ - spec/fixtures/rails7_users_app/app/controllers/application_controller.rb
635
+ - spec/fixtures/rails7_users_app/app/controllers/concerns/.keep
636
+ - spec/fixtures/rails7_users_app/app/helpers/application_helper.rb
637
+ - spec/fixtures/rails7_users_app/app/javascript/application.js
638
+ - spec/fixtures/rails7_users_app/app/javascript/controllers/application.js
639
+ - spec/fixtures/rails7_users_app/app/javascript/controllers/hello_controller.js
640
+ - spec/fixtures/rails7_users_app/app/javascript/controllers/index.js
641
+ - spec/fixtures/rails7_users_app/app/jobs/application_job.rb
642
+ - spec/fixtures/rails7_users_app/app/mailers/application_mailer.rb
643
+ - spec/fixtures/rails7_users_app/app/models/application_record.rb
644
+ - spec/fixtures/rails7_users_app/app/models/concerns/.keep
645
+ - spec/fixtures/rails7_users_app/app/models/instance.rb
646
+ - spec/fixtures/rails7_users_app/app/models/instructor.rb
647
+ - spec/fixtures/rails7_users_app/app/views/layouts/application.html.erb
648
+ - spec/fixtures/rails7_users_app/app/views/layouts/mailer.html.erb
649
+ - spec/fixtures/rails7_users_app/app/views/layouts/mailer.text.erb
650
+ - spec/fixtures/rails7_users_app/appmap.yml
651
+ - spec/fixtures/rails7_users_app/bin/bundle
652
+ - spec/fixtures/rails7_users_app/bin/importmap
653
+ - spec/fixtures/rails7_users_app/bin/rails
654
+ - spec/fixtures/rails7_users_app/bin/rake
655
+ - spec/fixtures/rails7_users_app/bin/setup
656
+ - spec/fixtures/rails7_users_app/config.ru
657
+ - spec/fixtures/rails7_users_app/config/application.rb
658
+ - spec/fixtures/rails7_users_app/config/boot.rb
659
+ - spec/fixtures/rails7_users_app/config/cable.yml
660
+ - spec/fixtures/rails7_users_app/config/credentials.yml.enc
661
+ - spec/fixtures/rails7_users_app/config/database.yml
662
+ - spec/fixtures/rails7_users_app/config/environment.rb
663
+ - spec/fixtures/rails7_users_app/config/environments/development.rb
664
+ - spec/fixtures/rails7_users_app/config/environments/production.rb
665
+ - spec/fixtures/rails7_users_app/config/environments/test.rb
666
+ - spec/fixtures/rails7_users_app/config/importmap.rb
667
+ - spec/fixtures/rails7_users_app/config/initializers/assets.rb
668
+ - spec/fixtures/rails7_users_app/config/initializers/content_security_policy.rb
669
+ - spec/fixtures/rails7_users_app/config/initializers/filter_parameter_logging.rb
670
+ - spec/fixtures/rails7_users_app/config/initializers/inflections.rb
671
+ - spec/fixtures/rails7_users_app/config/initializers/permissions_policy.rb
672
+ - spec/fixtures/rails7_users_app/config/locales/en.yml
673
+ - spec/fixtures/rails7_users_app/config/puma.rb
674
+ - spec/fixtures/rails7_users_app/config/routes.rb
675
+ - spec/fixtures/rails7_users_app/config/storage.yml
676
+ - spec/fixtures/rails7_users_app/create_app
677
+ - spec/fixtures/rails7_users_app/db/migrate/20220328093141_create_instances.rb
678
+ - spec/fixtures/rails7_users_app/db/migrate/20220328093154_create_instructors.rb
679
+ - spec/fixtures/rails7_users_app/db/schema.rb
680
+ - spec/fixtures/rails7_users_app/db/seeds.rb
681
+ - spec/fixtures/rails7_users_app/docker-compose.yml
682
+ - spec/fixtures/rails7_users_app/lib/assets/.keep
683
+ - spec/fixtures/rails7_users_app/lib/tasks/.keep
684
+ - spec/fixtures/rails7_users_app/log/.keep
685
+ - spec/fixtures/rails7_users_app/public/404.html
686
+ - spec/fixtures/rails7_users_app/public/422.html
687
+ - spec/fixtures/rails7_users_app/public/500.html
688
+ - spec/fixtures/rails7_users_app/public/apple-touch-icon-precomposed.png
689
+ - spec/fixtures/rails7_users_app/public/apple-touch-icon.png
690
+ - spec/fixtures/rails7_users_app/public/favicon.ico
691
+ - spec/fixtures/rails7_users_app/public/robots.txt
692
+ - spec/fixtures/rails7_users_app/storage/.keep
693
+ - spec/fixtures/rails7_users_app/test/application_system_test_case.rb
694
+ - spec/fixtures/rails7_users_app/test/channels/application_cable/connection_test.rb
695
+ - spec/fixtures/rails7_users_app/test/controllers/.keep
696
+ - spec/fixtures/rails7_users_app/test/fixtures/files/.keep
697
+ - spec/fixtures/rails7_users_app/test/fixtures/instances.yml
698
+ - spec/fixtures/rails7_users_app/test/fixtures/instructors.yml
699
+ - spec/fixtures/rails7_users_app/test/helpers/.keep
700
+ - spec/fixtures/rails7_users_app/test/integration/.keep
701
+ - spec/fixtures/rails7_users_app/test/mailers/.keep
702
+ - spec/fixtures/rails7_users_app/test/models/.keep
703
+ - spec/fixtures/rails7_users_app/test/models/instance_test.rb
704
+ - spec/fixtures/rails7_users_app/test/models/instructor_test.rb
705
+ - spec/fixtures/rails7_users_app/test/system/.keep
706
+ - spec/fixtures/rails7_users_app/test/test_helper.rb
707
+ - spec/handler/eval_spec.rb
616
708
  - spec/hook_spec.rb
617
709
  - spec/open_spec.rb
618
710
  - spec/rails_recording_spec.rb
619
711
  - spec/rails_spec_helper.rb
712
+ - spec/rails_test_spec.rb
620
713
  - spec/railtie_spec.rb
621
714
  - spec/record_net_http_spec.rb
622
715
  - spec/record_sql_rails_pg_spec.rb