stackify-ruby-apm 1.0.1 → 1.1.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 (91) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +38 -0
  3. data/.ruby-version +1 -0
  4. data/Gemfile +17 -11
  5. data/Gemfile.lock +98 -95
  6. data/Rakefile +7 -5
  7. data/docker/stackify-ruby +8 -0
  8. data/docker/stackify-ruby-rvm +10 -0
  9. data/docker/stackify-ruby-test +28 -0
  10. data/lib/{stackify → stackify_apm}/agent.rb +42 -33
  11. data/lib/{stackify → stackify_apm}/config.rb +56 -39
  12. data/lib/{stackify → stackify_apm}/context.rb +5 -6
  13. data/lib/{stackify → stackify_apm}/context/request.rb +0 -0
  14. data/lib/{stackify → stackify_apm}/context/request/socket.rb +0 -0
  15. data/lib/{stackify → stackify_apm}/context/request/url.rb +2 -6
  16. data/lib/stackify_apm/context/response.rb +33 -0
  17. data/lib/{stackify → stackify_apm}/context_builder.rb +2 -5
  18. data/lib/{stackify → stackify_apm}/error.rb +7 -6
  19. data/lib/stackify_apm/error/exception.rb +37 -0
  20. data/lib/stackify_apm/error/log.rb +24 -0
  21. data/lib/stackify_apm/error_builder.rb +61 -0
  22. data/lib/stackify_apm/helper/database_helper.rb +27 -0
  23. data/lib/{stackify → stackify_apm}/instrumenter.rb +12 -19
  24. data/lib/{stackify → stackify_apm}/internal_error.rb +0 -0
  25. data/lib/{stackify → stackify_apm}/log.rb +0 -0
  26. data/lib/{stackify → stackify_apm}/logger/log_device.rb +22 -11
  27. data/lib/{stackify → stackify_apm}/logger/logger_high_version.rb +1 -6
  28. data/lib/{stackify → stackify_apm}/logger/logger_lower_version.rb +2 -1
  29. data/lib/stackify_apm/middleware.rb +70 -0
  30. data/lib/{stackify → stackify_apm}/naively_hashable.rb +1 -3
  31. data/lib/{stackify → stackify_apm}/normalizers.rb +3 -2
  32. data/lib/{stackify → stackify_apm}/normalizers/action_controller.rb +0 -0
  33. data/lib/{stackify → stackify_apm}/normalizers/action_mailer.rb +0 -0
  34. data/lib/{stackify → stackify_apm}/normalizers/action_view.rb +0 -0
  35. data/lib/{stackify → stackify_apm}/normalizers/active_record.rb +3 -25
  36. data/lib/{stackify → stackify_apm}/railtie.rb +5 -7
  37. data/lib/{stackify → stackify_apm}/root_info.rb +2 -6
  38. data/lib/{stackify → stackify_apm}/serializers.rb +3 -2
  39. data/lib/{stackify → stackify_apm}/serializers/errors.rb +7 -10
  40. data/lib/{stackify → stackify_apm}/serializers/transactions.rb +11 -18
  41. data/lib/{stackify → stackify_apm}/span.rb +8 -9
  42. data/lib/{stackify → stackify_apm}/span/context.rb +3 -1
  43. data/lib/{stackify → stackify_apm}/spies.rb +3 -2
  44. data/lib/{stackify → stackify_apm}/spies/action_dispatch.rb +3 -4
  45. data/lib/stackify_apm/spies/curb.rb +49 -0
  46. data/lib/stackify_apm/spies/curb/easy.rb +157 -0
  47. data/lib/stackify_apm/spies/curb/multi.rb +43 -0
  48. data/lib/{stackify → stackify_apm}/spies/httpclient.rb +10 -8
  49. data/lib/{stackify → stackify_apm}/spies/httprb.rb +7 -9
  50. data/lib/{stackify → stackify_apm}/spies/mongo.rb +5 -3
  51. data/lib/{stackify → stackify_apm}/spies/net_http.rb +4 -5
  52. data/lib/{stackify → stackify_apm}/spies/redis.rb +19 -18
  53. data/lib/stackify_apm/spies/sequel.rb +65 -0
  54. data/lib/{stackify → stackify_apm}/spies/sinatra.rb +7 -10
  55. data/lib/stackify_apm/spies/sinatra_activerecord/mysql_adapter.rb +201 -0
  56. data/lib/stackify_apm/spies/sinatra_activerecord/postgresql_adapter.rb +94 -0
  57. data/lib/stackify_apm/spies/sinatra_activerecord/sqlite_adapter.rb +46 -0
  58. data/lib/stackify_apm/spies/stackify_logger.rb +60 -0
  59. data/lib/{stackify → stackify_apm}/spies/tilt.rb +3 -3
  60. data/lib/stackify_apm/stacktrace.rb +18 -0
  61. data/lib/stackify_apm/stacktrace/frame.rb +47 -0
  62. data/lib/{stackify → stackify_apm}/stacktrace_builder.rb +10 -11
  63. data/lib/{stackify → stackify_apm}/subscriber.rb +20 -14
  64. data/lib/{stackify → stackify_apm}/trace_logger.rb +10 -16
  65. data/lib/stackify_apm/transaction.rb +127 -0
  66. data/lib/{stackify → stackify_apm}/util.rb +3 -1
  67. data/lib/{stackify → stackify_apm}/util/dig.rb +1 -1
  68. data/lib/{stackify → stackify_apm}/util/inflector.rb +0 -0
  69. data/lib/{stackify → stackify_apm}/util/inspector.rb +1 -3
  70. data/lib/stackify_apm/util/lru_cache.rb +49 -0
  71. data/lib/stackify_apm/util/trace_log_watcher.rb +37 -0
  72. data/lib/stackify_apm/version.rb +6 -0
  73. data/lib/{stackify → stackify_apm}/worker.rb +8 -7
  74. data/lib/stackify_ruby_apm.rb +18 -15
  75. data/run-test-docker.sh +50 -0
  76. data/run-test.sh +1 -3
  77. data/stackify-ruby-apm.gemspec +14 -11
  78. metadata +86 -59
  79. data/lib/stackify/context/response.rb +0 -37
  80. data/lib/stackify/error/exception.rb +0 -36
  81. data/lib/stackify/error/log.rb +0 -25
  82. data/lib/stackify/error_builder.rb +0 -65
  83. data/lib/stackify/middleware.rb +0 -74
  84. data/lib/stackify/spies/sinatra_activerecord/mysql_adapter.rb +0 -177
  85. data/lib/stackify/spies/sinatra_activerecord/postgresql_adapter.rb +0 -96
  86. data/lib/stackify/spies/sinatra_activerecord/sqlite_adapter.rb +0 -48
  87. data/lib/stackify/stacktrace.rb +0 -19
  88. data/lib/stackify/stacktrace/frame.rb +0 -50
  89. data/lib/stackify/transaction.rb +0 -132
  90. data/lib/stackify/util/lru_cache.rb +0 -49
  91. data/lib/stackify/version.rb +0 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1b769d0f8ea6c9ec534a343fb2db63c355857cd0
