newrelic_rpm 3.9.5.251 → 3.9.6.257
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/CHANGELOG +74 -3
- data/GUIDELINES_FOR_CONTRIBUTING.md +19 -15
- data/README.md +1 -1
- data/Rakefile +22 -1
- data/lib/new_relic/agent/agent.rb +17 -5
- data/lib/new_relic/agent/agent_logger.rb +4 -0
- data/lib/new_relic/agent/configuration/default_source.rb +45 -1
- data/lib/new_relic/agent/configuration/manager.rb +43 -7
- data/lib/new_relic/agent/cross_app_monitor.rb +0 -3
- data/lib/new_relic/agent/cross_app_tracing.rb +8 -5
- data/lib/new_relic/agent/instrumentation/action_controller_subscriber.rb +4 -1
- data/lib/new_relic/agent/instrumentation/active_job.rb +93 -0
- data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +2 -1
- data/lib/new_relic/agent/instrumentation/middleware_tracing.rb +2 -2
- data/lib/new_relic/agent/instrumentation/sinatra.rb +1 -2
- data/lib/new_relic/agent/new_relic_service.rb +1 -1
- data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +20 -1
- data/lib/new_relic/agent/new_relic_service/pruby_marshaller.rb +5 -1
- data/lib/new_relic/agent/pipe_channel_manager.rb +32 -11
- data/lib/new_relic/agent/threading/agent_thread.rb +1 -1
- data/lib/new_relic/agent/threading/backtrace_node.rb +4 -3
- data/lib/new_relic/agent/transaction.rb +27 -6
- data/lib/new_relic/agent/transaction_state.rb +3 -3
- data/lib/new_relic/agent/vm/mri_vm.rb +3 -3
- data/lib/new_relic/control/frameworks/rails3.rb +1 -16
- data/lib/new_relic/control/instance_methods.rb +2 -0
- data/lib/new_relic/json_wrapper.rb +18 -3
- data/lib/new_relic/rack/browser_monitoring.rb +7 -5
- data/lib/new_relic/rack/developer_mode.rb +2 -0
- data/lib/new_relic/rack/error_collector.rb +12 -51
- data/lib/new_relic/transaction_sample.rb +0 -4
- data/lib/new_relic/transaction_sample/segment.rb +0 -4
- data/lib/new_relic/version.rb +1 -1
- data/newrelic_rpm.gemspec +3 -2
- data/test/agent_helper.rb +1 -1
- data/test/config/test.cert.crt +16 -12
- data/test/config/test.cert.key +13 -13
- data/test/environments/lib/environments/runner.rb +3 -0
- data/test/environments/rails30/Gemfile +2 -2
- data/test/environments/rails31/Gemfile +2 -2
- data/test/environments/rails32/Gemfile +2 -2
- data/test/environments/rails40/Gemfile +2 -4
- data/test/environments/rails41/Gemfile +2 -4
- data/test/environments/rails42/Gemfile +2 -4
- data/test/fixtures/cross_agent_tests/attribute_configuration.json +349 -0
- data/test/fixtures/cross_agent_tests/labels.json +31 -2
- data/test/fixtures/cross_agent_tests/postgres_explain_obfuscation/README.md +16 -0
- data/test/fixtures/cross_agent_tests/rum_client_config.json +9 -9
- data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/empty_head +4 -0
- data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/no_end_header.html +6 -0
- data/test/fixtures/cross_agent_tests/rum_loader_insertion_location/x_ua_meta_tag_multiple_tags.html +12 -0
- data/test/multiverse/lib/multiverse/runner.rb +33 -1
- data/test/multiverse/lib/multiverse/suite.rb +79 -7
- data/test/multiverse/suites/active_record/Envfile +1 -1
- data/test/multiverse/suites/agent_only/encoding_handling_test.rb +1 -1
- data/test/multiverse/suites/agent_only/labels_test.rb +2 -1
- data/test/multiverse/suites/agent_only/set_transaction_name_test.rb +2 -3
- data/test/multiverse/suites/agent_only/thread_profiling_test.rb +6 -6
- data/test/multiverse/suites/capistrano/Envfile +2 -2
- data/test/multiverse/suites/capistrano2/Envfile +4 -0
- data/test/multiverse/suites/curb/Envfile +4 -0
- data/test/multiverse/suites/high_security/config/newrelic.yml +5 -2
- data/test/multiverse/suites/high_security/high_security_test.rb +10 -8
- data/test/multiverse/suites/json/Envfile +23 -0
- data/test/multiverse/suites/json/config/newrelic.yml +22 -0
- data/test/multiverse/suites/json/json_test.rb +17 -0
- data/test/multiverse/suites/marshalling/marshalling_test.rb +2 -45
- data/test/multiverse/suites/rails/Envfile +3 -3
- data/test/multiverse/suites/rails/activejob_test.rb +137 -0
- data/test/multiverse/suites/rails/error_tracing_test.rb +15 -8
- data/test/multiverse/suites/rails/parameter_capture_test.rb +39 -19
- data/test/multiverse/suites/sequel/Envfile +5 -5
- data/test/multiverse/suites/sidekiq/Envfile +2 -2
- data/test/multiverse/suites/sinatra/Envfile +2 -1
- data/test/multiverse/suites/yajl/Envfile +13 -0
- data/test/multiverse/suites/yajl/config/newrelic.yml +21 -0
- data/test/multiverse/suites/yajl/yajl_test.rb +19 -0
- data/test/new_relic/agent/agent_logger_test.rb +10 -0
- data/test/new_relic/agent/agent_test.rb +7 -1
- data/test/new_relic/agent/configuration/default_source_test.rb +24 -0
- data/test/new_relic/agent/configuration/manager_test.rb +60 -2
- data/test/new_relic/agent/configuration/orphan_configuration_test.rb +25 -13
- data/test/new_relic/agent/cross_app_tracing_test.rb +10 -1
- data/test/new_relic/agent/instrumentation/active_job_test.rb +20 -0
- data/test/new_relic/agent/instrumentation/active_record_test.rb +10 -17
- data/test/new_relic/agent/instrumentation/controller_instrumentation_test.rb +15 -0
- data/test/new_relic/agent/instrumentation/sinatra_test.rb +1 -1
- data/test/new_relic/agent/new_relic_service_test.rb +24 -0
- data/test/new_relic/agent/pipe_channel_manager_test.rb +44 -2
- data/test/new_relic/agent/threading/agent_thread_test.rb +1 -2
- data/test/new_relic/agent/threading/backtrace_node_test.rb +12 -0
- data/test/new_relic/agent/transaction_state_test.rb +3 -6
- data/test/new_relic/agent/transaction_test.rb +163 -0
- data/test/new_relic/agent_test.rb +13 -1
- data/test/new_relic/fake_collector.rb +5 -5
- data/test/new_relic/fake_server.rb +5 -3
- data/test/new_relic/http_client_test_cases.rb +0 -4
- data/test/new_relic/marshalling_test_cases.rb +54 -0
- data/test/new_relic/multiverse_helpers.rb +2 -2
- data/test/new_relic/rack/browser_monitoring_test.rb +6 -0
- data/test/new_relic/rack/developer_mode_test.rb +8 -0
- data/test/new_relic/rack/error_collector_test.rb +0 -41
- data/test/new_relic/transaction_sample/segment_test.rb +0 -13
- data/test/new_relic/transaction_sample_test.rb +1 -11
- data/test/performance/lib/performance/instrumentation/perf_tools.rb +1 -1
- data/test/performance/lib/performance/runner.rb +1 -1
- data/test/performance/script/runner +2 -1
- data/test/performance/suites/rum_autoinsertion.rb +12 -2
- metadata +24 -11
- metadata.gz.sig +0 -0
- data/test/config/test.cert.csr +0 -11
- data/test/config/testing-privkey.pem +0 -18
@@ -114,11 +114,11 @@ module NewRelic
|
|
114
114
|
end
|
115
115
|
|
116
116
|
def in_background_transaction?
|
117
|
-
!current_transaction.nil? && current_transaction.
|
117
|
+
!current_transaction.nil? && !current_transaction.recording_web_transaction?
|
118
118
|
end
|
119
119
|
|
120
|
-
def
|
121
|
-
!current_transaction.nil? &&
|
120
|
+
def in_web_transaction?
|
121
|
+
!current_transaction.nil? && current_transaction.recording_web_transaction?
|
122
122
|
end
|
123
123
|
|
124
124
|
# Execution tracing on current thread
|
@@ -29,11 +29,11 @@ module NewRelic
|
|
29
29
|
|
30
30
|
if GC.respond_to?(:stat)
|
31
31
|
gc_stats = GC.stat
|
32
|
-
snap.total_allocated_object = gc_stats[:total_allocated_object]
|
32
|
+
snap.total_allocated_object = gc_stats[:total_allocated_object] || gc_stats[:total_allocated_objects]
|
33
33
|
snap.major_gc_count = gc_stats[:major_gc_count]
|
34
34
|
snap.minor_gc_count = gc_stats[:minor_gc_count]
|
35
|
-
snap.heap_live = gc_stats[:heap_live_slot] || gc_stats[:heap_live_num]
|
36
|
-
snap.heap_free = gc_stats[:heap_free_slot] || gc_stats[:heap_free_num]
|
35
|
+
snap.heap_live = gc_stats[:heap_live_slot] || gc_stats[:heap_live_slots] || gc_stats[:heap_live_num]
|
36
|
+
snap.heap_free = gc_stats[:heap_free_slot] || gc_stats[:heap_free_slots] || gc_stats[:heap_free_num]
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
@@ -4,6 +4,7 @@
|
|
4
4
|
|
5
5
|
require 'new_relic/control/frameworks/rails'
|
6
6
|
require 'new_relic/rack/error_collector'
|
7
|
+
|
7
8
|
module NewRelic
|
8
9
|
class Control
|
9
10
|
module Frameworks
|
@@ -22,22 +23,6 @@ module NewRelic
|
|
22
23
|
::Rails.root.to_s
|
23
24
|
end
|
24
25
|
|
25
|
-
def init_config(options={})
|
26
|
-
super
|
27
|
-
if Agent.config[:agent_enabled] && Agent.config[:'error_collector.enabled']
|
28
|
-
if !rails_config.middleware.respond_to?(:include?) ||
|
29
|
-
!rails_config.middleware.include?(NewRelic::Rack::ErrorCollector)
|
30
|
-
add_error_collector_middleware
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
def add_error_collector_middleware
|
36
|
-
rails_config.middleware.use NewRelic::Rack::ErrorCollector
|
37
|
-
rescue => e
|
38
|
-
NewRelic::Agent.logger.debug("Error encountered installing ErrorCollector: #{e}")
|
39
|
-
end
|
40
|
-
|
41
26
|
def vendor_root
|
42
27
|
@vendor_root ||= File.join(root,'vendor','rails')
|
43
28
|
end
|
@@ -7,9 +7,24 @@ module NewRelic
|
|
7
7
|
def self.load_native_json
|
8
8
|
begin
|
9
9
|
require 'json' unless defined?(::JSON)
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
|
11
|
+
# yajl's replacement methods on ::JSON override both dump and generate.
|
12
|
+
# Because stdlib dump just calls generate, we end up calling into yajl
|
13
|
+
# when we don't want to. As such, we use generate directly instead of
|
14
|
+
# dump, although we have to fuss with defaults to make that ok.
|
15
|
+
generate_method = ::JSON.method(:generate)
|
16
|
+
if ::JSON.respond_to?(:dump_default_options)
|
17
|
+
options = ::JSON.dump_default_options
|
18
|
+
else
|
19
|
+
# These were the defaults from json 1.1.9 up to 1.6.1
|
20
|
+
options = { :allow_nan => true, :max_nesting => false }
|
21
|
+
end
|
22
|
+
@dump_method = Proc.new do |obj|
|
23
|
+
generate_method.call(obj, options)
|
24
|
+
end
|
25
|
+
|
26
|
+
@load_method = ::JSON.method(:load)
|
27
|
+
@backend_name = :json
|
13
28
|
return true
|
14
29
|
rescue StandardError, ScriptError
|
15
30
|
NewRelic::Agent.logger.debug "%p while loading JSON library: %s" % [ err, err.message ] if
|
@@ -22,8 +22,9 @@ module NewRelic::Rack
|
|
22
22
|
def traced_call(env)
|
23
23
|
result = @app.call(env) # [status, headers, response]
|
24
24
|
|
25
|
-
|
26
|
-
|
25
|
+
js_to_inject = NewRelic::Agent.browser_timing_header
|
26
|
+
if (js_to_inject != "") && should_instrument?(env, result[0], result[1])
|
27
|
+
response_string = autoinstrument_source(result[2], result[1], js_to_inject)
|
27
28
|
|
28
29
|
env[ALREADY_INSTRUMENTED_KEY] = true
|
29
30
|
if response_string
|
@@ -40,7 +41,8 @@ module NewRelic::Rack
|
|
40
41
|
ALREADY_INSTRUMENTED_KEY = "newrelic.browser_monitoring_already_instrumented"
|
41
42
|
|
42
43
|
def should_instrument?(env, status, headers)
|
43
|
-
|
44
|
+
NewRelic::Agent.config[:'browser_monitoring.auto_instrument'] &&
|
45
|
+
status == 200 &&
|
44
46
|
!env[ALREADY_INSTRUMENTED_KEY] &&
|
45
47
|
is_html?(headers) &&
|
46
48
|
!is_attachment?(headers) &&
|
@@ -64,7 +66,7 @@ module NewRelic::Rack
|
|
64
66
|
CHARSET_RE = /<\s*meta[^>]+charset\s*=[^>]*>/im.freeze
|
65
67
|
X_UA_COMPATIBLE_RE = /<\s*meta[^>]+http-equiv\s*=\s*['"]x-ua-compatible['"][^>]*>/im.freeze
|
66
68
|
|
67
|
-
def autoinstrument_source(response, headers)
|
69
|
+
def autoinstrument_source(response, headers, js_to_inject)
|
68
70
|
source = gather_source(response)
|
69
71
|
close_old_response(response)
|
70
72
|
return nil unless source
|
@@ -86,7 +88,7 @@ module NewRelic::Rack
|
|
86
88
|
|
87
89
|
if insertion_index
|
88
90
|
source = source[0...insertion_index] <<
|
89
|
-
|
91
|
+
js_to_inject <<
|
90
92
|
source[insertion_index..-1]
|
91
93
|
else
|
92
94
|
NewRelic::Agent.logger.debug "Skipping RUM instrumentation. Could not properly determine location to inject script."
|
@@ -6,62 +6,23 @@ require 'new_relic/rack/agent_middleware'
|
|
6
6
|
require 'new_relic/agent/instrumentation/middleware_proxy'
|
7
7
|
|
8
8
|
module NewRelic::Rack
|
9
|
-
# This middleware is used by the agent
|
10
|
-
#
|
11
|
-
#
|
12
|
-
#
|
9
|
+
# This middleware is no longer used by the agent by default, but remains here
|
10
|
+
# for API compatibility purposes.
|
11
|
+
#
|
12
|
+
# You should remove any references to it from your config.ru or other rack
|
13
|
+
# middleware configuration files.
|
14
|
+
#
|
15
|
+
# The agent will instead now automatically collect errors for all Rack
|
16
|
+
# applications if automatic Rack middleware instrumentation is enabled (it is
|
17
|
+
# by default), or if you have manually added any New Relic middlewares into
|
18
|
+
# your middleware stack.
|
13
19
|
#
|
14
20
|
# @api public
|
21
|
+
# @deprecated
|
15
22
|
#
|
16
23
|
class ErrorCollector < AgentMiddleware
|
17
|
-
def params_from_env(env)
|
18
|
-
if defined?(ActionDispatch::Request)
|
19
|
-
# We use ActionDispatch::Request if it's available so that we can get
|
20
|
-
# the parameter filtering supplied by Rails via filtered_parameters.
|
21
|
-
# The action and controller params are synthesized by
|
22
|
-
# ActionDispatch::Request, so we strip them for consistency with Rack::Request
|
23
|
-
params = ActionDispatch::Request.new(env).filtered_parameters
|
24
|
-
params.delete('action')
|
25
|
-
params.delete('controller')
|
26
|
-
params
|
27
|
-
else
|
28
|
-
Rack::Request.new(env).params
|
29
|
-
end
|
30
|
-
rescue => e
|
31
|
-
warning = "failed to capture request parameters: %p: %s" % [ e.class, e.message ]
|
32
|
-
NewRelic::Agent.logger.warn(warning)
|
33
|
-
{ 'error' => warning }
|
34
|
-
end
|
35
|
-
|
36
|
-
def strip_query_string(s)
|
37
|
-
s.gsub(/\?.*/, '')
|
38
|
-
end
|
39
|
-
|
40
|
-
def uri_from_env(env)
|
41
|
-
strip_query_string("#{env['SCRIPT_NAME']}#{env['PATH_INFO']}")
|
42
|
-
end
|
43
|
-
|
44
|
-
def referrer_from_env(env)
|
45
|
-
strip_query_string(env['HTTP_REFERER'].to_s)
|
46
|
-
end
|
47
|
-
|
48
24
|
def traced_call(env)
|
49
|
-
|
50
|
-
@app.call(env)
|
51
|
-
rescue Exception => exception
|
52
|
-
NewRelic::Agent.logger.debug "collecting %p: %s" % [ exception.class, exception.message ]
|
53
|
-
if !should_ignore_error?(exception, env)
|
54
|
-
NewRelic::Agent.notice_error(exception,
|
55
|
-
:uri => uri_from_env(env),
|
56
|
-
:referer => referrer_from_env(env),
|
57
|
-
:request_params => params_from_env(env))
|
58
|
-
end
|
59
|
-
raise exception
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
def should_ignore_error?(error, env)
|
64
|
-
NewRelic::Agent.instance.error_collector.error_is_ignored?(error)
|
25
|
+
@app.call(env)
|
65
26
|
end
|
66
27
|
end
|
67
28
|
end
|
@@ -53,10 +53,6 @@ module NewRelic
|
|
53
53
|
[ (@called_segments ? @called_segments.map{|s| s.to_array} : []) ]
|
54
54
|
end
|
55
55
|
|
56
|
-
def to_json
|
57
|
-
JSON.dump(self.to_array)
|
58
|
-
end
|
59
|
-
|
60
56
|
def path_string
|
61
57
|
"#{metric_name}[#{called_segments.collect {|segment| segment.path_string }.join('')}]"
|
62
58
|
end
|
data/lib/new_relic/version.rb
CHANGED
data/newrelic_rpm.gemspec
CHANGED
@@ -8,8 +8,9 @@ require 'new_relic/latest_changes'
|
|
8
8
|
Gem::Specification.new do |s|
|
9
9
|
s.name = "newrelic_rpm"
|
10
10
|
s.version = NewRelic::VERSION::STRING
|
11
|
+
s.required_ruby_version = '>= 1.8.7'
|
11
12
|
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
12
|
-
s.authors = [ "Jason Clark", "
|
13
|
+
s.authors = [ "Jason Clark", "Tim Krajcar", "Chris Pine", "Jonan Scheffler", "Ben Weintraub" ]
|
13
14
|
s.date = Time.now.strftime('%Y-%m-%d')
|
14
15
|
s.licenses = ['New Relic', 'MIT', 'Ruby']
|
15
16
|
s.description = <<-EOS
|
@@ -55,7 +56,7 @@ EOS
|
|
55
56
|
if RUBY_PLATFORM == 'java'
|
56
57
|
s.add_development_dependency 'activerecord-jdbcsqlite3-adapter'
|
57
58
|
else
|
58
|
-
s.add_development_dependency 'sqlite3'
|
59
|
+
s.add_development_dependency 'sqlite3'
|
59
60
|
end
|
60
61
|
|
61
62
|
if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
|
data/test/agent_helper.rb
CHANGED
@@ -287,7 +287,7 @@ end
|
|
287
287
|
# Convenience wrapper around in_transaction that sets the category so that it
|
288
288
|
# looks like we are in a web transaction
|
289
289
|
def in_web_transaction(name='dummy')
|
290
|
-
in_transaction(name, :category => :controller) do
|
290
|
+
in_transaction(name, :category => :controller, :request => stub()) do
|
291
291
|
yield
|
292
292
|
end
|
293
293
|
end
|
data/test/config/test.cert.crt
CHANGED
@@ -1,14 +1,18 @@
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
2
|
+
MIIC4TCCAkqgAwIBAgIJAOIPeejXAamDMA0GCSqGSIb3DQEBBQUAMFUxCzAJBgNV
|
3
|
+
BAYTAlVTMQswCQYDVQQIEwJPUjERMA8GA1UEBxMIUG9ydGxhbmQxEjAQBgNVBAoT
|
4
|
+
CU5ldyBSZWxpYzESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTE0MTAxNzE2MzYyOVoX
|
5
|
+
DTI0MTAxNDE2MzYyOVowVTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk9SMREwDwYD
|
6
|
+
VQQHEwhQb3J0bGFuZDESMBAGA1UEChMJTmV3IFJlbGljMRIwEAYDVQQDEwlsb2Nh
|
7
|
+
bGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANLOzYXpWdEXCa1+uvB5
|
8
|
+
KDDHD0mn+FbDhjQnR9oT3Hf4UBNMCHjdL4FP1I5FYH8W1qBHHNJNjTr29BtcUMGR
|
9
|
+
0YzLJXplGS48JmcdvigCGVTqoTl52H9AwaDwKGsQxwTtws2E6IydnQlRYeyMA1tF
|
10
|
+
oFUbDGYoRCWTmOmJwf5gPPpTAgMBAAGjgbgwgbUwHQYDVR0OBBYEFAJsqdk2gCV3
|
11
|
+
pUm6II55XfIT6Rp1MIGFBgNVHSMEfjB8gBQCbKnZNoAld6VJuiCOeV3yE+kadaFZ
|
12
|
+
pFcwVTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk9SMREwDwYDVQQHEwhQb3J0bGFu
|
13
|
+
ZDESMBAGA1UEChMJTmV3IFJlbGljMRIwEAYDVQQDEwlsb2NhbGhvc3SCCQDiD3no
|
14
|
+
1wGpgzAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBALuLxN2r5zKenhyq
|
15
|
+
vqzox7ru9Rz4BOmJ0u86u/d+l/umMCkZUM3eOu6ey+0k1RkSEyOXb3jfEnRcK3KB
|
16
|
+
5XJN4ZPmmyyNSCyHa/E0/7VrDHD5V+DwOGqFr6qalBFj5t+SRha3UgRE3AJa9hKs
|
17
|
+
ombbF12X44MsW+Ksd9vC69x8DHXi
|
14
18
|
-----END CERTIFICATE-----
|
data/test/config/test.cert.key
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
-----BEGIN RSA PRIVATE KEY-----
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
2
|
+
MIICXQIBAAKBgQDSzs2F6VnRFwmtfrrweSgwxw9Jp/hWw4Y0J0faE9x3+FATTAh4
|
3
|
+
3S+BT9SORWB/FtagRxzSTY069vQbXFDBkdGMyyV6ZRkuPCZnHb4oAhlU6qE5edh/
|
4
|
+
QMGg8ChrEMcE7cLNhOiMnZ0JUWHsjANbRaBVGwxmKEQlk5jpicH+YDz6UwIDAQAB
|
5
|
+
AoGAQk3jXLwhkN9DHvueRqaE2pqxl0QqmveSjXLRaakXjfBfF0Kx43oGSBDY1QrD
|
6
|
+
KBYB2ZWkXg0gX6xu6PAnQkrf8msNkcuNEXwYV13NE3L/orhhANEjdps9OV3G0uov
|
7
|
+
k3/nugo1eonY38aMx9swFLQGh/hr4Lpk+6TlR59jlPHYo0kCQQD8Oj3s4psAz80p
|
8
|
+
cUOoZCPN7m+IhWM20LviAlpTKECgYdqUt/f/Alyhdr8N2axrJ2Xe58RllFusiCyw
|
9
|
+
m+FqZwmtAkEA1fX36c1e0fMqlpdEsuPa1bAg8D2dY9jE07nI8cAhC0Fa1tw7Qh/m
|
10
|
+
zfEVktRTgf561DhKM2InpTTfHglVVryT/wJAc3tfGvRtr6N09cKMDa87zW+b1U/t
|
11
|
+
Kw3K2CHnpSdK36Ot5mWMwE8ehjbOJtNA5Ba3x6UqALA6gPYgMARO4t6mSQJBAKmH
|
12
|
+
HaqTvbiOekUdkCJJ5b+AsWiI+Wb+f13fC7d46vW3D9nEX/ORwVeV2Okg8RXD4+C4
|
13
|
+
xRoXgKAm104+SO7TtlMCQQC9St4s8Z76CeUZv/AN5200pjMQBdKpStViQ13rGE2c
|
14
|
+
fkTLYOSU8AuUyfzaDY+J7tyRCtagVpdnQh98uINoLXHn
|
15
15
|
-----END RSA PRIVATE KEY-----
|
@@ -14,6 +14,9 @@ module Environments
|
|
14
14
|
"1.9" => ["rails21", "rails22"],
|
15
15
|
"2" => ["rails21", "rails22", "rails23"],
|
16
16
|
|
17
|
+
# https://github.com/rails/rails/issues/17017
|
18
|
+
"2.2" => ["rails30", "rails31", "rails32"],
|
19
|
+
|
17
20
|
"1.8.7" => ["rails40", "rails41", "rails42"],
|
18
21
|
"1.9.2" => ["rails40", "rails41", "rails42"],
|
19
22
|
"ree" => ["rails40", "rails41", "rails42"],
|
@@ -11,8 +11,8 @@ gem 'rack-test'
|
|
11
11
|
gem 'newrelic_rpm', :path => '../../..'
|
12
12
|
|
13
13
|
if (RUBY_PLATFORM == 'java')
|
14
|
-
gem "activerecord-jdbcmysql-adapter"
|
15
|
-
gem "activerecord-jdbcsqlite3-adapter"
|
14
|
+
gem "activerecord-jdbcmysql-adapter"
|
15
|
+
gem "activerecord-jdbcsqlite3-adapter"
|
16
16
|
gem "jruby-openssl"
|
17
17
|
else
|
18
18
|
gem "mysql", "~>2.9.1"
|
@@ -11,8 +11,8 @@ gem 'rack-test'
|
|
11
11
|
gem 'newrelic_rpm', :path => '../../..'
|
12
12
|
|
13
13
|
if (RUBY_PLATFORM == 'java')
|
14
|
-
gem "activerecord-jdbcmysql-adapter"
|
15
|
-
gem "activerecord-jdbcsqlite3-adapter"
|
14
|
+
gem "activerecord-jdbcmysql-adapter"
|
15
|
+
gem "activerecord-jdbcsqlite3-adapter"
|
16
16
|
gem "jruby-openssl"
|
17
17
|
else
|
18
18
|
gem "mysql", "~>2.9.1"
|
@@ -11,8 +11,8 @@ gem 'rack-test'
|
|
11
11
|
gem "newrelic_rpm", :path => "../../.."
|
12
12
|
|
13
13
|
platforms :jruby do
|
14
|
-
gem "activerecord-jdbcmysql-adapter"
|
15
|
-
gem "activerecord-jdbcsqlite3-adapter"
|
14
|
+
gem "activerecord-jdbcmysql-adapter"
|
15
|
+
gem "activerecord-jdbcsqlite3-adapter"
|
16
16
|
gem "jruby-openssl"
|
17
17
|
end
|
18
18
|
|
@@ -2,7 +2,7 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
gem 'rake'
|
4
4
|
|
5
|
-
gem 'rails', '~>4.0.
|
5
|
+
gem 'rails', '~>4.0.10'
|
6
6
|
|
7
7
|
# Do not automatically require minitest, since this will break with rbx-2.2.5.
|
8
8
|
# rbx-2.2.5 helpfully bundles minitest-5.3.0.
|
@@ -25,9 +25,7 @@ end
|
|
25
25
|
|
26
26
|
platforms :ruby do
|
27
27
|
gem "mysql"
|
28
|
-
|
29
|
-
# https://github.com/sparklemotion/sqlite3-ruby/issues/122
|
30
|
-
gem "sqlite3", '1.3.8'
|
28
|
+
gem "sqlite3"
|
31
29
|
end
|
32
30
|
|
33
31
|
platforms :rbx do
|
@@ -2,7 +2,7 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
gem 'rake'
|
4
4
|
|
5
|
-
gem 'rails', '~>4.1.
|
5
|
+
gem 'rails', '~>4.1.6'
|
6
6
|
|
7
7
|
gem 'minitest', '5.2.3'
|
8
8
|
gem 'mocha', :require => false
|
@@ -17,9 +17,7 @@ end
|
|
17
17
|
|
18
18
|
platforms :ruby do
|
19
19
|
gem "mysql"
|
20
|
-
|
21
|
-
# https://github.com/sparklemotion/sqlite3-ruby/issues/122
|
22
|
-
gem "sqlite3", '1.3.8'
|
20
|
+
gem "sqlite3"
|
23
21
|
end
|
24
22
|
|
25
23
|
platforms :rbx do
|
@@ -2,7 +2,7 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
gem 'rake'
|
4
4
|
|
5
|
-
gem 'rails', '~>4.2.0.
|
5
|
+
gem 'rails', '~>4.2.0.beta2'
|
6
6
|
|
7
7
|
gem 'minitest', '5.2.3'
|
8
8
|
gem 'mocha', :require => false
|
@@ -17,9 +17,7 @@ end
|
|
17
17
|
|
18
18
|
platforms :ruby do
|
19
19
|
gem "mysql"
|
20
|
-
|
21
|
-
# https://github.com/sparklemotion/sqlite3-ruby/issues/122
|
22
|
-
gem "sqlite3", '1.3.8'
|
20
|
+
gem "sqlite3"
|
23
21
|
end
|
24
22
|
|
25
23
|
platforms :rbx do
|