appmap 0.78.0 → 0.79.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.
- checksums.yaml +4 -4
- data/.travis.yml +4 -16
- data/CHANGELOG.md +7 -0
- data/{spec/fixtures/rails5_users_app/Dockerfile.pg → Dockerfile.pg} +0 -0
- data/README.md +14 -44
- data/README_CI.md +0 -7
- data/Rakefile +12 -150
- data/appmap.gemspec +3 -2
- data/docker-compose.yml +10 -0
- data/lib/appmap/version.rb +1 -1
- data/spec/config_spec.rb +1 -1
- data/spec/depends/api_spec.rb +13 -5
- data/spec/depends/spec_helper.rb +0 -9
- data/spec/fixtures/database.yml +11 -0
- data/spec/fixtures/rails5_users_app/config/database.yml +1 -0
- data/spec/fixtures/rails6_users_app/Gemfile +1 -25
- data/spec/fixtures/rails6_users_app/config/database.yml +1 -0
- data/spec/fixtures/rails7_users_app/Gemfile +1 -25
- data/spec/fixtures/rails7_users_app/config/database.yml +1 -0
- data/spec/hook_spec.rb +1 -1
- data/spec/rails_recording_spec.rb +4 -20
- data/spec/rails_spec_helper.rb +76 -63
- data/spec/rails_test_spec.rb +7 -17
- data/spec/railtie_spec.rb +4 -18
- data/spec/record_sql_rails_pg_spec.rb +44 -75
- data/spec/remote_recording_spec.rb +18 -30
- data/spec/spec_helper.rb +1 -0
- data/spec/swagger/swagger_spec.rb +1 -16
- data/spec/util_spec.rb +1 -1
- metadata +21 -21
- data/Dockerfile.appmap +0 -5
- data/spec/fixtures/rack_users_app/Dockerfile +0 -32
- data/spec/fixtures/rack_users_app/docker-compose.yml +0 -9
- data/spec/fixtures/rails5_users_app/Dockerfile +0 -29
- data/spec/fixtures/rails5_users_app/config/database.yml +0 -18
- data/spec/fixtures/rails5_users_app/create_app +0 -33
- data/spec/fixtures/rails5_users_app/docker-compose.yml +0 -31
- data/spec/fixtures/rails6_users_app/.ruby-version +0 -1
- data/spec/fixtures/rails6_users_app/Dockerfile +0 -44
- data/spec/fixtures/rails6_users_app/Dockerfile.pg +0 -3
- data/spec/fixtures/rails6_users_app/config/database.yml +0 -18
- data/spec/fixtures/rails6_users_app/create_app +0 -33
- data/spec/fixtures/rails6_users_app/docker-compose.yml +0 -31
- data/spec/fixtures/rails7_users_app/.ruby-version +0 -1
- data/spec/fixtures/rails7_users_app/Dockerfile +0 -30
- data/spec/fixtures/rails7_users_app/Dockerfile.pg +0 -3
- data/spec/fixtures/rails7_users_app/config/database.yml +0 -86
- data/spec/fixtures/rails7_users_app/create_app +0 -31
- data/spec/fixtures/rails7_users_app/docker-compose.yml +0 -31
data/spec/rails_spec_helper.rb
CHANGED
@@ -1,93 +1,106 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'open3'
|
4
|
+
|
3
5
|
require 'spec_helper'
|
4
6
|
require 'active_support'
|
5
7
|
require 'active_support/core_ext'
|
6
|
-
require 'open3'
|
7
8
|
|
8
|
-
# The RUBY_VERSION global variable indicates the version of the
|
9
|
-
# runtime. The RUBY_VERSION environment variable is the version we're
|
10
|
-
# testing, so it needs to be used to pick a fixture directory.
|
11
9
|
def testing_ruby_2?
|
12
|
-
|
10
|
+
RUBY_VERSION.split('.')[0].to_i == 2
|
13
11
|
end
|
14
12
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
13
|
+
class TestRailsApp
|
14
|
+
def initialize(fixture_dir)
|
15
|
+
@fixture_dir = fixture_dir
|
16
|
+
end
|
19
17
|
|
20
|
-
|
21
|
-
start_time = Time.now
|
22
|
-
until `#{PS_CMD} #{app_name}`.strip != ''
|
23
|
-
elapsed = Time.now - start_time
|
24
|
-
raise "Timeout waiting for container #{app_name} to be ready" if elapsed > 10
|
18
|
+
attr_reader :fixture_dir
|
25
19
|
|
26
|
-
|
27
|
-
|
20
|
+
def run_cmd(cmd, env = {})
|
21
|
+
run_process method(:system), cmd, env, exception: true
|
28
22
|
end
|
29
|
-
end
|
30
23
|
|
31
|
-
def
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
warn <<~WARNING
|
36
|
-
Command failed:
|
37
|
-
#{cmd}
|
38
|
-
<<< Output:
|
39
|
-
#{out}
|
40
|
-
>>> End of output
|
41
|
-
WARNING
|
42
|
-
failed&.call
|
43
|
-
raise 'Command failed'
|
44
|
-
end
|
24
|
+
def spawn_cmd(cmd, env = {})
|
25
|
+
puts "Spawning `#{cmd}` in #{fixture_dir}..."
|
26
|
+
run_process Process.method(:spawn), cmd, env
|
27
|
+
end
|
45
28
|
|
46
|
-
|
47
|
-
|
29
|
+
def capture_cmd(cmd, env = {})
|
30
|
+
puts "Capturing `#{cmd}` in #{fixture_dir}..."
|
31
|
+
run_process(Open3.method(:capture2), cmd, env).first
|
32
|
+
end
|
48
33
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
puts
|
54
|
-
puts logs
|
55
|
-
end
|
34
|
+
def database_name
|
35
|
+
# This is used locally too, so make the name nice and unique.
|
36
|
+
@database_name ||= "appland-rails-test-#{Random.bytes(8).unpack1('h*')}"
|
37
|
+
end
|
56
38
|
|
57
|
-
|
58
|
-
|
59
|
-
cmd = 'docker-compose up -d pg'
|
60
|
-
run_cmd cmd
|
61
|
-
wait_for_container 'pg'
|
39
|
+
def bundle
|
40
|
+
return if @bundled
|
62
41
|
|
63
|
-
|
64
|
-
|
65
|
-
end
|
42
|
+
run_cmd 'bundle'
|
43
|
+
@bundled = true
|
66
44
|
end
|
67
45
|
|
68
|
-
|
69
|
-
if
|
70
|
-
|
71
|
-
|
72
|
-
|
46
|
+
def prepare_db
|
47
|
+
return if @db_prepared
|
48
|
+
|
49
|
+
bundle
|
50
|
+
run_cmd './bin/rake db:create db:schema:load'
|
51
|
+
@db_prepared = true
|
52
|
+
at_exit { drop_db }
|
53
|
+
end
|
54
|
+
|
55
|
+
def drop_db
|
56
|
+
return unless @db_prepared
|
57
|
+
|
58
|
+
run_cmd './bin/rake db:drop'
|
59
|
+
@db_prepared = false
|
73
60
|
end
|
74
|
-
end
|
75
61
|
|
76
|
-
shared_context 'rails integration test setup' do
|
77
62
|
def tmpdir
|
78
|
-
'tmp
|
63
|
+
@tmpdir ||= File.join(fixture_dir, 'tmp')
|
64
|
+
end
|
65
|
+
|
66
|
+
def run_specs
|
67
|
+
return if @specs_ran or use_existing_data?
|
68
|
+
|
69
|
+
prepare_db
|
70
|
+
FileUtils.rm_rf tmpdir
|
71
|
+
run_cmd \
|
72
|
+
'./bin/rspec spec/controllers/users_controller_spec.rb spec/controllers/users_controller_api_spec.rb',
|
73
|
+
'APPMAP' => 'true'
|
74
|
+
@specs_ran = true
|
75
|
+
end
|
76
|
+
|
77
|
+
def self.for_fixture(fixture_dir)
|
78
|
+
@apps ||= {}
|
79
|
+
@apps[fixture_dir] ||= TestRailsApp.new fixture_dir
|
79
80
|
end
|
80
81
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
82
|
+
protected
|
83
|
+
|
84
|
+
def run_process(method, cmd, env, options = {})
|
85
|
+
Bundler.with_clean_env do
|
86
|
+
method.call \
|
87
|
+
env.merge('TEST_DATABASE' => database_name),
|
88
|
+
cmd,
|
89
|
+
options.merge(chdir: fixture_dir)
|
87
90
|
end
|
88
91
|
end
|
92
|
+
end
|
93
|
+
|
94
|
+
shared_context 'Rails app pg database' do |dir|
|
95
|
+
before(:all) { @app = TestRailsApp.for_fixture dir }
|
96
|
+
let(:app) { @app }
|
97
|
+
end
|
98
|
+
|
99
|
+
shared_context 'rails integration test setup' do
|
100
|
+
let(:tmpdir) { app.tmpdir }
|
101
|
+
|
102
|
+
before(:all) { @app.run_specs } unless use_existing_data?
|
89
103
|
|
90
|
-
let(:appmap) { JSON.parse File.read File.join tmpdir, 'appmap/rspec', appmap_json_file }
|
91
104
|
let(:appmap_json_path) { File.join(tmpdir, 'appmap/rspec', appmap_json_file) }
|
92
105
|
let(:appmap) { JSON.parse File.read(appmap_json_path) }
|
93
106
|
let(:events) { appmap['events'] }
|
data/spec/rails_test_spec.rb
CHANGED
@@ -3,7 +3,7 @@ require 'rails_spec_helper'
|
|
3
3
|
# Rails5 doesn't work with Ruby 3.x, Rails 7 doesn't work with Ruby < 2.7.
|
4
4
|
def default_rails_versions
|
5
5
|
if testing_ruby_2?
|
6
|
-
if Gem::Requirement.create('>= 2.7') =~ Gem::Version.new(
|
6
|
+
if Gem::Requirement.create('>= 2.7') =~ Gem::Version.new(RUBY_VERSION)
|
7
7
|
[ 5, 6, 7 ]
|
8
8
|
else
|
9
9
|
[ 5, 6 ]
|
@@ -21,24 +21,14 @@ describe 'Rails' do
|
|
21
21
|
rails_versions.each do |rails_major_version| # rubocop:disable Metrics/BlockLength
|
22
22
|
context "#{rails_major_version}" do
|
23
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
24
|
|
40
25
|
it 'runs tests with APPMAP=true' do
|
41
|
-
|
26
|
+
app.prepare_db
|
27
|
+
app.run_cmd \
|
28
|
+
'bundle exec rake',
|
29
|
+
'RAILS_ENV' => 'test',
|
30
|
+
'APPMAP' => 'true',
|
31
|
+
'TEST_OPTS' => '--verbose'
|
42
32
|
end
|
43
33
|
end
|
44
34
|
end
|
data/spec/railtie_spec.rb
CHANGED
@@ -1,27 +1,13 @@
|
|
1
1
|
require 'rails_spec_helper'
|
2
2
|
|
3
3
|
describe 'AppMap tracer via Railtie' do
|
4
|
-
include_context 'Rails app pg database', 'spec/fixtures/rails6_users_app' do
|
4
|
+
include_context 'Rails app pg database', 'spec/fixtures/rails6_users_app' do
|
5
5
|
let(:env) { {} }
|
6
6
|
|
7
|
-
let(:
|
8
|
-
|
9
|
-
|
10
|
-
Open3.capture3(env, cmd, chdir: fixture_dir).tap do |result|
|
11
|
-
unless result[2] == 0
|
12
|
-
warn <<~STDERR
|
13
|
-
Failed to run rails6_users_app container
|
14
|
-
<<< Output:
|
15
|
-
#{result[0]}
|
16
|
-
#{result[1]}
|
17
|
-
>>> End of output
|
18
|
-
STDERR
|
19
|
-
raise 'Failed to run rails6_users_app container'
|
20
|
-
end
|
21
|
-
end
|
7
|
+
let(:command_output) do
|
8
|
+
app.prepare_db
|
9
|
+
app.capture_cmd(%{./bin/rails r "puts AppMap.instance_variable_get('@configuration').nil?"}, env).strip
|
22
10
|
end
|
23
|
-
let(:command_output) { command_capture2[0].strip }
|
24
|
-
let(:command_result) { command_capture2[2] }
|
25
11
|
|
26
12
|
describe 'with APPMAP=false' do
|
27
13
|
let(:env) { { 'APPMAP' => 'false' } }
|
@@ -2,89 +2,58 @@ require 'rails_spec_helper'
|
|
2
2
|
|
3
3
|
describe 'SQL events' do
|
4
4
|
include_context 'Rails app pg database', 'spec/fixtures/rails6_users_app' do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
example.run
|
12
|
-
end
|
13
|
-
|
14
|
-
let(:tmpdir) { "tmp/spec/record_sql_rails_pg_spec" }
|
15
|
-
|
16
|
-
describe 'fields' do
|
17
|
-
let(:test_line_number) { 8 }
|
18
|
-
let(:appmap_json) { File.join(tmpdir, 'appmap/rspec/Api_UsersController_POST_api_users_with_required_parameters_creates_a_user.appmap.json') }
|
19
|
-
let(:orm_module) { 'sequel' }
|
20
|
-
let(:appmap) { JSON.parse(File.read(appmap_json)) }
|
21
|
-
describe 'on a call event' do
|
22
|
-
let(:event) do
|
23
|
-
appmap['events'].find do |event|
|
24
|
-
event['event'] == 'call' &&
|
25
|
-
event.keys.include?('sql_query')
|
5
|
+
def self.check_queries(cases)
|
6
|
+
cases.each do |test_case, query|
|
7
|
+
context "in #{test_case}" do
|
8
|
+
let(:test_case) { test_case }
|
9
|
+
it "captures #{query}" do
|
10
|
+
expect(sql_events).to include sql_query query
|
26
11
|
end
|
27
12
|
end
|
28
|
-
it 'do not include function-only fields' do
|
29
|
-
expect(event.keys).to_not include('defined_class')
|
30
|
-
expect(event.keys).to_not include('method_id')
|
31
|
-
expect(event.keys).to_not include('path')
|
32
|
-
expect(event.keys).to_not include('lineno')
|
33
|
-
end
|
34
13
|
end
|
35
14
|
end
|
36
15
|
|
37
|
-
|
38
|
-
|
39
|
-
context 'while creating a new record' do
|
40
|
-
let(:test_line_number) { 8 }
|
41
|
-
let(:appmap_json) { File.join(tmpdir, 'appmap/rspec/Api_UsersController_POST_api_users_with_required_parameters_creates_a_user.appmap.json') }
|
16
|
+
context 'with Sequel' do
|
17
|
+
before(:context) { run_specs 'sequel' }
|
42
18
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
SQL_QUERY
|
50
|
-
end
|
51
|
-
end
|
52
|
-
context 'using ActiveRecord ORM' do
|
53
|
-
let(:orm_module) { 'activerecord' }
|
54
|
-
it 'detects the sql INSERT' do
|
55
|
-
expect(appmap).to include(<<-SQL_QUERY.strip)
|
56
|
-
sql_query:
|
57
|
-
sql: INSERT INTO "users" ("login") VALUES ($1) RETURNING "id"
|
58
|
-
SQL_QUERY
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
19
|
+
check_queries(
|
20
|
+
'Api_UsersController_POST_api_users_with_required_parameters_creates_a_user' =>
|
21
|
+
%(INSERT INTO "users" ("login") VALUES ('alice') RETURNING *),
|
22
|
+
'Api_UsersController_GET_api_users_lists_the_users' => %(SELECT * FROM "users")
|
23
|
+
)
|
24
|
+
end
|
62
25
|
|
63
|
-
|
64
|
-
|
65
|
-
let(:appmap_json) { File.join(tmpdir, 'appmap/rspec/Api_UsersController_GET_api_users_lists_the_users.appmap.json') }
|
26
|
+
context 'with ActiveRecord' do
|
27
|
+
before(:context) { run_specs 'activerecord' }
|
66
28
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
29
|
+
check_queries(
|
30
|
+
'Api_UsersController_POST_api_users_with_required_parameters_creates_a_user' =>
|
31
|
+
%(INSERT INTO "users" ("login") VALUES ($1) RETURNING "id"),
|
32
|
+
'Api_UsersController_GET_api_users_lists_the_users' => %(SELECT "users".* FROM "users")
|
33
|
+
)
|
34
|
+
end
|
35
|
+
|
36
|
+
def run_specs(orm_module)
|
37
|
+
@app.prepare_db
|
38
|
+
@app.run_cmd \
|
39
|
+
'./bin/rspec spec/controllers/users_controller_api_spec.rb:8 spec/controllers/users_controller_api_spec.rb:29',
|
40
|
+
'ORM_MODULE' => orm_module,
|
41
|
+
'RAILS_ENV' => 'test',
|
42
|
+
'APPMAP' => 'true'
|
43
|
+
end
|
44
|
+
|
45
|
+
let(:appmap_json) { File.join tmpdir, "appmap/rspec/#{test_case}.appmap.json" }
|
46
|
+
let(:appmap) { JSON.parse(File.read(appmap_json)) }
|
47
|
+
let(:tmpdir) { app.tmpdir }
|
48
|
+
let(:sql_events) { appmap['events'].select { |ev| ev.include? 'sql_query' } }
|
49
|
+
|
50
|
+
RSpec::Matchers.define_negated_matcher :not_include, :include
|
51
|
+
def sql_query(query)
|
52
|
+
(include('sql_query' => (include 'sql' => query)))
|
53
|
+
.and(not_include('defined_class'))
|
54
|
+
.and(not_include('method_id'))
|
55
|
+
.and(not_include('path'))
|
56
|
+
.and(not_include('lineno'))
|
88
57
|
end
|
89
58
|
end
|
90
59
|
end
|
@@ -1,41 +1,27 @@
|
|
1
1
|
require 'rails_spec_helper'
|
2
|
+
|
3
|
+
require 'random-port'
|
4
|
+
|
2
5
|
require 'net/http'
|
3
6
|
require 'socket'
|
4
7
|
|
5
8
|
describe 'remote recording', :order => :defined do
|
6
9
|
include_context 'Rails app pg database', 'spec/fixtures/rails6_users_app' do
|
7
10
|
before(:all) do
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
@service_port = RandomPort::Pool::SINGLETON.acquire
|
12
|
+
@app.prepare_db
|
13
|
+
@server = @app.spawn_cmd \
|
14
|
+
"./bin/rails server -p #{@service_port}",
|
15
|
+
'ORM_MODULE' => 'sequel',
|
16
|
+
'APPMAP' => 'true'
|
14
17
|
|
15
|
-
port_cmd = 'docker-compose port app 3000'
|
16
|
-
port_out, = run_cmd port_cmd, chdir: fixture_dir
|
17
|
-
@service_port = port_out.strip.split(':')[1]
|
18
|
-
|
19
|
-
service_running = false
|
20
|
-
retry_count = 0
|
21
18
|
uri = URI("http://localhost:#{@service_port}/health")
|
22
19
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
end
|
29
|
-
|
30
|
-
status = res.response.code.to_i
|
31
|
-
service_running = true if status >= 200 && status < 300
|
32
|
-
|
33
|
-
# give up after a certain error threshold is met
|
34
|
-
# we don't want to wait forever if there's an unrecoverable issue
|
35
|
-
raise 'gave up waiting on fixture service' if (retry_count += 1) == 10
|
36
|
-
rescue Errno::ETIMEDOUT, Errno::ECONNRESET, EOFError
|
37
|
-
$stderr.print('.')
|
38
|
-
end
|
20
|
+
100.times do
|
21
|
+
Net::HTTP.get(uri)
|
22
|
+
break
|
23
|
+
rescue Errno::ECONNREFUSED
|
24
|
+
sleep 0.1
|
39
25
|
end
|
40
26
|
end
|
41
27
|
|
@@ -44,8 +30,10 @@ describe 'remote recording', :order => :defined do
|
|
44
30
|
end
|
45
31
|
|
46
32
|
after(:all) do
|
47
|
-
|
48
|
-
|
33
|
+
if @server
|
34
|
+
Process.kill 'INT', @server
|
35
|
+
Process.wait @server
|
36
|
+
end
|
49
37
|
end
|
50
38
|
|
51
39
|
let(:service_address) { URI("http://localhost:#{@service_port}") }
|
data/spec/spec_helper.rb
CHANGED
@@ -13,6 +13,7 @@ require 'appmap'
|
|
13
13
|
|
14
14
|
RSpec.configure do |config|
|
15
15
|
config.example_status_persistence_file_path = "tmp/rspec_failed_examples.txt"
|
16
|
+
config.profile_examples = true
|
16
17
|
end
|
17
18
|
|
18
19
|
# Re-run the Rails specs without re-generating the data. This is useful for efficiently enhancing and
|
@@ -4,24 +4,9 @@ describe 'rake appmap:swagger' do
|
|
4
4
|
include_context 'Rails app pg database', "spec/fixtures/rails6_users_app" unless use_existing_data?
|
5
5
|
include_context 'rails integration test setup'
|
6
6
|
|
7
|
-
def run_spec(spec_name)
|
8
|
-
cmd = <<~CMD.gsub "\n", ' '
|
9
|
-
docker-compose run --rm -e RAILS_ENV=test -e APPMAP=true
|
10
|
-
-v #{File.absolute_path tmpdir}:/app/tmp app ./bin/rspec #{spec_name}
|
11
|
-
CMD
|
12
|
-
run_cmd cmd, chdir: fixture_dir
|
13
|
-
end
|
14
|
-
|
15
|
-
def generate_swagger
|
16
|
-
cmd = <<~CMD.gsub "\n", ' '
|
17
|
-
docker-compose run --rm -v #{File.absolute_path tmpdir}:/app/tmp app ./bin/rake appmap:swagger
|
18
|
-
CMD
|
19
|
-
run_cmd cmd, chdir: fixture_dir
|
20
|
-
end
|
21
|
-
|
22
7
|
unless use_existing_data?
|
23
8
|
before(:all) do
|
24
|
-
|
9
|
+
@app.run_cmd './bin/rake appmap:swagger'
|
25
10
|
end
|
26
11
|
end
|
27
12
|
|
data/spec/util_spec.rb
CHANGED
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.
|
4
|
+
version: 0.79.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-04-
|
11
|
+
date: 2022-04-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '5.
|
89
|
+
version: '5.15'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '5.
|
96
|
+
version: '5.15'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: pry-byebug
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -276,6 +276,20 @@ dependencies:
|
|
276
276
|
- - ">="
|
277
277
|
- !ruby/object:Gem::Version
|
278
278
|
version: '0'
|
279
|
+
- !ruby/object:Gem::Dependency
|
280
|
+
name: random-port
|
281
|
+
requirement: !ruby/object:Gem::Requirement
|
282
|
+
requirements:
|
283
|
+
- - "~>"
|
284
|
+
- !ruby/object:Gem::Version
|
285
|
+
version: 0.5.1
|
286
|
+
type: :development
|
287
|
+
prerelease: false
|
288
|
+
version_requirements: !ruby/object:Gem::Requirement
|
289
|
+
requirements:
|
290
|
+
- - "~>"
|
291
|
+
- !ruby/object:Gem::Version
|
292
|
+
version: 0.5.1
|
279
293
|
- !ruby/object:Gem::Dependency
|
280
294
|
name: webrick
|
281
295
|
requirement: !ruby/object:Gem::Requirement
|
@@ -312,7 +326,7 @@ files:
|
|
312
326
|
- ARCHITECTURE.md
|
313
327
|
- CHANGELOG.md
|
314
328
|
- CONTRIBUTING.md
|
315
|
-
- Dockerfile.
|
329
|
+
- Dockerfile.pg
|
316
330
|
- Gemfile
|
317
331
|
- LICENSE.txt
|
318
332
|
- README.md
|
@@ -321,6 +335,7 @@ files:
|
|
321
335
|
- appmap.gemspec
|
322
336
|
- appmap.yml
|
323
337
|
- config-schema.yml
|
338
|
+
- docker-compose.yml
|
324
339
|
- examples/install.rb
|
325
340
|
- examples/mock_webapp/Gemfile
|
326
341
|
- examples/mock_webapp/appmap.yml
|
@@ -421,6 +436,7 @@ files:
|
|
421
436
|
- spec/fixtures/config/invalid_yaml_config.yml
|
422
437
|
- spec/fixtures/config/missing_path_or_gem.yml
|
423
438
|
- spec/fixtures/config/valid_config.yml
|
439
|
+
- spec/fixtures/database.yml
|
424
440
|
- spec/fixtures/depends/.gitignore
|
425
441
|
- spec/fixtures/depends/app/controllers/api/api_keys_controller.rb
|
426
442
|
- spec/fixtures/depends/app/controllers/organizations_controller.rb
|
@@ -463,18 +479,14 @@ files:
|
|
463
479
|
- spec/fixtures/hook/user_page_scenario.appmap.json
|
464
480
|
- spec/fixtures/rack_users_app/.dockerignore
|
465
481
|
- spec/fixtures/rack_users_app/.gitignore
|
466
|
-
- spec/fixtures/rack_users_app/Dockerfile
|
467
482
|
- spec/fixtures/rack_users_app/Gemfile
|
468
483
|
- spec/fixtures/rack_users_app/appmap.yml
|
469
484
|
- spec/fixtures/rack_users_app/config.ru
|
470
|
-
- spec/fixtures/rack_users_app/docker-compose.yml
|
471
485
|
- spec/fixtures/rack_users_app/lib/app.rb
|
472
486
|
- spec/fixtures/rails5_users_app/.dockerignore
|
473
487
|
- spec/fixtures/rails5_users_app/.gitignore
|
474
488
|
- spec/fixtures/rails5_users_app/.rspec
|
475
489
|
- spec/fixtures/rails5_users_app/.ruby-version
|
476
|
-
- spec/fixtures/rails5_users_app/Dockerfile
|
477
|
-
- spec/fixtures/rails5_users_app/Dockerfile.pg
|
478
490
|
- spec/fixtures/rails5_users_app/Gemfile
|
479
491
|
- spec/fixtures/rails5_users_app/Rakefile
|
480
492
|
- spec/fixtures/rails5_users_app/app/controllers/api/users_controller.rb
|
@@ -523,10 +535,8 @@ files:
|
|
523
535
|
- spec/fixtures/rails5_users_app/config/initializers/wrap_parameters.rb
|
524
536
|
- spec/fixtures/rails5_users_app/config/locales/en.yml
|
525
537
|
- spec/fixtures/rails5_users_app/config/routes.rb
|
526
|
-
- spec/fixtures/rails5_users_app/create_app
|
527
538
|
- spec/fixtures/rails5_users_app/db/migrate/20190728211408_create_users.rb
|
528
539
|
- spec/fixtures/rails5_users_app/db/schema.rb
|
529
|
-
- spec/fixtures/rails5_users_app/docker-compose.yml
|
530
540
|
- spec/fixtures/rails5_users_app/features/api_users.feature
|
531
541
|
- spec/fixtures/rails5_users_app/features/support/env.rb
|
532
542
|
- spec/fixtures/rails5_users_app/features/support/hooks.rb
|
@@ -543,9 +553,6 @@ files:
|
|
543
553
|
- spec/fixtures/rails6_users_app/.dockerignore
|
544
554
|
- spec/fixtures/rails6_users_app/.gitignore
|
545
555
|
- spec/fixtures/rails6_users_app/.rspec
|
546
|
-
- spec/fixtures/rails6_users_app/.ruby-version
|
547
|
-
- spec/fixtures/rails6_users_app/Dockerfile
|
548
|
-
- spec/fixtures/rails6_users_app/Dockerfile.pg
|
549
556
|
- spec/fixtures/rails6_users_app/Gemfile
|
550
557
|
- spec/fixtures/rails6_users_app/Rakefile
|
551
558
|
- spec/fixtures/rails6_users_app/app/controllers/api/users_controller.rb
|
@@ -594,10 +601,8 @@ files:
|
|
594
601
|
- spec/fixtures/rails6_users_app/config/initializers/wrap_parameters.rb
|
595
602
|
- spec/fixtures/rails6_users_app/config/locales/en.yml
|
596
603
|
- spec/fixtures/rails6_users_app/config/routes.rb
|
597
|
-
- spec/fixtures/rails6_users_app/create_app
|
598
604
|
- spec/fixtures/rails6_users_app/db/migrate/20190728211408_create_users.rb
|
599
605
|
- spec/fixtures/rails6_users_app/db/schema.rb
|
600
|
-
- spec/fixtures/rails6_users_app/docker-compose.yml
|
601
606
|
- spec/fixtures/rails6_users_app/features/api_users.feature
|
602
607
|
- spec/fixtures/rails6_users_app/features/support/env.rb
|
603
608
|
- spec/fixtures/rails6_users_app/features/support/hooks.rb
|
@@ -620,9 +625,6 @@ files:
|
|
620
625
|
- spec/fixtures/rails7_users_app/.gitattributes
|
621
626
|
- spec/fixtures/rails7_users_app/.gitignore
|
622
627
|
- 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
628
|
- spec/fixtures/rails7_users_app/Gemfile
|
627
629
|
- spec/fixtures/rails7_users_app/README.md
|
628
630
|
- spec/fixtures/rails7_users_app/Rakefile
|
@@ -673,12 +675,10 @@ files:
|
|
673
675
|
- spec/fixtures/rails7_users_app/config/puma.rb
|
674
676
|
- spec/fixtures/rails7_users_app/config/routes.rb
|
675
677
|
- spec/fixtures/rails7_users_app/config/storage.yml
|
676
|
-
- spec/fixtures/rails7_users_app/create_app
|
677
678
|
- spec/fixtures/rails7_users_app/db/migrate/20220328093141_create_instances.rb
|
678
679
|
- spec/fixtures/rails7_users_app/db/migrate/20220328093154_create_instructors.rb
|
679
680
|
- spec/fixtures/rails7_users_app/db/schema.rb
|
680
681
|
- spec/fixtures/rails7_users_app/db/seeds.rb
|
681
|
-
- spec/fixtures/rails7_users_app/docker-compose.yml
|
682
682
|
- spec/fixtures/rails7_users_app/lib/assets/.keep
|
683
683
|
- spec/fixtures/rails7_users_app/lib/tasks/.keep
|
684
684
|
- spec/fixtures/rails7_users_app/log/.keep
|