4
- data.tar.gz: a670f3472367c5d18abb2d73ab5a7bf6c53c3414
3
+ metadata.gz: de9af597a0b5c2cd3404ca49bb58b493ceddf026
4
+ data.tar.gz: dbfed2f61477f371a4e04d4e21e99774f85e3dba
5
5
  SHA512:
6
- metadata.gz: 255d6443ed6fc90b60bebce9282807d988b746fb2b3a08b5b1748f4db5aa6a84834561c29bc8182d0bfb32a963836cb546a6087fcbeeef96a6a39f86e7d50720
7
- data.tar.gz: fb3beadebaf884ddcacf61a34701e5cfc86177f067ec9e9956ef2d6de5db3e8ef49fdea9df24922c1d5470c081c3f18e7162bd82d4ae8abb6dd6ebd2e5510df8
6
+ metadata.gz: 2b1bae168fc9700f547c8de0ba4e26185c62b1e416d9b9520d7195db70977a6226cde6d47c07ab3ad1fa36fadeb3f2cdf685f3f006af8fedb6de93c210cd4fc7
7
+ data.tar.gz: e9050031fcfcdf3449c9375837d41e8f157fb183c6882d063b7bbe879710998290eace9b3f3e847607328649b07026c3746e76c4188762f47d62034c28b75b4b
data/.rubocop.yml ADDED
@@ -0,0 +1,38 @@
1
+ AllCops:
2
+ RubyInterpreters:
3
+ - ruby
4
+ - macruby
5
+ - rake
6
+ - jruby
7
+ - rbx
8
+
9
+ Exclude:
10
+ - 'node_modules/**/*'
11
+ - 'vendor/**/*'
12
+ - '.git/**/*'
13
+ - 'spec/**/*'
14
+
15
+ Naming/FileName:
16
+ Exclude:
17
+ - 'lib/stackify-ruby-apm.rb'
18
+
19
+ Metrics/LineLength:
20
+ Max: 1000
21
+
22
+ Metrics/BlockLength:
23
+ Max: 1000
24
+
25
+ Metrics/MethodLength:
26
+ Enabled: false
27
+
28
+ Metrics/ClassLength:
29
+ Max: 1000
30
+
31
+ Style/RedundantFreeze:
32
+ Enabled: false
33
+
34
+ Style/SafeNavigation:
35
+ Enabled: false
36
+
37
+ Metrics/AbcSize:
38
+ Enabled: false
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.0.0-p648
data/Gemfile CHANGED
@@ -1,22 +1,28 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in stackify-ruby-apm.gemspec
4
6
  gemspec
