sapience 2.5.4 → 2.6.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/CHANGELOG.md +4 -0
- data/README.md +4 -0
- data/lib/sapience/appender/stream.rb +2 -5
- data/lib/sapience/base.rb +1 -1
- data/lib/sapience/config_loader.rb +1 -4
- data/lib/sapience/configuration.rb +5 -1
- data/lib/sapience/core_ext/thread.rb +0 -2
- data/lib/sapience/extensions/action_controller/notifications.rb +1 -3
- data/lib/sapience/extensions/grape/middleware/logging.rb +3 -3
- data/lib/sapience/log.rb +2 -2
- data/lib/sapience/loggable.rb +1 -1
- data/lib/sapience/logger.rb +2 -3
- data/lib/sapience/metrics/datadog.rb +4 -2
- data/lib/sapience/rails/engine.rb +4 -0
- data/lib/sapience/rails/silencer.rb +30 -0
- data/lib/sapience/rails.rb +1 -0
- data/lib/sapience/sapience.rb +4 -5
- data/lib/sapience/version.rb +1 -1
- data/sapience.gemspec +15 -16
- metadata +40 -39
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a5f9dd9f371b22ec6c89aa5ab0beac69ab71895
|
4
|
+
data.tar.gz: fe5782b862c1ae8c97566e20923f916b50cc6548
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd78b0f6ac4f5c8fbd92420fad1ca86fcf8924f67d1efbffad75b6ed1eda634d1b2bcdfa8796f5fa69e01f117b5a784154050947e73f4320dc5d4e66d043175a
|
7
|
+
data.tar.gz: 65a30edca0fb6441e28349e9d14c1ab9caae09052e8da191a194612e0f7d99a23329c122d5ab228ee16f64111e1bea111a0e1edb46732f2716139ff25a186a40
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -115,6 +115,8 @@ how to configure the library according to your needs.
|
|
115
115
|
|
116
116
|
The sapience configuration can be controlled by either a "sapience.yml" file, or a block of ruby code. Note that if you provide both, the block of ruby code will take precedence.
|
117
117
|
|
118
|
+
For a list of available configuration options look at class `Sapience::Configuration`
|
119
|
+
|
118
120
|
#### Configuration by sapience.yml file
|
119
121
|
|
120
122
|
Add a `config/sapience.yml` file to your application. The config file contains sections for different environments.
|
@@ -163,6 +165,7 @@ staging:
|
|
163
165
|
|
164
166
|
production:
|
165
167
|
log_level: info
|
168
|
+
silent_rails: true # make rails logging less noisy
|
166
169
|
error_handler:
|
167
170
|
sentry:
|
168
171
|
dsn: <%= ENV['SENTRY_DSN'] %>
|
@@ -182,6 +185,7 @@ Sapience.configure(force: true) do |config|
|
|
182
185
|
config.app_name = "My Application"
|
183
186
|
config.default_level = :info
|
184
187
|
config.backtrace_level = :error
|
188
|
+
config.silent_rails = true # make rails logging less noisy
|
185
189
|
config.filter_parameters = %w(password password_confirmation)
|
186
190
|
config.appenders = [
|
187
191
|
{ stream: { io: STDOUT, formatter: :color } },
|
@@ -60,9 +60,7 @@ module Sapience
|
|
60
60
|
# logger = Sapience['test']
|
61
61
|
# logger.info 'Hello World'
|
62
62
|
def initialize(options = {}, &block)
|
63
|
-
unless options[:io] || options[:file_name]
|
64
|
-
fail ArgumentError, "missing mandatory argument :file_name or :io"
|
65
|
-
end
|
63
|
+
fail ArgumentError, "missing mandatory argument :file_name or :io" unless options[:io] || options[:file_name]
|
66
64
|
|
67
65
|
opts = options.dup
|
68
66
|
if (io = opts.delete(:io))
|
@@ -75,7 +73,6 @@ module Sapience
|
|
75
73
|
# Set the log level and formatter if supplied
|
76
74
|
super(opts, &block)
|
77
75
|
end
|
78
|
-
# rubocop:enable AbcSize, CyclomaticComplexity, PerceivedComplexity
|
79
76
|
|
80
77
|
# After forking an active process call #reopen to re-open
|
81
78
|
# open the file handles etc to resources
|
@@ -87,7 +84,7 @@ module Sapience
|
|
87
84
|
return unless @file_name
|
88
85
|
ensure_folder_exist
|
89
86
|
|
90
|
-
@log = open(@file_name, (::File::WRONLY | ::File::APPEND | ::File::CREAT))
|
87
|
+
@log = File.open(@file_name, (::File::WRONLY | ::File::APPEND | ::File::CREAT))
|
91
88
|
# Force all log entries to write immediately without buffering
|
92
89
|
# Allows multiple processes to write to the same log file simultaneously
|
93
90
|
@log.sync = true
|
data/lib/sapience/base.rb
CHANGED
@@ -237,7 +237,7 @@ module Sapience
|
|
237
237
|
message = message.nil? ? result : "#{message} -- #{result}"
|
238
238
|
elsif message.nil? && result.is_a?(Hash)
|
239
239
|
message = result
|
240
|
-
elsif payload && payload.respond_to?(:merge)
|
240
|
+
elsif payload && payload.respond_to?(:merge) # rubocop: disable Style/SafeNavigation
|
241
241
|
payload.merge(result)
|
242
242
|
else
|
243
243
|
payload = result
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
# frozen_string_literal: true
|
3
2
|
|
4
3
|
require "yaml"
|
@@ -62,9 +61,7 @@ module Sapience
|
|
62
61
|
|
63
62
|
hash = yaml_safe_load(yaml_code, absolute_path) || {}
|
64
63
|
|
65
|
-
unless hash.is_a?(Hash)
|
66
|
-
fail(TypeError, "Malformed configuration in #{absolute_path}")
|
67
|
-
end
|
64
|
+
fail(TypeError, "Malformed configuration in #{absolute_path}") unless hash.is_a?(Hash)
|
68
65
|
|
69
66
|
hash
|
70
67
|
end
|
@@ -7,7 +7,8 @@ module Sapience
|
|
7
7
|
class Configuration
|
8
8
|
attr_reader :default_level, :backtrace_level, :backtrace_level_index
|
9
9
|
attr_writer :host
|
10
|
-
attr_accessor :app_name, :ap_options, :appenders, :log_executor, :filter_parameters,
|
10
|
+
attr_accessor :app_name, :ap_options, :appenders, :log_executor, :filter_parameters,
|
11
|
+
:metrics, :error_handler, :silent_rails
|
11
12
|
|
12
13
|
SUPPORTED_EXECUTORS = %i(single_thread_executor immediate_executor).freeze
|
13
14
|
DEFAULT = {
|
@@ -19,6 +20,7 @@ module Sapience
|
|
19
20
|
metrics: { datadog: { url: Sapience::DEFAULT_STATSD_URL } },
|
20
21
|
error_handler: { silent: {} },
|
21
22
|
filter_parameters: %w(password password_confirmation),
|
23
|
+
silent_rails: false,
|
22
24
|
}.freeze
|
23
25
|
|
24
26
|
# Initial default Level for all new instances of Sapience::Logger
|
@@ -37,6 +39,7 @@ module Sapience
|
|
37
39
|
self.filter_parameters = @options[:filter_parameters]
|
38
40
|
self.metrics = @options[:metrics]
|
39
41
|
self.error_handler = @options[:error_handler]
|
42
|
+
self.silent_rails = @options[:silent_rails]
|
40
43
|
end
|
41
44
|
|
42
45
|
# Sets the global default log level
|
@@ -118,4 +121,5 @@ module Sapience
|
|
118
121
|
fail InvalidLogExecutor, "#{log_executor} is unsupported. Use (#{SUPPORTED_EXECUTORS.join(", ")})"
|
119
122
|
end
|
120
123
|
end
|
124
|
+
# rubocop:enable ClassVars
|
121
125
|
end
|
@@ -38,9 +38,7 @@ module Sapience
|
|
38
38
|
metrics.batch do
|
39
39
|
metrics.increment metric_name, tags: tags
|
40
40
|
metrics.timing("#{metric_name}.time", event.duration, tags: tags)
|
41
|
-
if payload[:db_runtime]
|
42
|
-
metrics.timing("#{metric_name}.time.db", payload[:db_runtime].round(10), tags: tags)
|
43
|
-
end
|
41
|
+
metrics.timing("#{metric_name}.time.db", payload[:db_runtime].round(10), tags: tags) if payload[:db_runtime]
|
44
42
|
|
45
43
|
|
46
44
|
|
@@ -29,7 +29,7 @@ module Sapience
|
|
29
29
|
error = catch(:error) do
|
30
30
|
begin
|
31
31
|
@app_response = @app.call(@env)
|
32
|
-
rescue => e
|
32
|
+
rescue StandardError => e
|
33
33
|
after_exception(e)
|
34
34
|
raise e
|
35
35
|
end
|
@@ -55,8 +55,8 @@ module Sapience
|
|
55
55
|
@logger.info(parameters)
|
56
56
|
end
|
57
57
|
|
58
|
-
def after_exception(
|
59
|
-
Sapience.push_tags(
|
58
|
+
def after_exception(exc)
|
59
|
+
Sapience.push_tags(exc.class.name, exc.message)
|
60
60
|
@status = 500
|
61
61
|
after
|
62
62
|
end
|
data/lib/sapience/log.rb
CHANGED
@@ -125,7 +125,7 @@ module Sapience
|
|
125
125
|
# Returns [String, String] the file_name and line_number from the backtrace supplied
|
126
126
|
# in either the backtrace or exception
|
127
127
|
def file_name_and_line(short_name = false) # rubocop:disable CyclomaticComplexity
|
128
|
-
return unless backtrace || (exception && exception.backtrace)
|
128
|
+
return unless backtrace || (exception && exception.backtrace) # rubocop: disable Style/SafeNavigation
|
129
129
|
stack = backtrace || exception.backtrace
|
130
130
|
extract_file_and_line(stack, short_name) if stack && !stack.empty?
|
131
131
|
end
|
@@ -168,7 +168,7 @@ module Sapience
|
|
168
168
|
# Ruby MRI supports micro seconds
|
169
169
|
# DEPRECATED
|
170
170
|
def formatted_time
|
171
|
-
format("#{time.strftime("%Y-%m-%d %H:%M:%S")}.%06d", time.usec)
|
171
|
+
format("#{time.strftime("%Y-%m-%d %H:%M:%S")}.%06d", time.usec) # rubocop: disable Style/FormatStringToken
|
172
172
|
end
|
173
173
|
|
174
174
|
# Returns [Hash] representation of this log entry
|
data/lib/sapience/loggable.rb
CHANGED
data/lib/sapience/logger.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require "concurrent"
|
3
3
|
|
4
|
-
# rubocop:disable ClassVars
|
4
|
+
# rubocop:disable ClassVars, Style/SafeNavigation
|
5
5
|
module Sapience
|
6
6
|
# Logger stores the class name to be used for all log messages so that every
|
7
7
|
# log message written by this instance will include the class name
|
@@ -86,7 +86,6 @@ module Sapience
|
|
86
86
|
|
87
87
|
# Separate appender thread responsible for reading log messages and
|
88
88
|
# calling the appenders in it's thread
|
89
|
-
# rubocop:disable LineLength
|
90
89
|
def self.appender_thread
|
91
90
|
@@appender_thread
|
92
91
|
end
|
@@ -146,10 +145,10 @@ module Sapience
|
|
146
145
|
end
|
147
146
|
end
|
148
147
|
end
|
149
|
-
# rubocop:enable BlockNesting, AssignmentInCondition, PerceivedComplexity, CyclomaticComplexity, AbcSize, LineLength, RescueException
|
150
148
|
|
151
149
|
def flush
|
152
150
|
self.class.flush
|
153
151
|
end
|
154
152
|
end
|
155
153
|
end
|
154
|
+
# rubocop:enable ClassVars, Style/SafeNavigation
|
@@ -28,7 +28,6 @@ module Sapience
|
|
28
28
|
# tags: [String]
|
29
29
|
# Example:
|
30
30
|
# tag1:true
|
31
|
-
# rubocop:disable CyclomaticComplexity, PerceivedComplexity
|
32
31
|
|
33
32
|
def initialize(opts = {})
|
34
33
|
options = opts.dup
|
@@ -39,7 +38,7 @@ module Sapience
|
|
39
38
|
end
|
40
39
|
|
41
40
|
def provider
|
42
|
-
@
|
41
|
+
@provider ||= ::Datadog::Statsd.new(@uri.host, @uri.port, dog_options)
|
43
42
|
end
|
44
43
|
|
45
44
|
def valid?
|
@@ -119,6 +118,8 @@ module Sapience
|
|
119
118
|
# @example Create an Event with a custom aggregation_key
|
120
119
|
# Sapience.metrics.event('article-published', "article #123", {aggregation_key: 'custom_aggregation_key')
|
121
120
|
|
121
|
+
|
122
|
+
# rubocop:disable CyclomaticComplexity, PerceivedComplexity
|
122
123
|
def event(title, text = "", opts = {})
|
123
124
|
return false unless valid?
|
124
125
|
fail ArgumentError "Title must be provided" unless title
|
@@ -135,6 +136,7 @@ module Sapience
|
|
135
136
|
title = "#{namespace_prefix}.#{title}" if namespaced_keys.include?(:title)
|
136
137
|
provider.event(title, text, opts)
|
137
138
|
end
|
139
|
+
# rubocop:enable CyclomaticComplexity, PerceivedComplexity
|
138
140
|
|
139
141
|
def success(module_name, action, opts = {})
|
140
142
|
increment("success", add_tags(module_name, action, opts))
|
@@ -72,6 +72,10 @@ module Sapience
|
|
72
72
|
require "sapience/extensions/active_job/logging" if defined?(ActiveJob)
|
73
73
|
# Replace the Bugsnag logger
|
74
74
|
Bugsnag.configure { |config| config.logger = Sapience[Bugsnag] } if defined?(Bugsnag)
|
75
|
+
|
76
|
+
# Make rails less noisy
|
77
|
+
Silencer.remove_log_subscriptions if Sapience.config.silent_rails
|
78
|
+
|
75
79
|
Sapience::Extensions::ActionController::LogSubscriber.attach_to :action_controller
|
76
80
|
# Sapience::Extensions::ActiveSupport::MailerLogSubscriber.attach_to :action_mailer
|
77
81
|
Sapience::Extensions::ActiveRecord::Notifications.use if defined?(ActiveRecord)
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Sapience
|
2
|
+
module Rails
|
3
|
+
module Silencer
|
4
|
+
|
5
|
+
# remove all rails log subscribers. Copied from project https://github.com/roidrage/lograge
|
6
|
+
def self.remove_log_subscriptions
|
7
|
+
ActiveSupport::LogSubscriber.log_subscribers.each do |subscriber|
|
8
|
+
case subscriber
|
9
|
+
when ActionView::LogSubscriber
|
10
|
+
unsubscribe(:action_view, subscriber)
|
11
|
+
when ActionController::LogSubscriber
|
12
|
+
unsubscribe(:action_controller, subscriber)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.unsubscribe(component, subscriber)
|
18
|
+
events = subscriber.public_methods(false).reject { |method| method.to_s == "call" }
|
19
|
+
events.each do |event|
|
20
|
+
ActiveSupport::Notifications.notifier.listeners_for("#{event}.#{component}").each do |listener|
|
21
|
+
if listener.instance_variable_get("@delegate") == subscriber
|
22
|
+
ActiveSupport::Notifications.unsubscribe listener
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/sapience/rails.rb
CHANGED
data/lib/sapience/sapience.rb
CHANGED
@@ -69,9 +69,7 @@ module Sapience
|
|
69
69
|
end
|
70
70
|
|
71
71
|
def self.default_options(options = {})
|
72
|
-
unless environment =~ /default|rspec/
|
73
|
-
warn "No configuration for environment #{environment}. Using 'default'"
|
74
|
-
end
|
72
|
+
warn "No configuration for environment #{environment}. Using 'default'" unless environment =~ /default|rspec/
|
75
73
|
options[DEFAULT_ENV]
|
76
74
|
end
|
77
75
|
|
@@ -236,7 +234,7 @@ module Sapience
|
|
236
234
|
end
|
237
235
|
|
238
236
|
def self.known_appenders
|
239
|
-
@
|
237
|
+
@known_appenders ||= Sapience::Subscriber.descendants
|
240
238
|
end
|
241
239
|
|
242
240
|
# Examples:
|
@@ -466,7 +464,7 @@ module Sapience
|
|
466
464
|
end
|
467
465
|
|
468
466
|
def self.root
|
469
|
-
@
|
467
|
+
@root ||= Gem::Specification.find_by_name("sapience").gem_dir
|
470
468
|
end
|
471
469
|
|
472
470
|
def self.app_name_builder
|
@@ -475,3 +473,4 @@ module Sapience
|
|
475
473
|
ENV[APP_NAME]
|
476
474
|
end
|
477
475
|
end
|
476
|
+
# rubocop:enable ClassVars
|
data/lib/sapience/version.rb
CHANGED
data/sapience.gemspec
CHANGED
@@ -1,6 +1,5 @@
|
|
1
|
-
# coding: utf-8
|
2
1
|
# frozen_string_literal: true
|
3
|
-
lib = File.expand_path("
|
2
|
+
lib = File.expand_path("lib", __dir__)
|
4
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
4
|
require "sapience/version"
|
6
5
|
|
@@ -27,23 +26,23 @@ Gem::Specification.new do |spec|
|
|
27
26
|
spec.require_paths = ["lib"]
|
28
27
|
|
29
28
|
spec.add_dependency "concurrent-ruby", "~> 1.0"
|
30
|
-
spec.add_development_dependency "bundler", "~> 1.12"
|
31
|
-
spec.add_development_dependency "rake", "~> 10.0"
|
32
|
-
spec.add_development_dependency "rspec", "~> 3.0"
|
33
|
-
spec.add_development_dependency "reevoocop"
|
34
|
-
spec.add_development_dependency "fuubar"
|
35
|
-
spec.add_development_dependency "simplecov"
|
36
|
-
spec.add_development_dependency "simplecov-json"
|
37
|
-
spec.add_development_dependency "rspec-its"
|
38
|
-
spec.add_development_dependency "pry-nav"
|
39
|
-
spec.add_development_dependency "sentry-raven"
|
40
|
-
spec.add_development_dependency "dogstatsd-ruby", "~> 2.0"
|
41
|
-
spec.add_development_dependency "rails", "~> 5.0.0.1"
|
42
|
-
spec.add_development_dependency "grape"
|
43
29
|
spec.add_development_dependency "active_model_serializers", "~> 0.10.0"
|
30
|
+
spec.add_development_dependency "appraisal"
|
31
|
+
spec.add_development_dependency "bundler", "~> 1.12"
|
44
32
|
spec.add_development_dependency "codeclimate-test-reporter"
|
33
|
+
spec.add_development_dependency "dogstatsd-ruby", "~> 2.0"
|
34
|
+
spec.add_development_dependency "fuubar"
|
45
35
|
spec.add_development_dependency "gem-release"
|
36
|
+
spec.add_development_dependency "grape"
|
46
37
|
spec.add_development_dependency "memory_profiler"
|
38
|
+
spec.add_development_dependency "pry-nav"
|
39
|
+
spec.add_development_dependency "rails", "~> 5.0.0.1"
|
40
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
41
|
+
spec.add_development_dependency "reevoocop"
|
42
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
43
|
+
spec.add_development_dependency "rspec-its"
|
47
44
|
spec.add_development_dependency "rspec-prof"
|
48
|
-
spec.add_development_dependency "
|
45
|
+
spec.add_development_dependency "sentry-raven"
|
46
|
+
spec.add_development_dependency "simplecov"
|
47
|
+
spec.add_development_dependency "simplecov-json"
|
49
48
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sapience
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mikael Henriksson
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-10-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: concurrent-ruby
|
@@ -26,49 +26,49 @@ dependencies:
|
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '1.0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
29
|
+
name: active_model_serializers
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 0.10.0
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
41
|
+
version: 0.10.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
43
|
+
name: appraisal
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - "
|
46
|
+
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: '
|
48
|
+
version: '0'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - "
|
53
|
+
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
55
|
+
version: '0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
57
|
+
name: bundler
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
60
|
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
62
|
+
version: '1.12'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
69
|
+
version: '1.12'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
71
|
+
name: codeclimate-test-reporter
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
74
|
- - ">="
|
@@ -82,21 +82,21 @@ dependencies:
|
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
|
-
name:
|
85
|
+
name: dogstatsd-ruby
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- - "
|
88
|
+
- - "~>"
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: '0'
|
90
|
+
version: '2.0'
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- - "
|
95
|
+
- - "~>"
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version: '0'
|
97
|
+
version: '2.0'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
99
|
+
name: fuubar
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
102
|
- - ">="
|
@@ -110,7 +110,7 @@ dependencies:
|
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: '0'
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
|
-
name:
|
113
|
+
name: gem-release
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
116
|
- - ">="
|
@@ -124,7 +124,7 @@ dependencies:
|
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '0'
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
127
|
+
name: grape
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
130
|
- - ">="
|
@@ -138,7 +138,7 @@ dependencies:
|
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '0'
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
|
-
name:
|
141
|
+
name: memory_profiler
|
142
142
|
requirement: !ruby/object:Gem::Requirement
|
143
143
|
requirements:
|
144
144
|
- - ">="
|
@@ -152,7 +152,7 @@ dependencies:
|
|
152
152
|
- !ruby/object:Gem::Version
|
153
153
|
version: '0'
|
154
154
|
- !ruby/object:Gem::Dependency
|
155
|
-
name:
|
155
|
+
name: pry-nav
|
156
156
|
requirement: !ruby/object:Gem::Requirement
|
157
157
|
requirements:
|
158
158
|
- - ">="
|
@@ -166,35 +166,35 @@ dependencies:
|
|
166
166
|
- !ruby/object:Gem::Version
|
167
167
|
version: '0'
|
168
168
|
- !ruby/object:Gem::Dependency
|
169
|
-
name:
|
169
|
+
name: rails
|
170
170
|
requirement: !ruby/object:Gem::Requirement
|
171
171
|
requirements:
|
172
172
|
- - "~>"
|
173
173
|
- !ruby/object:Gem::Version
|
174
|
-
version:
|
174
|
+
version: 5.0.0.1
|
175
175
|
type: :development
|
176
176
|
prerelease: false
|
177
177
|
version_requirements: !ruby/object:Gem::Requirement
|
178
178
|
requirements:
|
179
179
|
- - "~>"
|
180
180
|
- !ruby/object:Gem::Version
|
181
|
-
version:
|
181
|
+
version: 5.0.0.1
|
182
182
|
- !ruby/object:Gem::Dependency
|
183
|
-
name:
|
183
|
+
name: rake
|
184
184
|
requirement: !ruby/object:Gem::Requirement
|
185
185
|
requirements:
|
186
186
|
- - "~>"
|
187
187
|
- !ruby/object:Gem::Version
|
188
|
-
version:
|
188
|
+
version: '10.0'
|
189
189
|
type: :development
|
190
190
|
prerelease: false
|
191
191
|
version_requirements: !ruby/object:Gem::Requirement
|
192
192
|
requirements:
|
193
193
|
- - "~>"
|
194
194
|
- !ruby/object:Gem::Version
|
195
|
-
version:
|
195
|
+
version: '10.0'
|
196
196
|
- !ruby/object:Gem::Dependency
|
197
|
-
name:
|
197
|
+
name: reevoocop
|
198
198
|
requirement: !ruby/object:Gem::Requirement
|
199
199
|
requirements:
|
200
200
|
- - ">="
|
@@ -208,21 +208,21 @@ dependencies:
|
|
208
208
|
- !ruby/object:Gem::Version
|
209
209
|
version: '0'
|
210
210
|
- !ruby/object:Gem::Dependency
|
211
|
-
name:
|
211
|
+
name: rspec
|
212
212
|
requirement: !ruby/object:Gem::Requirement
|
213
213
|
requirements:
|
214
214
|
- - "~>"
|
215
215
|
- !ruby/object:Gem::Version
|
216
|
-
version:
|
216
|
+
version: '3.0'
|
217
217
|
type: :development
|
218
218
|
prerelease: false
|
219
219
|
version_requirements: !ruby/object:Gem::Requirement
|
220
220
|
requirements:
|
221
221
|
- - "~>"
|
222
222
|
- !ruby/object:Gem::Version
|
223
|
-
version:
|
223
|
+
version: '3.0'
|
224
224
|
- !ruby/object:Gem::Dependency
|
225
|
-
name:
|
225
|
+
name: rspec-its
|
226
226
|
requirement: !ruby/object:Gem::Requirement
|
227
227
|
requirements:
|
228
228
|
- - ">="
|
@@ -236,7 +236,7 @@ dependencies:
|
|
236
236
|
- !ruby/object:Gem::Version
|
237
237
|
version: '0'
|
238
238
|
- !ruby/object:Gem::Dependency
|
239
|
-
name:
|
239
|
+
name: rspec-prof
|
240
240
|
requirement: !ruby/object:Gem::Requirement
|
241
241
|
requirements:
|
242
242
|
- - ">="
|
@@ -250,7 +250,7 @@ dependencies:
|
|
250
250
|
- !ruby/object:Gem::Version
|
251
251
|
version: '0'
|
252
252
|
- !ruby/object:Gem::Dependency
|
253
|
-
name:
|
253
|
+
name: sentry-raven
|
254
254
|
requirement: !ruby/object:Gem::Requirement
|
255
255
|
requirements:
|
256
256
|
- - ">="
|
@@ -264,7 +264,7 @@ dependencies:
|
|
264
264
|
- !ruby/object:Gem::Version
|
265
265
|
version: '0'
|
266
266
|
- !ruby/object:Gem::Dependency
|
267
|
-
name:
|
267
|
+
name: simplecov
|
268
268
|
requirement: !ruby/object:Gem::Requirement
|
269
269
|
requirements:
|
270
270
|
- - ">="
|
@@ -278,7 +278,7 @@ dependencies:
|
|
278
278
|
- !ruby/object:Gem::Version
|
279
279
|
version: '0'
|
280
280
|
- !ruby/object:Gem::Dependency
|
281
|
-
name:
|
281
|
+
name: simplecov-json
|
282
282
|
requirement: !ruby/object:Gem::Requirement
|
283
283
|
requirements:
|
284
284
|
- - ">="
|
@@ -374,6 +374,7 @@ files:
|
|
374
374
|
- lib/sapience/rails.rb
|
375
375
|
- lib/sapience/rails/engine.rb
|
376
376
|
- lib/sapience/rails/railtie.rb
|
377
|
+
- lib/sapience/rails/silencer.rb
|
377
378
|
- lib/sapience/sapience.rb
|
378
379
|
- lib/sapience/sneakers.rb
|
379
380
|
- lib/sapience/subscriber.rb
|