appmap 0.35.2 → 0.39.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/.dockerignore +1 -1
- data/.gitignore +2 -1
- data/.rubocop.yml +15 -1
- data/.travis.yml +0 -7
- data/CHANGELOG.md +22 -0
- data/README.md +24 -12
- data/Rakefile +3 -2
- data/appmap.gemspec +2 -1
- data/appmap.yml +1 -7
- data/lib/appmap.rb +2 -2
- data/lib/appmap/class_map.rb +20 -6
- data/lib/appmap/config.rb +66 -22
- data/lib/appmap/event.rb +16 -1
- data/lib/appmap/hook/method.rb +18 -12
- data/lib/appmap/rails/request_handler.rb +20 -4
- data/lib/appmap/railtie.rb +1 -1
- data/lib/appmap/rspec.rb +1 -1
- data/lib/appmap/trace.rb +18 -7
- data/lib/appmap/version.rb +2 -2
- data/spec/abstract_controller4_base_spec.rb +27 -28
- data/spec/abstract_controller_base_spec.rb +132 -67
- data/spec/class_map_spec.rb +36 -0
- data/spec/fixtures/hook/instance_method.rb +4 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/.dockerignore +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/.gitignore +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/.rspec +0 -0
- data/{.ruby-version → spec/fixtures/rails5_users_app/.ruby-version} +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/Dockerfile +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/Dockerfile.pg +0 -0
- data/spec/fixtures/rails5_users_app/Gemfile +51 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/Rakefile +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/app/controllers/api/users_controller.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/app/controllers/application_controller.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/app/controllers/concerns/.keep +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/app/controllers/health_controller.rb +0 -0
- data/spec/fixtures/rails5_users_app/app/controllers/users_controller.rb +13 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/app/models/activerecord/user.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/app/models/concerns/.keep +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/app/models/sequel/user.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/app/views/layouts/application.html.haml +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/app/views/users/index.html.haml +0 -0
- data/spec/fixtures/rails5_users_app/appmap.yml +4 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/bin/appmap +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/bin/byebug +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/bin/gli +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/bin/htmldiff +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/bin/ldiff +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/bin/nokogiri +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/bin/rackup +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/bin/rails +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/bin/rake +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/bin/rspec +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/bin/ruby-parse +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/bin/ruby-rewrite +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/bin/sequel +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/bin/setup +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/bin/sprockets +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/bin/thor +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/bin/update +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/config.ru +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/config/application.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/config/boot.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/config/credentials.yml.enc +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/config/database.yml +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/config/environment.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/config/environments/development.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/config/environments/production.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/config/environments/test.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/config/initializers/application_controller_renderer.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/config/initializers/backtrace_silencers.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/config/initializers/cors.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/config/initializers/filter_parameter_logging.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/config/initializers/inflections.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/config/initializers/mime_types.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/config/initializers/record_button.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/config/initializers/wrap_parameters.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/config/locales/en.yml +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/config/routes.rb +1 -1
- data/spec/fixtures/{rails_users_app → rails5_users_app}/create_app +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/db/migrate/20190728211408_create_users.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/db/schema.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/docker-compose.yml +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/features/api_users.feature +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/features/support/env.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/features/support/hooks.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/features/support/steps.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/lib/tasks/.keep +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/log/.keep +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/public/robots.txt +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/spec/controllers/users_controller_api_spec.rb +1 -1
- data/spec/fixtures/rails5_users_app/spec/controllers/users_controller_spec.rb +27 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/spec/models/user_spec.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/spec/rails_helper.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/spec/spec_helper.rb +0 -0
- data/spec/fixtures/{rails_users_app → rails5_users_app}/users_app/.gitignore +0 -0
- data/spec/fixtures/rails6_users_app/.dockerignore +1 -0
- data/spec/fixtures/rails6_users_app/.gitignore +39 -0
- data/spec/fixtures/rails6_users_app/.rspec +1 -0
- data/spec/fixtures/{rails_users_app → rails6_users_app}/.ruby-version +0 -0
- data/spec/fixtures/rails6_users_app/Dockerfile +29 -0
- data/spec/fixtures/rails6_users_app/Dockerfile.pg +3 -0
- data/spec/fixtures/{rails_users_app → rails6_users_app}/Gemfile +1 -1
- data/spec/fixtures/rails6_users_app/Rakefile +6 -0
- data/spec/fixtures/rails6_users_app/app/controllers/api/users_controller.rb +27 -0
- data/spec/fixtures/rails6_users_app/app/controllers/application_controller.rb +2 -0
- data/spec/fixtures/rails6_users_app/app/controllers/concerns/.keep +0 -0
- data/spec/fixtures/rails6_users_app/app/controllers/health_controller.rb +5 -0
- data/spec/fixtures/rails6_users_app/app/controllers/users_controller.rb +13 -0
- data/spec/fixtures/rails6_users_app/app/models/activerecord/user.rb +18 -0
- data/spec/fixtures/rails6_users_app/app/models/concerns/.keep +0 -0
- data/spec/fixtures/rails6_users_app/app/models/sequel/user.rb +25 -0
- data/spec/fixtures/rails6_users_app/app/views/layouts/application.html.haml +7 -0
- data/spec/fixtures/rails6_users_app/app/views/users/index.html.haml +7 -0
- data/spec/fixtures/rails6_users_app/appmap.yml +5 -0
- data/spec/fixtures/rails6_users_app/bin/appmap +29 -0
- data/spec/fixtures/rails6_users_app/bin/byebug +29 -0
- data/spec/fixtures/rails6_users_app/bin/gli +29 -0
- data/spec/fixtures/rails6_users_app/bin/htmldiff +29 -0
- data/spec/fixtures/rails6_users_app/bin/ldiff +29 -0
- data/spec/fixtures/rails6_users_app/bin/nokogiri +29 -0
- data/spec/fixtures/rails6_users_app/bin/rackup +29 -0
- data/spec/fixtures/rails6_users_app/bin/rails +4 -0
- data/spec/fixtures/rails6_users_app/bin/rake +29 -0
- data/spec/fixtures/rails6_users_app/bin/rspec +29 -0
- data/spec/fixtures/rails6_users_app/bin/ruby-parse +29 -0
- data/spec/fixtures/rails6_users_app/bin/ruby-rewrite +29 -0
- data/spec/fixtures/rails6_users_app/bin/sequel +29 -0
- data/spec/fixtures/rails6_users_app/bin/setup +25 -0
- data/spec/fixtures/rails6_users_app/bin/sprockets +29 -0
- data/spec/fixtures/rails6_users_app/bin/thor +29 -0
- data/spec/fixtures/rails6_users_app/bin/update +25 -0
- data/spec/fixtures/rails6_users_app/config.ru +5 -0
- data/spec/fixtures/rails6_users_app/config/application.rb +51 -0
- data/spec/fixtures/rails6_users_app/config/boot.rb +3 -0
- data/spec/fixtures/rails6_users_app/config/credentials.yml.enc +1 -0
- data/spec/fixtures/rails6_users_app/config/database.yml +18 -0
- data/spec/fixtures/rails6_users_app/config/environment.rb +5 -0
- data/spec/fixtures/rails6_users_app/config/environments/development.rb +40 -0
- data/spec/fixtures/rails6_users_app/config/environments/production.rb +68 -0
- data/spec/fixtures/rails6_users_app/config/environments/test.rb +36 -0
- data/spec/fixtures/rails6_users_app/config/initializers/application_controller_renderer.rb +8 -0
- data/spec/fixtures/rails6_users_app/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/fixtures/rails6_users_app/config/initializers/cors.rb +16 -0
- data/spec/fixtures/rails6_users_app/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/fixtures/rails6_users_app/config/initializers/inflections.rb +16 -0
- data/spec/fixtures/rails6_users_app/config/initializers/mime_types.rb +4 -0
- data/spec/fixtures/rails6_users_app/config/initializers/record_button.rb +3 -0
- data/spec/fixtures/rails6_users_app/config/initializers/wrap_parameters.rb +9 -0
- data/spec/fixtures/rails6_users_app/config/locales/en.yml +33 -0
- data/spec/fixtures/rails6_users_app/config/routes.rb +11 -0
- data/spec/fixtures/rails6_users_app/create_app +27 -0
- data/spec/fixtures/rails6_users_app/db/migrate/20190728211408_create_users.rb +9 -0
- data/spec/fixtures/rails6_users_app/db/schema.rb +23 -0
- data/spec/fixtures/rails6_users_app/docker-compose.yml +28 -0
- data/spec/fixtures/rails6_users_app/features/api_users.feature +13 -0
- data/spec/fixtures/rails6_users_app/features/support/env.rb +4 -0
- data/spec/fixtures/rails6_users_app/features/support/hooks.rb +11 -0
- data/spec/fixtures/rails6_users_app/features/support/steps.rb +18 -0
- data/spec/fixtures/rails6_users_app/lib/tasks/.keep +0 -0
- data/spec/fixtures/rails6_users_app/log/.keep +0 -0
- data/spec/fixtures/rails6_users_app/public/robots.txt +1 -0
- data/spec/fixtures/rails6_users_app/spec/controllers/users_controller_api_spec.rb +29 -0
- data/spec/fixtures/rails6_users_app/spec/controllers/users_controller_spec.rb +27 -0
- data/spec/fixtures/rails6_users_app/spec/models/user_spec.rb +39 -0
- data/spec/fixtures/rails6_users_app/spec/rails_helper.rb +66 -0
- data/spec/fixtures/rails6_users_app/spec/spec_helper.rb +96 -0
- data/spec/fixtures/rails6_users_app/users_app/.gitignore +20 -0
- data/spec/hook_spec.rb +103 -22
- data/spec/rails_spec_helper.rb +5 -5
- data/spec/railtie_spec.rb +31 -32
- data/spec/record_sql_rails4_pg_spec.rb +47 -48
- data/spec/record_sql_rails_pg_spec.rb +62 -63
- data/spec/remote_recording_spec.rb +90 -89
- data/spec/rspec_feature_metadata_spec.rb +17 -18
- data/test/expectations/openssl_test_key_sign1.json +55 -0
- data/test/expectations/openssl_test_key_sign2.json +58 -0
- data/test/fixtures/gem_test/Gemfile +6 -0
- data/test/fixtures/gem_test/appmap.yml +3 -0
- data/test/fixtures/gem_test/test/to_param_test.rb +14 -0
- data/test/gem_test.rb +34 -0
- data/test/minitest_test.rb +2 -2
- data/test/openssl_test.rb +10 -117
- metadata +173 -80
- data/spec/fixtures/rails_users_app/app/controllers/users_controller.rb +0 -5
- data/spec/fixtures/rails_users_app/appmap.yml +0 -3
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'spec_helper'
|
|
4
|
+
|
|
5
|
+
describe 'AppMap::ClassMap' do
|
|
6
|
+
describe '.build_from_methods' do
|
|
7
|
+
it 'includes source code if available' do
|
|
8
|
+
map = AppMap.class_map([scoped_method(method(:test_method))])
|
|
9
|
+
function = dig_map(map, 5)[0]
|
|
10
|
+
expect(function[:source]).to include 'test method body'
|
|
11
|
+
expect(function[:comment]).to include 'test method comment'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it 'can omit source code even if available' do
|
|
15
|
+
map = AppMap.class_map([scoped_method((method :test_method))], include_source: false)
|
|
16
|
+
function = dig_map(map, 5)[0]
|
|
17
|
+
expect(function).to_not include(:source)
|
|
18
|
+
expect(function).to_not include(:comment)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# test method comment
|
|
22
|
+
def test_method
|
|
23
|
+
'test method body'
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def scoped_method(method)
|
|
27
|
+
AppMap::Trace::ScopedMethod.new AppMap::Config::Package.new, method.receiver.class.name, method, false
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def dig_map(map, depth)
|
|
31
|
+
return map if depth == 0
|
|
32
|
+
|
|
33
|
+
dig_map map[0][:children], depth - 1
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
|
+
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
|
3
|
+
|
|
4
|
+
gem 'rails', '~> 5'
|
|
5
|
+
|
|
6
|
+
gem 'haml-rails'
|
|
7
|
+
|
|
8
|
+
gem 'activerecord', require: false
|
|
9
|
+
gem 'pg'
|
|
10
|
+
gem 'sequel', '= 5.20.0', require: false
|
|
11
|
+
gem 'sequel-rails', require: false
|
|
12
|
+
gem 'sequel_secure_password', require: false
|
|
13
|
+
|
|
14
|
+
appmap_path = \
|
|
15
|
+
# Support debugging inside the container with volume-mounted source
|
|
16
|
+
if File.directory?('/src/appmap-ruby')
|
|
17
|
+
'/src/appmap-ruby'
|
|
18
|
+
elsif File.exist?('../../../appmap.gemspec')
|
|
19
|
+
'../../..'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
if appmap_path
|
|
23
|
+
# Set the branch parameter, so that 'bundle config local.appmap' will work
|
|
24
|
+
appmap_branch = Dir.chdir appmap_path do
|
|
25
|
+
`git rev-parse --abbrev-ref HEAD`.strip
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
appmap_options = \
|
|
30
|
+
if appmap_path && appmap_branch
|
|
31
|
+
{ git: appmap_path, branch: appmap_branch }
|
|
32
|
+
elsif appmap_path
|
|
33
|
+
{ path: appmap_path }
|
|
34
|
+
else
|
|
35
|
+
{}
|
|
36
|
+
end.merge(require: %w[appmap appmap/railtie])
|
|
37
|
+
|
|
38
|
+
gem 'appmap', appmap_options
|
|
39
|
+
|
|
40
|
+
group :development, :test do
|
|
41
|
+
gem 'cucumber-rails', require: false
|
|
42
|
+
gem 'rspec-rails'
|
|
43
|
+
# Required for Sequel, since without ActiveRecord, the Rails transactional fixture support
|
|
44
|
+
# isn't activated.
|
|
45
|
+
gem 'database_cleaner'
|
|
46
|
+
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
|
|
47
|
+
gem 'pry-byebug'
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
group :development do
|
|
51
|
+
end
|
|
File without changes
|
data/spec/fixtures/{rails_users_app → rails5_users_app}/app/controllers/api/users_controller.rb
RENAMED
|
File without changes
|
data/spec/fixtures/{rails_users_app → rails5_users_app}/app/controllers/application_controller.rb
RENAMED
|
File without changes
|
|
File without changes
|
data/spec/fixtures/{rails_users_app → rails5_users_app}/app/controllers/health_controller.rb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/spec/fixtures/{rails_users_app → rails5_users_app}/app/views/layouts/application.html.haml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/spec/fixtures/{rails_users_app → rails5_users_app}/config/initializers/backtrace_silencers.rb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/spec/fixtures/{rails_users_app → rails5_users_app}/config/initializers/record_button.rb
RENAMED
|
File without changes
|
data/spec/fixtures/{rails_users_app → rails5_users_app}/config/initializers/wrap_parameters.rb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/spec/fixtures/{rails_users_app → rails5_users_app}/db/migrate/20190728211408_create_users.rb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -21,7 +21,7 @@ RSpec.describe Api::UsersController, feature_group: 'Users', type: :controller,
|
|
|
21
21
|
post :create, params: { login: 'alice' }
|
|
22
22
|
end
|
|
23
23
|
it 'lists the users' do
|
|
24
|
-
|
|
24
|
+
get :index, params: {}
|
|
25
25
|
users = JSON.parse(response.body)
|
|
26
26
|
expect(users.map { |r| r['login'] }).to include('alice')
|
|
27
27
|
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require 'rails_helper'
|
|
2
|
+
require 'rack/test'
|
|
3
|
+
|
|
4
|
+
RSpec.describe UsersController, type: :controller do
|
|
5
|
+
render_views
|
|
6
|
+
|
|
7
|
+
describe 'GET /users', feature: 'Show all users' do
|
|
8
|
+
before do
|
|
9
|
+
User.create login: 'alice'
|
|
10
|
+
end
|
|
11
|
+
it 'lists the users' do
|
|
12
|
+
get :index
|
|
13
|
+
expect(response).to be_ok
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
describe 'GET /users/:login', feature: 'Show a user' do
|
|
18
|
+
before do
|
|
19
|
+
User.create login: 'alice'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'shows the user' do
|
|
23
|
+
get :show, params: { id: 'alice' }
|
|
24
|
+
expect(response).to be_ok
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Gemfile.lock
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
|
|
2
|
+
#
|
|
3
|
+
# If you find yourself ignoring temporary files generated by your text editor
|
|
4
|
+
# or operating system, you probably want to add a global ignore instead:
|
|
5
|
+
# git config --global core.excludesfile '~/.gitignore_global'
|
|
6
|
+
|
|
7
|
+
# Ignore bundler config.
|
|
8
|
+
/.bundle
|
|
9
|
+
vendor
|
|
10
|
+
|
|
11
|
+
# Ignore all logfiles and tempfiles.
|
|
12
|
+
/log/*
|
|
13
|
+
/tmp/*
|
|
14
|
+
!/log/.keep
|
|
15
|
+
!/tmp/.keep
|
|
16
|
+
|
|
17
|
+
# Ignore uploaded files in development
|
|
18
|
+
/storage/*
|
|
19
|
+
!/storage/.keep
|
|
20
|
+
|
|
21
|
+
/node_modules
|
|
22
|
+
/yarn-error.log
|
|
23
|
+
|
|
24
|
+
/public/assets
|
|
25
|
+
.byebug_history
|
|
26
|
+
|
|
27
|
+
# Ignore master key for decrypting credentials and more.
|
|
28
|
+
/config/master.key
|
|
29
|
+
|
|
30
|
+
# Other
|
|
31
|
+
.DS_Store
|
|
32
|
+
.appmap
|
|
33
|
+
appmap.json
|
|
34
|
+
appmap-recording-*.json
|
|
35
|
+
capybara-*.html
|
|
36
|
+
|
|
37
|
+
# appmap gem is pre-installed, don't lock to a version
|
|
38
|
+
Gemfile.lock
|
|
39
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
--require spec_helper
|
|
File without changes
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
ARG GEM_VERSION
|
|
2
|
+
ARG RUBY_VERSION
|
|
3
|
+
|
|
4
|
+
FROM appmap:${GEM_VERSION} as appmap
|
|
5
|
+
|
|
6
|
+
FROM ruby:${RUBY_VERSION}
|
|
7
|
+
RUN apt-get update && apt-get install -y vim less
|
|
8
|
+
RUN apt-get install -y postgresql-client
|
|
9
|
+
|
|
10
|
+
RUN mkdir /app
|
|
11
|
+
WORKDIR /app
|
|
12
|
+
|
|
13
|
+
RUN gem install -N bundler
|
|
14
|
+
|
|
15
|
+
COPY Gemfile .
|
|
16
|
+
|
|
17
|
+
RUN bundle
|
|
18
|
+
RUN bundle binstubs bundler rspec-core --force
|
|
19
|
+
|
|
20
|
+
COPY . .
|
|
21
|
+
|
|
22
|
+
COPY --from=appmap /pkg/appmap.gem /tmp/
|
|
23
|
+
RUN gem install /tmp/appmap.gem && \
|
|
24
|
+
bundle update --local appmap && \
|
|
25
|
+
bundle binstubs appmap --force
|
|
26
|
+
|
|
27
|
+
EXPOSE 3000
|
|
28
|
+
|
|
29
|
+
HEALTHCHECK --interval=1s --retries=10 CMD curl --fail http://localhost:3000/health || exit 1
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Api
|
|
2
|
+
class UsersController < ActionController::API
|
|
3
|
+
def index
|
|
4
|
+
@users = User.all
|
|
5
|
+
render json: @users
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def create
|
|
9
|
+
@user = build_user(params.slice(:login).to_unsafe_h)
|
|
10
|
+
unless @user.valid?
|
|
11
|
+
error = {
|
|
12
|
+
code: 'invalid',
|
|
13
|
+
target: 'User',
|
|
14
|
+
message: @user.errors.full_messages.join(', '),
|
|
15
|
+
details: @user.errors.map { |k, v| { code: 'invalid', target: k, message: Array(v).join(', ') } }
|
|
16
|
+
}
|
|
17
|
+
return render json: error, status: :unprocessable_entity
|
|
18
|
+
end
|
|
19
|
+
@user.save
|
|
20
|
+
render json: @user, status: :created
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def build_user(params)
|
|
24
|
+
User.new(params)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|