5
7
 
6
8
  group :test do
7
- gem 'mongo'
8
- gem 'webmock'
9
+ gem 'activerecord'
10
+ gem 'curb'
9
11
  gem 'fakeredis'
10
- gem 'rack-test'
11
- gem 'rails'
12
- gem 'httpclient'
13
12
  gem 'http'
14
- gem 'timecop'
15
- gem "sinatra"
16
- gem "activerecord"
17
- gem "sinatra-activerecord"
18
- gem "sqlite3"
13
+ gem 'httpclient'
14
+ gem 'mongo'
19
15
  gem 'mysql2'
20
16
  gem 'pg', '~> 0.20'
17
+ gem 'rack-test'
18
+ gem 'rails'
21
19
  gem 'rubocop', require: false
20
+ gem 'sequel'
21
+ gem 'sinatra'
22
+ gem 'sinatra-activerecord'
23
+ gem 'sqlite3', '1.3.13'
24
+ gem 'stackify-api-ruby'
25
+ gem 'timecop'
26
+ gem 'to_bool'
27
+ gem 'webmock'
22
28
  end
data/Gemfile.lock CHANGED
@@ -1,57 +1,51 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- stackify-ruby-apm (1.0.1)
4
+ stackify-ruby-apm (1.1.0)
5
5
  concurrent-ruby (~> 1.0)
6
6
  delegate_matcher (~> 0.4)
7
+ rufus-scheduler (~> 3.5)
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
10
11
  specs:
11
- actioncable (5.2.2)
12
- actionpack (= 5.2.2)
13
- nio4r (~> 2.0)
14
- websocket-driver (>= 0.6.1)
15
- actionmailer (5.2.2)
16
- actionpack (= 5.2.2)
17
- actionview (= 5.2.2)
18
- activejob (= 5.2.2)
12
+ actionmailer (4.2.11)
13
+ actionpack (= 4.2.11)
14
+ actionview (= 4.2.11)
15
+ activejob (= 4.2.11)
19
16
  mail (~> 2.5, >= 2.5.4)
20
- rails-dom-testing (~> 2.0)
21
- actionpack (5.2.2)
22
- actionview (= 5.2.2)
23
- activesupport (= 5.2.2)
24
- rack (~> 2.0)
25
- rack-test (>= 0.6.3)
26
- rails-dom-testing (~> 2.0)
17
+ rails-dom-testing (~> 1.0, >= 1.0.5)
18
+ actionpack (4.2.11)
19
+ actionview (= 4.2.11)
20
+ activesupport (= 4.2.11)
21
+ rack (~> 1.6)
22
+ rack-test (~> 0.6.2)
23
+ rails-dom-testing (~> 1.0, >= 1.0.5)
27
24
  rails-html-sanitizer (~> 1.0, >= 1.0.2)
28
- actionview (5.2.2)
29
- activesupport (= 5.2.2)
25
+ actionview (4.2.11)
26
+ activesupport (= 4.2.11)
30
27
  builder (~> 3.1)
31
- erubi (~> 1.4)
32
- rails-dom-testing (~> 2.0)
28
+ erubis (~> 2.7.0)
29
+ rails-dom-testing (~> 1.0, >= 1.0.5)
33
30
  rails-html-sanitizer (~> 1.0, >= 1.0.3)
