ree_lib 1.3.5 → 1.3.6
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/.ruby-version +1 -1
- data/Gemfile.lock +53 -58
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/functions/build_connection.rb +1 -2
- data/lib/ree_lib/packages/ree_json/package/ree_json/functions/from_json.rb +10 -12
- data/lib/ree_lib/packages/ree_json/package/ree_json/functions/to_json.rb +6 -30
- data/lib/ree_lib/packages/ree_json/package/ree_json.rb +1 -1
- data/lib/ree_lib/packages/ree_json/spec/ree_json/functions/from_json_spec.rb +2 -11
- data/lib/ree_lib/packages/ree_json/spec/ree_json/functions/to_json_spec.rb +1 -7
- data/lib/ree_lib/packages/ree_logger/package/ree_logger/beans/logger.rb +4 -18
- data/lib/ree_lib/packages/ree_logger/package/ree_logger/config.rb +0 -10
- data/lib/ree_lib/packages/ree_logger/spec/ree_logger/beans/logger_spec.rb +0 -16
- data/lib/ree_lib/packages/ree_logger/spec/ree_logger/multi_logger_spec.rb +1 -24
- data/lib/ree_lib/packages/ree_logger/spec/spec_helper.rb +1 -5
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb +1 -3
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_strategy.rb +9 -7
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/benchmarks/mapper_benchmark_spec.rb +2 -2
- data/lib/ree_lib/packages/ree_migrator/spec/spec_helper.rb +1 -2
- data/lib/ree_lib/version.rb +1 -1
- metadata +56 -87
- data/lib/ree_lib/packages/ree_json/package/ree_json/constants.rb +0 -31
- data/lib/ree_lib/packages/ree_logger/package/ree_logger/appenders/rollbar_appender.rb +0 -79
- data/lib/ree_lib/packages/ree_logger/spec/ree_logger/appenders/rollbar_appender_spec.rb +0 -33
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 51394aa942aea366320eac555b2e11af83a26f66bc843bcb92ab5002db7de4c5
|
|
4
|
+
data.tar.gz: 50d25f85c91e72bf5209fdb93b666aa3391ba37daa573cd27bdb3625de5e4f69
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dd3eb4e01579306109a70f90182e184144dca99c8dd93d2e231387d10dd7d79c4e9959f8c2f0dd1852793857f5f4abca2d4dedef85929583aaa42af5f0467c4a
|
|
7
|
+
data.tar.gz: 3fb94861b0d7898708f0b18472e701d095104a9326bc7be8bd1e2fd20245943f37fac4c497a7380ac3016e64a5d88c532e4b4d3060f69d90c7f4ae9e216bffbd
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
4.0.1
|
data/Gemfile.lock
CHANGED
|
@@ -1,102 +1,98 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: ../ree
|
|
3
3
|
specs:
|
|
4
|
-
ree (1.
|
|
4
|
+
ree (1.3.0)
|
|
5
5
|
base64
|
|
6
|
-
commander
|
|
7
|
-
logger
|
|
6
|
+
commander
|
|
7
|
+
logger
|
|
8
8
|
|
|
9
9
|
PATH
|
|
10
10
|
remote: .
|
|
11
11
|
specs:
|
|
12
12
|
ree_lib (1.3.5)
|
|
13
|
-
bigdecimal
|
|
14
|
-
binding_of_caller
|
|
15
|
-
i18n
|
|
16
|
-
loofah
|
|
17
|
-
|
|
18
|
-
rainbow (~> 3.1.1)
|
|
13
|
+
bigdecimal
|
|
14
|
+
binding_of_caller
|
|
15
|
+
i18n
|
|
16
|
+
loofah
|
|
17
|
+
rainbow
|
|
19
18
|
ree
|
|
20
|
-
sequel
|
|
21
|
-
tzinfo
|
|
19
|
+
sequel
|
|
20
|
+
tzinfo
|
|
22
21
|
|
|
23
22
|
GEM
|
|
24
23
|
remote: https://rubygems.org/
|
|
25
24
|
specs:
|
|
26
|
-
addressable (2.8.
|
|
27
|
-
public_suffix (>= 2.0.2, <
|
|
25
|
+
addressable (2.8.8)
|
|
26
|
+
public_suffix (>= 2.0.2, < 8.0)
|
|
28
27
|
base64 (0.3.0)
|
|
29
|
-
bigdecimal (
|
|
30
|
-
binding_of_caller (
|
|
28
|
+
bigdecimal (4.0.1)
|
|
29
|
+
binding_of_caller (2.0.0)
|
|
31
30
|
debug_inspector (>= 1.2.0)
|
|
32
|
-
bootsnap (1.
|
|
31
|
+
bootsnap (1.23.0)
|
|
33
32
|
msgpack (~> 1.2)
|
|
34
33
|
commander (5.0.0)
|
|
35
34
|
highline (~> 3.0.0)
|
|
36
|
-
concurrent-ruby (1.3.
|
|
37
|
-
crack (1.0.
|
|
35
|
+
concurrent-ruby (1.3.6)
|
|
36
|
+
crack (1.0.1)
|
|
38
37
|
bigdecimal
|
|
39
38
|
rexml
|
|
40
39
|
crass (1.0.6)
|
|
41
40
|
debug_inspector (1.2.0)
|
|
42
|
-
diff-lcs (1.
|
|
43
|
-
faker (3.
|
|
41
|
+
diff-lcs (1.6.2)
|
|
42
|
+
faker (3.6.0)
|
|
44
43
|
i18n (>= 1.8.11, < 2)
|
|
45
|
-
hashdiff (1.
|
|
44
|
+
hashdiff (1.2.1)
|
|
46
45
|
highline (3.0.1)
|
|
47
|
-
i18n (1.14.
|
|
46
|
+
i18n (1.14.8)
|
|
48
47
|
concurrent-ruby (~> 1.0)
|
|
49
|
-
logger (1.
|
|
50
|
-
loofah (2.
|
|
48
|
+
logger (1.7.0)
|
|
49
|
+
loofah (2.25.0)
|
|
51
50
|
crass (~> 1.0.2)
|
|
52
51
|
nokogiri (>= 1.12.0)
|
|
53
|
-
msgpack (1.
|
|
54
|
-
nokogiri (1.
|
|
52
|
+
msgpack (1.8.0)
|
|
53
|
+
nokogiri (1.19.1-x86_64-darwin)
|
|
55
54
|
racc (~> 1.4)
|
|
56
|
-
nokogiri (1.
|
|
55
|
+
nokogiri (1.19.1-x86_64-linux-gnu)
|
|
57
56
|
racc (~> 1.4)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
pg (1.5.9)
|
|
63
|
-
public_suffix (6.0.1)
|
|
57
|
+
ostruct (0.6.3)
|
|
58
|
+
pg (1.6.3-x86_64-darwin)
|
|
59
|
+
pg (1.6.3-x86_64-linux)
|
|
60
|
+
public_suffix (7.0.2)
|
|
64
61
|
racc (1.8.1)
|
|
65
|
-
rack (3.
|
|
66
|
-
rack-test (2.
|
|
62
|
+
rack (3.2.5)
|
|
63
|
+
rack-test (2.2.0)
|
|
67
64
|
rack (>= 1.3)
|
|
68
65
|
rainbow (3.1.1)
|
|
69
|
-
rake (13.
|
|
70
|
-
rexml (3.
|
|
71
|
-
|
|
72
|
-
roda (3.88.0)
|
|
66
|
+
rake (13.3.1)
|
|
67
|
+
rexml (3.4.4)
|
|
68
|
+
roda (3.101.0)
|
|
73
69
|
rack
|
|
74
|
-
|
|
75
|
-
rspec (3.13.0)
|
|
70
|
+
rspec (3.13.2)
|
|
76
71
|
rspec-core (~> 3.13.0)
|
|
77
72
|
rspec-expectations (~> 3.13.0)
|
|
78
73
|
rspec-mocks (~> 3.13.0)
|
|
79
|
-
rspec-core (3.13.
|
|
74
|
+
rspec-core (3.13.6)
|
|
80
75
|
rspec-support (~> 3.13.0)
|
|
81
|
-
rspec-expectations (3.13.
|
|
76
|
+
rspec-expectations (3.13.5)
|
|
82
77
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
83
78
|
rspec-support (~> 3.13.0)
|
|
84
|
-
rspec-mocks (3.13.
|
|
79
|
+
rspec-mocks (3.13.7)
|
|
85
80
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
86
81
|
rspec-support (~> 3.13.0)
|
|
87
|
-
rspec-support (3.13.
|
|
88
|
-
ruby-prof (
|
|
89
|
-
|
|
82
|
+
rspec-support (3.13.7)
|
|
83
|
+
ruby-prof (2.0.2)
|
|
84
|
+
base64
|
|
85
|
+
ostruct
|
|
86
|
+
sequel (5.101.0)
|
|
90
87
|
bigdecimal
|
|
91
|
-
sqlite3 (2.
|
|
92
|
-
sqlite3 (2.
|
|
93
|
-
strscan (3.1.0)
|
|
88
|
+
sqlite3 (2.9.0-x86_64-darwin)
|
|
89
|
+
sqlite3 (2.9.0-x86_64-linux-gnu)
|
|
94
90
|
timecop (0.9.10)
|
|
95
91
|
tzinfo (2.0.6)
|
|
96
92
|
concurrent-ruby (~> 1.0)
|
|
97
93
|
warden (1.2.9)
|
|
98
94
|
rack (>= 2.0.9)
|
|
99
|
-
webmock (3.
|
|
95
|
+
webmock (3.26.1)
|
|
100
96
|
addressable (>= 2.8.0)
|
|
101
97
|
crack (>= 0.3.2)
|
|
102
98
|
hashdiff (>= 0.4.0, < 2.0.0)
|
|
@@ -110,19 +106,18 @@ PLATFORMS
|
|
|
110
106
|
|
|
111
107
|
DEPENDENCIES
|
|
112
108
|
bootsnap
|
|
113
|
-
faker
|
|
114
|
-
pg
|
|
109
|
+
faker
|
|
110
|
+
pg
|
|
115
111
|
rack-test
|
|
116
112
|
rake (~> 13.0)
|
|
117
113
|
ree!
|
|
118
114
|
ree_lib!
|
|
119
|
-
roda
|
|
120
|
-
rollbar (~> 3.6.0)
|
|
115
|
+
roda
|
|
121
116
|
rspec
|
|
122
117
|
ruby-prof
|
|
123
|
-
sqlite3
|
|
124
|
-
timecop
|
|
125
|
-
warden
|
|
118
|
+
sqlite3
|
|
119
|
+
timecop
|
|
120
|
+
warden
|
|
126
121
|
webmock
|
|
127
122
|
|
|
128
123
|
BUNDLED WITH
|
|
@@ -9,8 +9,7 @@ class ReeDao::BuildConnection
|
|
|
9
9
|
|
|
10
10
|
fn :build_connection do
|
|
11
11
|
link :connections
|
|
12
|
-
|
|
13
|
-
link 'ree_dao/build_methods', -> { BuildMethods }
|
|
12
|
+
import -> { DatasetExtensions & BuildMethods }
|
|
14
13
|
end
|
|
15
14
|
|
|
16
15
|
TIMEZONES = [:utc, :local].freeze
|
|
@@ -1,28 +1,26 @@
|
|
|
1
1
|
class ReeJson::FromJson
|
|
2
2
|
include Ree::FnDSL
|
|
3
3
|
|
|
4
|
-
fn :from_json
|
|
5
|
-
link 'ree_json/constants', -> {
|
|
6
|
-
DEFAULT_OPTIONS & MODES & ESCAPE_MODES & TIME_FORMATS
|
|
7
|
-
}
|
|
8
|
-
end
|
|
4
|
+
fn :from_json
|
|
9
5
|
|
|
10
6
|
ParseJsonError = Class.new(StandardError)
|
|
11
7
|
|
|
12
8
|
contract(
|
|
13
|
-
|
|
9
|
+
String,
|
|
14
10
|
Ksplat[
|
|
15
|
-
mode?: Or[*MODES],
|
|
16
11
|
symbol_keys?: Bool,
|
|
17
12
|
RestKeys => Any
|
|
18
13
|
] => Any
|
|
19
14
|
).throws(ParseJsonError)
|
|
20
15
|
def call(object, **opts)
|
|
21
|
-
options =
|
|
22
|
-
|
|
16
|
+
options = {}
|
|
17
|
+
|
|
18
|
+
if opts.delete(:symbol_keys)
|
|
19
|
+
options[:symbolize_names] = true
|
|
20
|
+
end
|
|
23
21
|
|
|
24
|
-
|
|
25
|
-
rescue ArgumentError, EncodingError, TypeError
|
|
22
|
+
JSON.parse(object, **options)
|
|
23
|
+
rescue JSON::ParserError, ArgumentError, EncodingError, TypeError
|
|
26
24
|
raise ParseJsonError.new
|
|
27
25
|
end
|
|
28
|
-
end
|
|
26
|
+
end
|
|
@@ -1,39 +1,15 @@
|
|
|
1
1
|
class ReeJson::ToJson
|
|
2
2
|
include Ree::FnDSL
|
|
3
3
|
|
|
4
|
-
fn :to_json
|
|
5
|
-
link 'ree_json/constants', -> {
|
|
6
|
-
ESCAPE_MODES & DEFAULT_OPTIONS & MODES & TIME_FORMATS
|
|
7
|
-
}
|
|
8
|
-
end
|
|
4
|
+
fn :to_json
|
|
9
5
|
|
|
10
6
|
doc(<<~DOC)
|
|
11
|
-
Dumps arbitrary object to json
|
|
7
|
+
Dumps arbitrary object to json.
|
|
12
8
|
to_json({id: 1}) # => "{\"id\":1}"
|
|
13
|
-
to_json({id: 1}, mode: :object) # => "{\":id\":{\"^o\":\"Object\"}}"
|
|
14
|
-
|
|
15
|
-
List of all available Ksplat options could be found here:
|
|
16
|
-
https://github.com/ohler55/oj/blob/develop/pages/Modes.md
|
|
17
9
|
DOC
|
|
18
10
|
|
|
19
|
-
contract(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
mode?: Or[*MODES],
|
|
23
|
-
escape_mode?: Or[*ESCAPE_MODES],
|
|
24
|
-
float_precision?: Integer,
|
|
25
|
-
time_format?: Or[*TIME_FORMATS],
|
|
26
|
-
use_as_json?: Bool,
|
|
27
|
-
use_raw_json?: Bool,
|
|
28
|
-
use_to_hash?: Bool,
|
|
29
|
-
use_to_json?: Bool,
|
|
30
|
-
RestKeys => Any
|
|
31
|
-
] => String
|
|
32
|
-
).throws(ArgumentError, TypeError)
|
|
33
|
-
def call(object, **opts)
|
|
34
|
-
options = DEFAULT_OPTIONS
|
|
35
|
-
.merge(opts)
|
|
36
|
-
|
|
37
|
-
Oj.dump(object, options)
|
|
11
|
+
contract(Any => String)
|
|
12
|
+
def call(object)
|
|
13
|
+
JSON.generate(object)
|
|
38
14
|
end
|
|
39
|
-
end
|
|
15
|
+
end
|
|
@@ -7,11 +7,6 @@ RSpec.describe :from_json do
|
|
|
7
7
|
expect(from_json("{\"id\":1}", symbol_keys: true)).to eq({id: 1})
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
it {
|
|
11
|
-
result = from_json("{\":id\":{\"^o\":\"Object\"}}", mode: :object)
|
|
12
|
-
expect(result[:id]).to be_a(Object)
|
|
13
|
-
}
|
|
14
|
-
|
|
15
10
|
it {
|
|
16
11
|
expect(from_json("null")).to eq(nil)
|
|
17
12
|
}
|
|
@@ -36,15 +31,11 @@ RSpec.describe :from_json do
|
|
|
36
31
|
expect(from_json("[1,true,\"hello\"]")).to eq([1, true, "hello"])
|
|
37
32
|
}
|
|
38
33
|
|
|
39
|
-
it {
|
|
40
|
-
expect(from_json("{\"^o\":\"Object\"}", mode: :object)).to be_a(Object)
|
|
41
|
-
}
|
|
42
|
-
|
|
43
34
|
it {
|
|
44
35
|
expect{from_json("{213: \"123\"}")}.to raise_error(ReeJson::FromJson::ParseJsonError)
|
|
45
36
|
}
|
|
46
37
|
|
|
47
38
|
it {
|
|
48
|
-
expect { from_json(nil
|
|
39
|
+
expect { from_json(nil) }.to raise_error(Ree::Contracts::ContractError)
|
|
49
40
|
}
|
|
50
|
-
end
|
|
41
|
+
end
|
|
@@ -11,10 +11,9 @@ class ReeLogger::Logger
|
|
|
11
11
|
link :config
|
|
12
12
|
link :not_blank, from: :ree_object
|
|
13
13
|
link :is_blank, from: :ree_object
|
|
14
|
-
link
|
|
15
|
-
link
|
|
16
|
-
link
|
|
17
|
-
link 'ree_logger/appenders/rollbar_appender', -> { RollbarAppender }
|
|
14
|
+
link "ree_logger/rate_limiter", -> { RateLimiter }
|
|
15
|
+
link "ree_logger/appenders/file_appender", -> { FileAppender }
|
|
16
|
+
link "ree_logger/appenders/stdout_appender", -> { StdoutAppender }
|
|
18
17
|
end
|
|
19
18
|
|
|
20
19
|
def build
|
|
@@ -36,22 +35,9 @@ class ReeLogger::Logger
|
|
|
36
35
|
)
|
|
37
36
|
end
|
|
38
37
|
|
|
39
|
-
if config.rollbar.enabled
|
|
40
|
-
opts = {}
|
|
41
|
-
opts[:branch] = config.rollbar.branch if config.rollbar.branch
|
|
42
|
-
opts[:host] = config.rollbar.host if config.rollbar.host
|
|
43
|
-
|
|
44
|
-
appenders << RollbarAppender.new(
|
|
45
|
-
config.levels.rollbar,
|
|
46
|
-
access_token: config.rollbar.access_token,
|
|
47
|
-
environment: config.rollbar.environment,
|
|
48
|
-
**opts
|
|
49
|
-
)
|
|
50
|
-
end
|
|
51
|
-
|
|
52
38
|
build_logger(
|
|
53
39
|
appenders,
|
|
54
|
-
ENV[
|
|
40
|
+
ENV["APP_NAME"],
|
|
55
41
|
RateLimiter.new(
|
|
56
42
|
config.rate_limit.interval,
|
|
57
43
|
config.rate_limit.max_count
|
|
@@ -17,22 +17,12 @@ class ReeLogger::Config
|
|
|
17
17
|
RATE_LIMIT_MAX_COUNT = 600
|
|
18
18
|
|
|
19
19
|
def build
|
|
20
|
-
is_rollbar_enabled = parse_bool_string(ENV['LOG_ROLLBAR_ENABLED'])
|
|
21
|
-
|
|
22
20
|
to_obj({
|
|
23
21
|
file_path: ENV['LOG_FILE_PATH'],
|
|
24
22
|
file_auto_flush: parse_bool_string(ENV['LOG_FILE_AUTO_FLUSH']),
|
|
25
23
|
levels: {
|
|
26
24
|
file: parse_level(ENV['LOG_LEVEL_FILE']),
|
|
27
25
|
stdout: parse_level(ENV['LOG_LEVEL_STDOUT']),
|
|
28
|
-
rollbar: is_rollbar_enabled ? parse_level(ENV['LOG_LEVEL_ROLLBAR']) : nil,
|
|
29
|
-
},
|
|
30
|
-
rollbar: {
|
|
31
|
-
enabled: is_rollbar_enabled,
|
|
32
|
-
access_token: is_rollbar_enabled ? ENV.fetch('LOG_ROLLBAR_ACCESS_TOKEN') : nil,
|
|
33
|
-
environment: is_rollbar_enabled ? ENV.fetch('LOG_ROLLBAR_ENVIRONMENT') : nil,
|
|
34
|
-
branch: ENV['LOG_ROLLBAR_BRANCH'],
|
|
35
|
-
host: ENV['LOG_ROLLBAR_HOST']
|
|
36
26
|
},
|
|
37
27
|
rate_limit: {
|
|
38
28
|
interval: get_int_value('LOG_RATE_LIMIT_INTERVAL', RATE_LIMIT_INTERVAL),
|
|
@@ -14,10 +14,6 @@ RSpec.describe :logger do
|
|
|
14
14
|
end
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
before(:each) do
|
|
18
|
-
allow(Rollbar).to receive(:log)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
17
|
let(:log_file_path) { ENV['LOG_FILE_PATH'] }
|
|
22
18
|
|
|
23
19
|
let(:exception) {
|
|
@@ -26,25 +22,16 @@ RSpec.describe :logger do
|
|
|
26
22
|
|
|
27
23
|
it {
|
|
28
24
|
expect { logger.info('hello world') }.to output(/hello world/).to_stdout
|
|
29
|
-
expect(Rollbar).to have_received(:log)
|
|
30
25
|
expect(File.read(log_file_path)).to match("hello world")
|
|
31
26
|
}
|
|
32
27
|
|
|
33
|
-
it {
|
|
34
|
-
expect { logger.info('hello world', { rollbar_scope: {fingerprint: 'test', test: 'test'}, param: 1, another_param: { name: 'John'} }) }.to output(/John/).to_stdout
|
|
35
|
-
expect(Rollbar).to have_received(:log)
|
|
36
|
-
expect(File.read(log_file_path)).to match("John")
|
|
37
|
-
}
|
|
38
|
-
|
|
39
28
|
it {
|
|
40
29
|
expect { logger.debug('debug message') }.to_not output(/debug message/).to_stdout
|
|
41
|
-
expect(Rollbar).not_to have_received(:log)
|
|
42
30
|
expect(File.read(log_file_path)).to_not match("debug")
|
|
43
31
|
}
|
|
44
32
|
|
|
45
33
|
it {
|
|
46
34
|
expect { logger.warn('warning message') }.to output(/warning message/).to_stdout
|
|
47
|
-
expect(Rollbar).to have_received(:log)
|
|
48
35
|
expect(File.read(log_file_path)).to match("warning message")
|
|
49
36
|
}
|
|
50
37
|
|
|
@@ -54,20 +41,17 @@ RSpec.describe :logger do
|
|
|
54
41
|
}
|
|
55
42
|
expect(output).to match(/some error message/)
|
|
56
43
|
expect(output).to_not match(/method|args/)
|
|
57
|
-
expect(Rollbar).to have_received(:log)
|
|
58
44
|
expect(File.read(log_file_path)).to match("some error message")
|
|
59
45
|
expect(File.read(log_file_path)).to_not match("PARAMETERS: {:method=>{:name=>:call, :args=>{:block=>{}}}}")
|
|
60
46
|
}
|
|
61
47
|
|
|
62
48
|
it {
|
|
63
49
|
expect { logger.fatal('some fatal message', {}, exception) }.to output(/some fatal message/).to_stdout
|
|
64
|
-
expect(Rollbar).to have_received(:log)
|
|
65
50
|
expect(File.read(log_file_path)).to match("some fatal message")
|
|
66
51
|
}
|
|
67
52
|
|
|
68
53
|
it {
|
|
69
54
|
expect { logger.unknown('unknown message') }.to output(/unknown message/).to_stdout
|
|
70
|
-
expect(Rollbar).to have_received(:log)
|
|
71
55
|
expect(File.read(log_file_path)).to match("unknown message")
|
|
72
56
|
}
|
|
73
57
|
end
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
#frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'rollbar'
|
|
4
3
|
package_require('ree_logger/multi_logger')
|
|
5
4
|
package_require('ree_logger/appenders/stdout_appender')
|
|
6
5
|
package_require('ree_logger/appenders/file_appender')
|
|
7
|
-
package_require('ree_logger/appenders/rollbar_appender')
|
|
8
6
|
|
|
9
7
|
RSpec.describe ReeLogger::MultiLogger do
|
|
10
8
|
link :is_blank, from: :ree_object
|
|
@@ -39,14 +37,6 @@ RSpec.describe ReeLogger::MultiLogger do
|
|
|
39
37
|
)
|
|
40
38
|
}
|
|
41
39
|
|
|
42
|
-
let(:rollbar_appender) {
|
|
43
|
-
ReeLogger::RollbarAppender.new(
|
|
44
|
-
:info,
|
|
45
|
-
access_token: ENV['LOG_ROLLBAR_ACCESS_TOKEN'],
|
|
46
|
-
environment: ENV['LOG_ROLLBAR_ENVIRONMENT']
|
|
47
|
-
)
|
|
48
|
-
}
|
|
49
|
-
|
|
50
40
|
let(:logger) {
|
|
51
41
|
multi_logger.new(
|
|
52
42
|
'SomeCoolApp',
|
|
@@ -56,40 +46,32 @@ RSpec.describe ReeLogger::MultiLogger do
|
|
|
56
46
|
}
|
|
57
47
|
|
|
58
48
|
let(:logger_with_appenders) {
|
|
59
|
-
[file_appender, stdout_appender
|
|
49
|
+
[file_appender, stdout_appender].map { logger.add_appender(_1) }
|
|
60
50
|
|
|
61
51
|
logger
|
|
62
52
|
}
|
|
63
53
|
|
|
64
|
-
before(:each) do
|
|
65
|
-
allow(Rollbar).to receive(:log)
|
|
66
|
-
end
|
|
67
|
-
|
|
68
54
|
it {
|
|
69
55
|
expect { logger.add_appender(stdout_appender) }.to change { logger.appenders }
|
|
70
56
|
}
|
|
71
57
|
|
|
72
58
|
it {
|
|
73
59
|
expect { logger.info('any message') }.to_not output(/any message/).to_stdout
|
|
74
|
-
expect(Rollbar).not_to have_received(:log)
|
|
75
60
|
expect(File.read(log_file_path)).to_not match('any message')
|
|
76
61
|
}
|
|
77
62
|
|
|
78
63
|
it {
|
|
79
64
|
expect { logger_with_appenders.info('hello world') }.to output(/hello world/).to_stdout
|
|
80
|
-
expect(Rollbar).to have_received(:log)
|
|
81
65
|
expect(File.read(log_file_path)).to match("hello world")
|
|
82
66
|
}
|
|
83
67
|
|
|
84
68
|
it {
|
|
85
69
|
expect { logger_with_appenders.info {'block message'} }.to output(/block message/).to_stdout
|
|
86
|
-
expect(Rollbar).to have_received(:log)
|
|
87
70
|
expect(File.read(log_file_path)).to match("block message")
|
|
88
71
|
}
|
|
89
72
|
|
|
90
73
|
it {
|
|
91
74
|
expect { logger_with_appenders.info('hello world', { param: 1, another_param: { name: 'John'}, password: 'password01' }) }.to output(/John/).to_stdout
|
|
92
|
-
expect(Rollbar).to have_received(:log)
|
|
93
75
|
expect(File.read(log_file_path)).to match("John")
|
|
94
76
|
expected = if RUBY_VERSION >= '3.4'
|
|
95
77
|
'password: "FILTERED"'
|
|
@@ -101,13 +83,11 @@ RSpec.describe ReeLogger::MultiLogger do
|
|
|
101
83
|
|
|
102
84
|
it {
|
|
103
85
|
expect { logger_with_appenders.debug('debug message') }.to_not output(/debug message/).to_stdout
|
|
104
|
-
expect(Rollbar).not_to have_received(:log)
|
|
105
86
|
expect(File.read(log_file_path)).to_not match("debug")
|
|
106
87
|
}
|
|
107
88
|
|
|
108
89
|
it {
|
|
109
90
|
expect { logger_with_appenders.warn('warning message') }.to output(/warning message/).to_stdout
|
|
110
|
-
expect(Rollbar).to have_received(:log)
|
|
111
91
|
expect(File.read(log_file_path)).to match("warning message")
|
|
112
92
|
}
|
|
113
93
|
|
|
@@ -118,13 +98,11 @@ RSpec.describe ReeLogger::MultiLogger do
|
|
|
118
98
|
expect(output).to match(/some error message/)
|
|
119
99
|
expect(output).to_not match(/method|args/)
|
|
120
100
|
expect(File.read(log_file_path)).to match("some error message")
|
|
121
|
-
expect(Rollbar).to have_received(:log)
|
|
122
101
|
expect(File.read(log_file_path)).to_not match("PARAMETERS: {:method=>{:name=>:call, :args=>{:block=>{}}}}")
|
|
123
102
|
}
|
|
124
103
|
|
|
125
104
|
it {
|
|
126
105
|
expect { logger_with_appenders.fatal('some fatal message', { email: 'some@mail.com', password: 'password01' }, exception) }.to output(/some fatal message/).to_stdout
|
|
127
|
-
expect(Rollbar).to have_received(:log)
|
|
128
106
|
expect(File.read(log_file_path)).to match("some fatal message")
|
|
129
107
|
expected = if RUBY_VERSION >= '3.4'
|
|
130
108
|
'password: "FILTERED"'
|
|
@@ -136,7 +114,6 @@ RSpec.describe ReeLogger::MultiLogger do
|
|
|
136
114
|
|
|
137
115
|
it {
|
|
138
116
|
expect { logger_with_appenders.unknown('unknown message') }.to output(/unknown message/).to_stdout
|
|
139
|
-
expect(Rollbar).to have_received(:log)
|
|
140
117
|
expect(File.read(log_file_path)).to match("unknown message")
|
|
141
118
|
}
|
|
142
119
|
|
|
@@ -15,9 +15,5 @@ ENV['LOG_FILE_PATH'] = '/tmp/ree_logger.log'
|
|
|
15
15
|
ENV['LOG_FILE_AUTO_FLUSH'] = 'true'
|
|
16
16
|
ENV['LOG_LEVEL_FILE'] = 'info'
|
|
17
17
|
ENV['LOG_LEVEL_STDOUT'] = 'info'
|
|
18
|
-
ENV['LOG_LEVEL_ROLLBAR'] = 'info'
|
|
19
18
|
ENV['LOG_RATE_LIMIT_INTERVAL'] = '60'
|
|
20
|
-
ENV['LOG_RATE_LIMIT_COUNT'] = '600'
|
|
21
|
-
ENV['LOG_ROLLBAR_ACCESS_TOKEN'] = 'SET_YOUR_TOKEN'
|
|
22
|
-
ENV['LOG_ROLLBAR_ENABLED'] = 'true'
|
|
23
|
-
ENV['LOG_ROLLBAR_ENVIRONMENT'] = 'test'
|
|
19
|
+
ENV['LOG_RATE_LIMIT_COUNT'] = '600'
|
|
@@ -4,9 +4,7 @@ class ReeMapper::BuildMapperFactory
|
|
|
4
4
|
include Ree::FnDSL
|
|
5
5
|
|
|
6
6
|
fn :build_mapper_factory do
|
|
7
|
-
|
|
8
|
-
link 'ree_mapper/mapper_factory', -> { MapperFactory }
|
|
9
|
-
link 'ree_mapper/mapper_strategy', -> { MapperStrategy }
|
|
7
|
+
import -> { Mapper & MapperFactory & MapperStrategy}
|
|
10
8
|
end
|
|
11
9
|
|
|
12
10
|
contract(ArrayOf[MapperStrategy] => SubclassOf[MapperFactory])
|
|
@@ -5,15 +5,17 @@ class ReeMapper::BuildMapperStrategy
|
|
|
5
5
|
|
|
6
6
|
fn :build_mapper_strategy
|
|
7
7
|
|
|
8
|
-
contract(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
contract(
|
|
9
|
+
Kwargs[
|
|
10
|
+
method: Symbol,
|
|
11
|
+
dto: Class,
|
|
12
|
+
always_optional: Bool
|
|
13
|
+
] => ReeMapper::MapperStrategy
|
|
14
|
+
)
|
|
13
15
|
def call(method:, dto: Hash, always_optional: false)
|
|
14
16
|
ReeMapper::MapperStrategy.new(
|
|
15
|
-
method:
|
|
16
|
-
dto:
|
|
17
|
+
method: method,
|
|
18
|
+
dto: dto,
|
|
17
19
|
always_optional: always_optional
|
|
18
20
|
)
|
|
19
21
|
end
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
require 'benchmark'
|
|
3
3
|
|
|
4
|
+
package_require "ree_mapper"
|
|
5
|
+
|
|
4
6
|
no_contracts = Ree::Contracts.no_contracts?
|
|
5
7
|
Ree.disable_contracts
|
|
6
8
|
|
|
7
|
-
package_require "ree_mapper"
|
|
8
|
-
|
|
9
9
|
RSpec.xdescribe 'Mapper Benchmark' do
|
|
10
10
|
link :build_mapper_factory, from: :ree_mapper
|
|
11
11
|
link :build_mapper_strategy, from: :ree_mapper
|
data/lib/ree_lib/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ree_lib
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
4
|
+
version: 1.3.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ruslan Gatiyatov
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: ree
|
|
@@ -27,114 +27,100 @@ dependencies:
|
|
|
27
27
|
name: tzinfo
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
29
29
|
requirements:
|
|
30
|
-
- - "
|
|
30
|
+
- - ">="
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version:
|
|
32
|
+
version: '0'
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
|
-
- - "
|
|
37
|
+
- - ">="
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version:
|
|
39
|
+
version: '0'
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
41
|
name: loofah
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
43
43
|
requirements:
|
|
44
|
-
- - "
|
|
45
|
-
- !ruby/object:Gem::Version
|
|
46
|
-
version: 2.24.0
|
|
47
|
-
type: :runtime
|
|
48
|
-
prerelease: false
|
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
-
requirements:
|
|
51
|
-
- - "~>"
|
|
52
|
-
- !ruby/object:Gem::Version
|
|
53
|
-
version: 2.24.0
|
|
54
|
-
- !ruby/object:Gem::Dependency
|
|
55
|
-
name: oj
|
|
56
|
-
requirement: !ruby/object:Gem::Requirement
|
|
57
|
-
requirements:
|
|
58
|
-
- - "~>"
|
|
44
|
+
- - ">="
|
|
59
45
|
- !ruby/object:Gem::Version
|
|
60
|
-
version:
|
|
46
|
+
version: '0'
|
|
61
47
|
type: :runtime
|
|
62
48
|
prerelease: false
|
|
63
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
64
50
|
requirements:
|
|
65
|
-
- - "
|
|
51
|
+
- - ">="
|
|
66
52
|
- !ruby/object:Gem::Version
|
|
67
|
-
version:
|
|
53
|
+
version: '0'
|
|
68
54
|
- !ruby/object:Gem::Dependency
|
|
69
55
|
name: i18n
|
|
70
56
|
requirement: !ruby/object:Gem::Requirement
|
|
71
57
|
requirements:
|
|
72
|
-
- - "
|
|
58
|
+
- - ">="
|
|
73
59
|
- !ruby/object:Gem::Version
|
|
74
|
-
version:
|
|
60
|
+
version: '0'
|
|
75
61
|
type: :runtime
|
|
76
62
|
prerelease: false
|
|
77
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
78
64
|
requirements:
|
|
79
|
-
- - "
|
|
65
|
+
- - ">="
|
|
80
66
|
- !ruby/object:Gem::Version
|
|
81
|
-
version:
|
|
67
|
+
version: '0'
|
|
82
68
|
- !ruby/object:Gem::Dependency
|
|
83
69
|
name: sequel
|
|
84
70
|
requirement: !ruby/object:Gem::Requirement
|
|
85
71
|
requirements:
|
|
86
|
-
- - "
|
|
72
|
+
- - ">="
|
|
87
73
|
- !ruby/object:Gem::Version
|
|
88
|
-
version:
|
|
74
|
+
version: '0'
|
|
89
75
|
type: :runtime
|
|
90
76
|
prerelease: false
|
|
91
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
92
78
|
requirements:
|
|
93
|
-
- - "
|
|
79
|
+
- - ">="
|
|
94
80
|
- !ruby/object:Gem::Version
|
|
95
|
-
version:
|
|
81
|
+
version: '0'
|
|
96
82
|
- !ruby/object:Gem::Dependency
|
|
97
83
|
name: binding_of_caller
|
|
98
84
|
requirement: !ruby/object:Gem::Requirement
|
|
99
85
|
requirements:
|
|
100
|
-
- - "
|
|
86
|
+
- - ">="
|
|
101
87
|
- !ruby/object:Gem::Version
|
|
102
|
-
version:
|
|
88
|
+
version: '0'
|
|
103
89
|
type: :runtime
|
|
104
90
|
prerelease: false
|
|
105
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
106
92
|
requirements:
|
|
107
|
-
- - "
|
|
93
|
+
- - ">="
|
|
108
94
|
- !ruby/object:Gem::Version
|
|
109
|
-
version:
|
|
95
|
+
version: '0'
|
|
110
96
|
- !ruby/object:Gem::Dependency
|
|
111
97
|
name: rainbow
|
|
112
98
|
requirement: !ruby/object:Gem::Requirement
|
|
113
99
|
requirements:
|
|
114
|
-
- - "
|
|
100
|
+
- - ">="
|
|
115
101
|
- !ruby/object:Gem::Version
|
|
116
|
-
version:
|
|
102
|
+
version: '0'
|
|
117
103
|
type: :runtime
|
|
118
104
|
prerelease: false
|
|
119
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
120
106
|
requirements:
|
|
121
|
-
- - "
|
|
107
|
+
- - ">="
|
|
122
108
|
- !ruby/object:Gem::Version
|
|
123
|
-
version:
|
|
109
|
+
version: '0'
|
|
124
110
|
- !ruby/object:Gem::Dependency
|
|
125
111
|
name: bigdecimal
|
|
126
112
|
requirement: !ruby/object:Gem::Requirement
|
|
127
113
|
requirements:
|
|
128
|
-
- - "
|
|
114
|
+
- - ">="
|
|
129
115
|
- !ruby/object:Gem::Version
|
|
130
|
-
version:
|
|
116
|
+
version: '0'
|
|
131
117
|
type: :runtime
|
|
132
118
|
prerelease: false
|
|
133
119
|
version_requirements: !ruby/object:Gem::Requirement
|
|
134
120
|
requirements:
|
|
135
|
-
- - "
|
|
121
|
+
- - ">="
|
|
136
122
|
- !ruby/object:Gem::Version
|
|
137
|
-
version:
|
|
123
|
+
version: '0'
|
|
138
124
|
- !ruby/object:Gem::Dependency
|
|
139
125
|
name: rack-test
|
|
140
126
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -153,100 +139,86 @@ dependencies:
|
|
|
153
139
|
name: roda
|
|
154
140
|
requirement: !ruby/object:Gem::Requirement
|
|
155
141
|
requirements:
|
|
156
|
-
- - "
|
|
142
|
+
- - ">="
|
|
157
143
|
- !ruby/object:Gem::Version
|
|
158
|
-
version:
|
|
144
|
+
version: '0'
|
|
159
145
|
type: :development
|
|
160
146
|
prerelease: false
|
|
161
147
|
version_requirements: !ruby/object:Gem::Requirement
|
|
162
148
|
requirements:
|
|
163
|
-
- - "
|
|
149
|
+
- - ">="
|
|
164
150
|
- !ruby/object:Gem::Version
|
|
165
|
-
version:
|
|
151
|
+
version: '0'
|
|
166
152
|
- !ruby/object:Gem::Dependency
|
|
167
153
|
name: sqlite3
|
|
168
154
|
requirement: !ruby/object:Gem::Requirement
|
|
169
155
|
requirements:
|
|
170
|
-
- - "
|
|
156
|
+
- - ">="
|
|
171
157
|
- !ruby/object:Gem::Version
|
|
172
|
-
version:
|
|
158
|
+
version: '0'
|
|
173
159
|
type: :development
|
|
174
160
|
prerelease: false
|
|
175
161
|
version_requirements: !ruby/object:Gem::Requirement
|
|
176
162
|
requirements:
|
|
177
|
-
- - "
|
|
163
|
+
- - ">="
|
|
178
164
|
- !ruby/object:Gem::Version
|
|
179
|
-
version:
|
|
165
|
+
version: '0'
|
|
180
166
|
- !ruby/object:Gem::Dependency
|
|
181
167
|
name: pg
|
|
182
168
|
requirement: !ruby/object:Gem::Requirement
|
|
183
169
|
requirements:
|
|
184
|
-
- - "
|
|
170
|
+
- - ">="
|
|
185
171
|
- !ruby/object:Gem::Version
|
|
186
|
-
version:
|
|
172
|
+
version: '0'
|
|
187
173
|
type: :development
|
|
188
174
|
prerelease: false
|
|
189
175
|
version_requirements: !ruby/object:Gem::Requirement
|
|
190
176
|
requirements:
|
|
191
|
-
- - "
|
|
177
|
+
- - ">="
|
|
192
178
|
- !ruby/object:Gem::Version
|
|
193
|
-
version:
|
|
179
|
+
version: '0'
|
|
194
180
|
- !ruby/object:Gem::Dependency
|
|
195
181
|
name: warden
|
|
196
182
|
requirement: !ruby/object:Gem::Requirement
|
|
197
183
|
requirements:
|
|
198
|
-
- - "
|
|
184
|
+
- - ">="
|
|
199
185
|
- !ruby/object:Gem::Version
|
|
200
|
-
version:
|
|
186
|
+
version: '0'
|
|
201
187
|
type: :development
|
|
202
188
|
prerelease: false
|
|
203
189
|
version_requirements: !ruby/object:Gem::Requirement
|
|
204
190
|
requirements:
|
|
205
|
-
- - "
|
|
191
|
+
- - ">="
|
|
206
192
|
- !ruby/object:Gem::Version
|
|
207
|
-
version:
|
|
193
|
+
version: '0'
|
|
208
194
|
- !ruby/object:Gem::Dependency
|
|
209
195
|
name: timecop
|
|
210
196
|
requirement: !ruby/object:Gem::Requirement
|
|
211
197
|
requirements:
|
|
212
|
-
- - "
|
|
213
|
-
- !ruby/object:Gem::Version
|
|
214
|
-
version: 0.9.10
|
|
215
|
-
type: :development
|
|
216
|
-
prerelease: false
|
|
217
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
218
|
-
requirements:
|
|
219
|
-
- - "~>"
|
|
220
|
-
- !ruby/object:Gem::Version
|
|
221
|
-
version: 0.9.10
|
|
222
|
-
- !ruby/object:Gem::Dependency
|
|
223
|
-
name: rollbar
|
|
224
|
-
requirement: !ruby/object:Gem::Requirement
|
|
225
|
-
requirements:
|
|
226
|
-
- - "~>"
|
|
198
|
+
- - ">="
|
|
227
199
|
- !ruby/object:Gem::Version
|
|
228
|
-
version:
|
|
200
|
+
version: '0'
|
|
229
201
|
type: :development
|
|
230
202
|
prerelease: false
|
|
231
203
|
version_requirements: !ruby/object:Gem::Requirement
|
|
232
204
|
requirements:
|
|
233
|
-
- - "
|
|
205
|
+
- - ">="
|
|
234
206
|
- !ruby/object:Gem::Version
|
|
235
|
-
version:
|
|
207
|
+
version: '0'
|
|
236
208
|
- !ruby/object:Gem::Dependency
|
|
237
209
|
name: faker
|
|
238
210
|
requirement: !ruby/object:Gem::Requirement
|
|
239
211
|
requirements:
|
|
240
|
-
- - "
|
|
212
|
+
- - ">="
|
|
241
213
|
- !ruby/object:Gem::Version
|
|
242
|
-
version:
|
|
214
|
+
version: '0'
|
|
243
215
|
type: :development
|
|
244
216
|
prerelease: false
|
|
245
217
|
version_requirements: !ruby/object:Gem::Requirement
|
|
246
218
|
requirements:
|
|
247
|
-
- - "
|
|
219
|
+
- - ">="
|
|
248
220
|
- !ruby/object:Gem::Version
|
|
249
|
-
version:
|
|
221
|
+
version: '0'
|
|
250
222
|
description: Ree Lib provides set of packages to extend Ruby Standard Library
|
|
251
223
|
email:
|
|
252
224
|
- ruslan.gatiyatov@gmail.com
|
|
@@ -757,7 +729,6 @@ files:
|
|
|
757
729
|
- lib/ree_lib/packages/ree_json/.rspec
|
|
758
730
|
- lib/ree_lib/packages/ree_json/bin/console
|
|
759
731
|
- lib/ree_lib/packages/ree_json/package/ree_json.rb
|
|
760
|
-
- lib/ree_lib/packages/ree_json/package/ree_json/constants.rb
|
|
761
732
|
- lib/ree_lib/packages/ree_json/package/ree_json/functions/from_json.rb
|
|
762
733
|
- lib/ree_lib/packages/ree_json/package/ree_json/functions/to_json.rb
|
|
763
734
|
- lib/ree_lib/packages/ree_json/spec/ree_json/functions/from_json_spec.rb
|
|
@@ -769,7 +740,6 @@ files:
|
|
|
769
740
|
- lib/ree_lib/packages/ree_logger/package/ree_logger.rb
|
|
770
741
|
- lib/ree_lib/packages/ree_logger/package/ree_logger/appenders/appender.rb
|
|
771
742
|
- lib/ree_lib/packages/ree_logger/package/ree_logger/appenders/file_appender.rb
|
|
772
|
-
- lib/ree_lib/packages/ree_logger/package/ree_logger/appenders/rollbar_appender.rb
|
|
773
743
|
- lib/ree_lib/packages/ree_logger/package/ree_logger/appenders/stdout_appender.rb
|
|
774
744
|
- lib/ree_lib/packages/ree_logger/package/ree_logger/beans/logger.rb
|
|
775
745
|
- lib/ree_lib/packages/ree_logger/package/ree_logger/config.rb
|
|
@@ -782,7 +752,6 @@ files:
|
|
|
782
752
|
- lib/ree_lib/packages/ree_logger/package/ree_logger/rate_limiter.rb
|
|
783
753
|
- lib/ree_lib/packages/ree_logger/spec/ree_logger/appenders/appender_spec.rb
|
|
784
754
|
- lib/ree_lib/packages/ree_logger/spec/ree_logger/appenders/file_appender_spec.rb
|
|
785
|
-
- lib/ree_lib/packages/ree_logger/spec/ree_logger/appenders/rollbar_appender_spec.rb
|
|
786
755
|
- lib/ree_lib/packages/ree_logger/spec/ree_logger/appenders/stdout_appender_spec.rb
|
|
787
756
|
- lib/ree_lib/packages/ree_logger/spec/ree_logger/beans/logger_spec.rb
|
|
788
757
|
- lib/ree_lib/packages/ree_logger/spec/ree_logger/formatters/colorized_formatter_spec.rb
|
|
@@ -1083,14 +1052,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
1083
1052
|
requirements:
|
|
1084
1053
|
- - ">="
|
|
1085
1054
|
- !ruby/object:Gem::Version
|
|
1086
|
-
version: '3.
|
|
1055
|
+
version: '3.4'
|
|
1087
1056
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1088
1057
|
requirements:
|
|
1089
1058
|
- - ">="
|
|
1090
1059
|
- !ruby/object:Gem::Version
|
|
1091
1060
|
version: '0'
|
|
1092
1061
|
requirements: []
|
|
1093
|
-
rubygems_version:
|
|
1062
|
+
rubygems_version: 4.0.3
|
|
1094
1063
|
specification_version: 4
|
|
1095
1064
|
summary: Ruby Standard Library Extensions
|
|
1096
1065
|
test_files: []
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
class ReeJson::Constants
|
|
2
|
-
# see detailed docsumentation for modes
|
|
3
|
-
# https://github.com/ohler55/oj/blob/develop/pages/Modes.md
|
|
4
|
-
|
|
5
|
-
MODES = [
|
|
6
|
-
:strict,
|
|
7
|
-
:null,
|
|
8
|
-
:compat,
|
|
9
|
-
:json,
|
|
10
|
-
:rails,
|
|
11
|
-
:object,
|
|
12
|
-
:custom,
|
|
13
|
-
:wab,
|
|
14
|
-
].freeze
|
|
15
|
-
|
|
16
|
-
ESCAPE_MODES = [
|
|
17
|
-
:newline, # allows unescaped newlines in the output.
|
|
18
|
-
:json, # follows the JSON specification. This is the default mode.
|
|
19
|
-
:xss_safe, # escapes HTML and XML characters such as & and <.
|
|
20
|
-
:ascii, # escapes all non-ascii or characters with the hi-bit set.
|
|
21
|
-
:unicode_xss, # escapes a special unicodes and is xss safe.
|
|
22
|
-
].freeze
|
|
23
|
-
|
|
24
|
-
TIME_FORMATS = [].freeze
|
|
25
|
-
|
|
26
|
-
DEFAULT_OPTIONS = {
|
|
27
|
-
time_format: :xmlschema,
|
|
28
|
-
use_as_json: true,
|
|
29
|
-
mode: :rails,
|
|
30
|
-
}.freeze
|
|
31
|
-
end
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative 'appender'
|
|
4
|
-
require 'digest'
|
|
5
|
-
|
|
6
|
-
class ReeLogger::RollbarAppender < ReeLogger::Appender
|
|
7
|
-
include Ree::LinkDSL
|
|
8
|
-
|
|
9
|
-
link 'ree_logger/log_event', -> { LogEvent }
|
|
10
|
-
|
|
11
|
-
contract(
|
|
12
|
-
Symbol,
|
|
13
|
-
Kwargs[
|
|
14
|
-
access_token: String,
|
|
15
|
-
environment: String,
|
|
16
|
-
],
|
|
17
|
-
Ksplat[
|
|
18
|
-
branch?: Nilor[String],
|
|
19
|
-
host?: Nilor[String],
|
|
20
|
-
] => Any
|
|
21
|
-
)
|
|
22
|
-
def initialize(level, access_token:, environment:, **opts)
|
|
23
|
-
super(level, nil)
|
|
24
|
-
|
|
25
|
-
require 'rollbar'
|
|
26
|
-
|
|
27
|
-
Rollbar.configure do |config|
|
|
28
|
-
config.enabled = true
|
|
29
|
-
config.access_token = access_token
|
|
30
|
-
config.environment = environment
|
|
31
|
-
config.branch = opts[:branch] if opts[:branch]
|
|
32
|
-
config.host = opts[:host] if opts[:host]
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
contract(LogEvent, Nilor[String] => nil)
|
|
37
|
-
def append(event, progname = nil)
|
|
38
|
-
rollbar_level =
|
|
39
|
-
case event.level
|
|
40
|
-
when :fatal
|
|
41
|
-
'critical'
|
|
42
|
-
when :unknown
|
|
43
|
-
'critical'
|
|
44
|
-
else
|
|
45
|
-
event.level.to_s
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
fingerprint = event.message.to_s
|
|
49
|
-
|
|
50
|
-
if event.exception
|
|
51
|
-
fingerprint += event.exception.class.to_s
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
scope = {}
|
|
55
|
-
parameters = event.parameters.dup
|
|
56
|
-
|
|
57
|
-
if parameters.key?(:rollbar_scope) && parameters[:rollbar_scope].is_a?(Hash)
|
|
58
|
-
scope = scope.merge(
|
|
59
|
-
parameters.delete(:rollbar_scope)
|
|
60
|
-
)
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
if !scope[:fingerprint]
|
|
64
|
-
fingerprint = event.message.to_s
|
|
65
|
-
|
|
66
|
-
if event.exception
|
|
67
|
-
fingerprint += event.exception.class.to_s
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
scope[:fingerprint] = Digest::MD5.new.update(fingerprint).to_s
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
Rollbar.scoped(scope) do
|
|
74
|
-
Rollbar.log(rollbar_level, event.message, event.exception, parameters)
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
nil
|
|
78
|
-
end
|
|
79
|
-
end
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
#frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
package_require('ree_logger/appenders/rollbar_appender')
|
|
4
|
-
|
|
5
|
-
RSpec.describe ReeLogger::RollbarAppender do
|
|
6
|
-
let(:rollbar_appender) { described_class }
|
|
7
|
-
|
|
8
|
-
let(:log_event) {
|
|
9
|
-
ReeLogger::LogEvent.new(
|
|
10
|
-
:info,
|
|
11
|
-
"Some message",
|
|
12
|
-
nil,
|
|
13
|
-
{}
|
|
14
|
-
)
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
# comment "before" block to test sending to api
|
|
18
|
-
before do
|
|
19
|
-
allow(Rollbar).to receive(:log)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
it "sends log event to Rollbar" do
|
|
23
|
-
appender = rollbar_appender.new(
|
|
24
|
-
:info,
|
|
25
|
-
access_token: ENV['LOG_ROLLBAR_ACCESS_TOKEN'],
|
|
26
|
-
environment: ENV['LOG_ROLLBAR_ENVIRONMENT']
|
|
27
|
-
)
|
|
28
|
-
|
|
29
|
-
expect(appender).to respond_to(:append)
|
|
30
|
-
expect { appender.append(log_event) }.not_to raise_error
|
|
31
|
-
expect(Rollbar).to have_received(:log)
|
|
32
|
-
end
|
|
33
|
-
end
|