34
- activejob (5.2.2)
35
- activesupport (= 5.2.2)
36
- globalid (>= 0.3.6)
37
- activemodel (5.2.2)
38
- activesupport (= 5.2.2)
39
- activerecord (5.2.2)
40
- activemodel (= 5.2.2)
41
- activesupport (= 5.2.2)
42
- arel (>= 9.0)
43
- activestorage (5.2.2)
44
- actionpack (= 5.2.2)
45
- activerecord (= 5.2.2)
46
- marcel (~> 0.3.1)
47
- activesupport (5.2.2)
48
- concurrent-ruby (~> 1.0, >= 1.0.2)
49
- i18n (>= 0.7, < 2)
31
+ activejob (4.2.11)
32
+ activesupport (= 4.2.11)
33
+ globalid (>= 0.3.0)
34
+ activemodel (4.2.11)
35
+ activesupport (= 4.2.11)
36
+ builder (~> 3.1)
37
+ activerecord (4.2.11)
38
+ activemodel (= 4.2.11)
39
+ activesupport (= 4.2.11)
40
+ arel (~> 6.0)
41
+ activesupport (4.2.11)
42
+ i18n (~> 0.7)
50
43
  minitest (~> 5.1)
44
+ thread_safe (~> 0.3, >= 0.3.4)
51
45
  tzinfo (~> 1.1)
52
46
  addressable (2.5.2)
53
47
  public_suffix (>= 2.0.2, < 4.0)
54
- arel (9.0.0)
48
+ arel (6.0.4)
55
49
  ast (2.4.0)
56
50
  bson (4.3.0)
57
51
  builder (3.2.3)
@@ -59,51 +53,53 @@ GEM
59
53
  crack (0.4.3)
60
54
  safe_yaml (~> 1.0.0)
61
55
  crass (1.0.4)
56
+ curb (0.9.8)
62
57
  delegate_matcher (0.4.3)
63
58
  proc_extensions (~> 0.2)
64
59
  diff-lcs (1.3)
65
60
  domain_name (0.5.20180417)
66
61
  unf (>= 0.0.5, < 1.0.0)
67
- erubi (1.8.0)
62
+ erubis (2.7.0)
63
+ et-orbi (1.1.7)
64
+ tzinfo
68
65
  fakeredis (0.7.0)
69
66
  redis (>= 3.2, < 5.0)
67
+ faraday (0.15.4)
68
+ multipart-post (>= 1.2, < 3)
70
69
  file-tail (1.2.0)
71
70
  tins (~> 1.0)
72
- globalid (0.4.1)
71
+ fugit (1.1.8)
72
+ et-orbi (~> 1.1, >= 1.1.7)
73
+ raabro (~> 1.1)
74
+ globalid (0.4.2)
73
75
  activesupport (>= 4.2.0)
74
76
  hashdiff (0.3.8)
75
- http (4.0.0)
77
+ http (3.0.0)
76
78
  addressable (~> 2.3)
77
79
  http-cookie (~> 1.0)
78
- http-form_data (~> 2.0)
80
+ http-form_data (>= 2.0.0.pre.pre2, < 3)
79
81
  http_parser.rb (~> 0.6.0)
80
82
  http-cookie (1.0.3)
81
83
  domain_name (~> 0.5)
82
84
  http-form_data (2.1.1)
83
85
  http_parser.rb (0.6.0)
84
86
  httpclient (2.8.3)
85
- i18n (1.5.1)
87
+ i18n (0.9.5)
86
88
  concurrent-ruby (~> 1.0)
87
- jaro_winkler (1.5.2)
88
89
  loofah (2.2.3)
89
90
  crass (~> 1.0.2)
90
91
  nokogiri (>= 1.5.9)
91
92
  mail (2.7.1)
92
93
  mini_mime (>= 0.1.1)
93
- marcel (0.3.3)
94
- mimemagic (~> 0.3.2)
95
- method_source (0.9.2)
96
- mimemagic (0.3.3)
97
94
  mini_mime (1.0.1)
98
- mini_portile2 (2.4.0)
95
+ mini_portile2 (2.1.0)
99
96
  minitest (5.11.3)
100
97
  mongo (2.6.2)
101
98
  bson (>= 4.3.0, < 5.0.0)
102
- mustermann (1.0.3)
99
+ multipart-post (2.0.0)
103
100
  mysql2 (0.5.2)
104
- nio4r (2.3.1)
105
- nokogiri (1.10.0)
106
- mini_portile2 (~> 2.4.0)
101
+ nokogiri (1.6.8.1)
102
+ mini_portile2 (~> 2.1.0)
107
103
  parallel (1.12.1)
108
104
  parser (2.5.3.0)
109
105
  ast (~> 2.4.0)
@@ -111,39 +107,41 @@ GEM
111
107
  powerpack (0.1.2)
112
108
  proc_extensions (0.2)
113
109
  sourcify (~> 0.5)
114
- public_suffix (3.0.3)
115
- rack (2.0.6)
116
- rack-protection (2.0.5)
110
+ public_suffix (2.0.5)
111
+ raabro (1.1.6)
112
+ rack (1.6.11)
113
+ rack-protection (1.5.5)
117
114
  rack
118
- rack-test (1.1.0)
119
- rack (>= 1.0, < 3)
120
- rails (5.2.2)
121
- actioncable (= 5.2.2)
122
- actionmailer (= 5.2.2)
123
- actionpack (= 5.2.2)
124
- actionview (= 5.2.2)
125
- activejob (= 5.2.2)
126
- activemodel (= 5.2.2)
127
- activerecord (= 5.2.2)
128
- activestorage (= 5.2.2)
129
- activesupport (= 5.2.2)
130
- bundler (>= 1.3.0)
131
- railties (= 5.2.2)
132
- sprockets-rails (>= 2.0.0)
133
- rails-dom-testing (2.0.3)
134
- activesupport (>= 4.2.0)
135
- nokogiri (>= 1.6)
115
+ rack-test (0.6.3)
116
+ rack (>= 1.0)
117
+ rails (4.2.11)
118
+ actionmailer (= 4.2.11)
119
+ actionpack (= 4.2.11)
120
+ actionview (= 4.2.11)
121
+ activejob (= 4.2.11)
122
+ activemodel (= 4.2.11)
123
+ activerecord (= 4.2.11)
124
+ activesupport (= 4.2.11)
125
+ bundler (>= 1.3.0, < 2.0)
126
+ railties (= 4.2.11)
127
+ sprockets-rails
128
+ rails-deprecated_sanitizer (1.0.3)
129
+ activesupport (>= 4.2.0.alpha)
130
+ rails-dom-testing (1.0.9)
131
+ activesupport (>= 4.2.0, < 5.0)
132
+ nokogiri (~> 1.6)
133
+ rails-deprecated_sanitizer (>= 1.0.1)
136
134
  rails-html-sanitizer (1.0.4)
137
135
  loofah (~> 2.2, >= 2.2.2)
138
- railties (5.2.2)
139
- actionpack (= 5.2.2)
140
- activesupport (= 5.2.2)
141
- method_source
136
+ railties (4.2.11)
137
+ actionpack (= 4.2.11)
138
+ activesupport (= 4.2.11)
142
139
  rake (>= 0.8.7)
143
- thor (>= 0.19.0, < 2.0)
144
- rainbow (3.0.0)
140
+ thor (>= 0.18.1, < 2.0)
141
+ rainbow (2.2.2)
142
+ rake
145
143
  rake (10.5.0)
146
- redis (4.1.0)
144
+ redis (3.3.5)
147
145
  rspec (3.8.0)
148
146
  rspec-core (~> 3.8.0)
149
147
  rspec-expectations (~> 3.8.0)
@@ -157,27 +155,28 @@ GEM
157
155
  diff-lcs (>= 1.2.0, < 2.0)
158
156
  rspec-support (~> 3.8.0)
159
157
  rspec-support (3.8.0)
160
- rubocop (0.62.0)
161
- jaro_winkler (~> 1.5.1)
158
+ rubocop (0.50.0)
162
159
  parallel (~> 1.10)
163
- parser (>= 2.5, != 2.5.1.1)
160
+ parser (>= 2.3.3.1, < 3.0)
164
161
  powerpack (~> 0.1)
165
- rainbow (>= 2.2.2, < 4.0)
162
+ rainbow (>= 2.2.2, < 3.0)
166
163
  ruby-progressbar (~> 1.7)
167
- unicode-display_width (~> 1.4.0)
164
+ unicode-display_width (~> 1.0, >= 1.0.1)
168
165
  ruby-progressbar (1.10.0)
169
166
  ruby2ruby (2.4.1)
170
167
  ruby_parser (~> 3.1)
171
168
  sexp_processor (~> 4.6)
172
169
  ruby_parser (3.12.0)
173
170
  sexp_processor (~> 4.9)
171
+ rufus-scheduler (3.5.2)
172
+ fugit (~> 1.1, >= 1.1.5)
174
173
  safe_yaml (1.0.4)
174
+ sequel (5.16.0)
175
175
  sexp_processor (4.11.0)
176
- sinatra (2.0.5)
177
- mustermann (~> 1.0)
178
- rack (~> 2.0)
179
- rack-protection (= 2.0.5)
180
- tilt (~> 2.0)
176
+ sinatra (1.4.8)
177
+ rack (~> 1.5)
178
+ rack-protection (~> 1.4)
179
+ tilt (>= 1.3, < 3)
181
180
  sinatra-activerecord (2.0.13)
182
181
  activerecord (>= 3.2)
183
182
  sinatra (>= 1.0)
@@ -194,11 +193,14 @@ GEM
194
193
  activesupport (>= 4.0)
195
194
  sprockets (>= 3.0.0)
196
195
  sqlite3 (1.3.13)
196
+ stackify-api-ruby (1.0.11)
197
+ faraday (~> 0.8)
197
198
  thor (0.20.3)
198
199
  thread_safe (0.3.6)
199
200
  tilt (2.0.9)
200
201
  timecop (0.9.1)
201
202
  tins (1.20.2)
203
+ to_bool (1.2.0)
202
204
  tzinfo (1.2.5)
203
205
  thread_safe (~> 0.1)
204
206
  unf (0.1.4)
@@ -209,9 +211,6 @@ GEM
209
211
  addressable (>= 2.3.6)
210
212
  crack (>= 0.3.2)
211
213
  hashdiff
212
- websocket-driver (0.7.0)
213
- websocket-extensions (>= 0.1.0)
214
- websocket-extensions (0.1.3)
215
214
 
216
215
  PLATFORMS
217
216
  ruby
@@ -219,6 +218,7 @@ PLATFORMS
219
218
  DEPENDENCIES
220
219
  activerecord
221
220
  bundler (~> 1.16)
221
+ curb
222
222
  fakeredis
223
223
  http
224
224
  httpclient
@@ -230,12 +230,15 @@ DEPENDENCIES
230
230
  rake (~> 10.0)
231
231
  rspec (~> 3.0)
232
232
  rubocop
233
+ sequel
233
234
  sinatra
234
235
  sinatra-activerecord
235
- sqlite3
236
+ sqlite3 (= 1.3.13)
237
+ stackify-api-ruby
236
238
  stackify-ruby-apm!
237
239
  timecop
240
+ to_bool
238
241
  webmock
239
242
 
240
243
  BUNDLED WITH
241
- 1.17.3
244
+ 1.17.1
data/Rakefile CHANGED
@@ -1,10 +1,12 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
3
5
 
4
6
  if defined?(Sinatra)
5
- require "rspec/integration/sinatra_sqlite_adapter_rspec"
6
- require "sinatra/activerecord/rake"
7
+ require 'rspec/integration/sinatra_sqlite_adapter_rspec'
8
+ require 'sinatra/activerecord/rake'
7
9
  end
8
10
  RSpec::Core::RakeTask.new(:spec)
9
11
 
10
- task :default => :spec
12
+ task default: :spec
@@ -0,0 +1,8 @@
1
+ FROM stackify-ruby-rvm:latest
2
+
3
+ ARG version
4
+
5
+ RUN rvm install $version && rvm --version
6
+
7
+
8
+
@@ -0,0 +1,10 @@
1
+ FROM ubuntu:18.04
2
+
3
+ RUN \
4
+ export DEBIAN_FRONTEND=noninteractiv && \
5
+ apt-get update && \
6
+ apt-get install -y curl git libcurl4-gnutls-dev libmysqlclient-dev libmysqld-dev libpq-dev tzdata && \
7
+ curl -L https://get.rvm.io | bash -s stable
8
+
9
+ ENV PATH /usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
10
+