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.
Files changed (23) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/Gemfile.lock +53 -58
  4. data/lib/ree_lib/packages/ree_dao/package/ree_dao/functions/build_connection.rb +1 -2
  5. data/lib/ree_lib/packages/ree_json/package/ree_json/functions/from_json.rb +10 -12
  6. data/lib/ree_lib/packages/ree_json/package/ree_json/functions/to_json.rb +6 -30
  7. data/lib/ree_lib/packages/ree_json/package/ree_json.rb +1 -1
  8. data/lib/ree_lib/packages/ree_json/spec/ree_json/functions/from_json_spec.rb +2 -11
  9. data/lib/ree_lib/packages/ree_json/spec/ree_json/functions/to_json_spec.rb +1 -7
  10. data/lib/ree_lib/packages/ree_logger/package/ree_logger/beans/logger.rb +4 -18
  11. data/lib/ree_lib/packages/ree_logger/package/ree_logger/config.rb +0 -10
  12. data/lib/ree_lib/packages/ree_logger/spec/ree_logger/beans/logger_spec.rb +0 -16
  13. data/lib/ree_lib/packages/ree_logger/spec/ree_logger/multi_logger_spec.rb +1 -24
  14. data/lib/ree_lib/packages/ree_logger/spec/spec_helper.rb +1 -5
  15. data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_factory.rb +1 -3
  16. data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_strategy.rb +9 -7
  17. data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/benchmarks/mapper_benchmark_spec.rb +2 -2
  18. data/lib/ree_lib/packages/ree_migrator/spec/spec_helper.rb +1 -2
  19. data/lib/ree_lib/version.rb +1 -1
  20. metadata +56 -87
  21. data/lib/ree_lib/packages/ree_json/package/ree_json/constants.rb +0 -31
  22. data/lib/ree_lib/packages/ree_logger/package/ree_logger/appenders/rollbar_appender.rb +0 -79
  23. 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: 1d2bd58c6bd8e2cb3149a2aee091cb78eaabc26926b85f2ff59bffd1d672d227
4
- data.tar.gz: 0a7436a5fcf432aa79b93eaa28411749807cd104cbd0a3a19848f77338cca889
3
+ metadata.gz: 51394aa942aea366320eac555b2e11af83a26f66bc843bcb92ab5002db7de4c5
4
+ data.tar.gz: 50d25f85c91e72bf5209fdb93b666aa3391ba37daa573cd27bdb3625de5e4f69
5
5
  SHA512:
6
- metadata.gz: bdd2465fc1e0113e515c9bb729938623087da55512c29275f85cf7bd11d7fe9bad9cd2a23c036b47d395b16478616d5c3cd10c3d9e6b5ffc451159ae8d9c6ea6
7
- data.tar.gz: e0b7d0b4191c9bc0c5dea024937685b8fe9b879cb4d974e16c9a854d3aaaca8ebf26f2d6face2b8ff178643bfdba1244c226d73f7b45e2b70446a5ce12ba014c
6
+ metadata.gz: dd3eb4e01579306109a70f90182e184144dca99c8dd93d2e231387d10dd7d79c4e9959f8c2f0dd1852793857f5f4abca2d4dedef85929583aaa42af5f0467c4a
7
+ data.tar.gz: 3fb94861b0d7898708f0b18472e701d095104a9326bc7be8bd1e2fd20245943f37fac4c497a7380ac3016e64a5d88c532e4b4d3060f69d90c7f4ae9e216bffbd
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.4.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.2.7)
4
+ ree (1.3.0)
5
5
  base64
6
- commander (~> 5.0.0)
7
- logger (~> 1.6.5)
6
+ commander
7
+ logger
8
8
 
9
9
  PATH
10
10
  remote: .
11
11
  specs:
12
12
  ree_lib (1.3.5)
13
- bigdecimal (~> 3.1.9)
14
- binding_of_caller (~> 1.0.1)
15
- i18n (~> 1.14.7)
16
- loofah (~> 2.24.0)
17
- oj (~> 3.16.9)
18
- rainbow (~> 3.1.1)
13
+ bigdecimal
14
+ binding_of_caller
15
+ i18n
16
+ loofah
17
+ rainbow
19
18
  ree
20
- sequel (~> 5.88.0)
21
- tzinfo (~> 2.0.6)
19
+ sequel
20
+ tzinfo
22
21
 
23
22
  GEM
24
23
  remote: https://rubygems.org/
25
24
  specs:
26
- addressable (2.8.7)
27
- public_suffix (>= 2.0.2, < 7.0)
25
+ addressable (2.8.8)
26
+ public_suffix (>= 2.0.2, < 8.0)
28
27
  base64 (0.3.0)
29
- bigdecimal (3.1.9)
30
- binding_of_caller (1.0.1)
28
+ bigdecimal (4.0.1)
29
+ binding_of_caller (2.0.0)
31
30
  debug_inspector (>= 1.2.0)
32
- bootsnap (1.18.4)
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.4)
37
- crack (1.0.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.5.1)
43
- faker (3.5.1)
41
+ diff-lcs (1.6.2)
42
+ faker (3.6.0)
44
43
  i18n (>= 1.8.11, < 2)
45
- hashdiff (1.1.1)
44
+ hashdiff (1.2.1)
46
45
  highline (3.0.1)
47
- i18n (1.14.7)
46
+ i18n (1.14.8)
48
47
  concurrent-ruby (~> 1.0)
49
- logger (1.6.6)
50
- loofah (2.24.0)
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.7.2)
54
- nokogiri (1.18.2-x86_64-darwin)
52
+ msgpack (1.8.0)
53
+ nokogiri (1.19.1-x86_64-darwin)
55
54
  racc (~> 1.4)
56
- nokogiri (1.18.2-x86_64-linux-gnu)
55
+ nokogiri (1.19.1-x86_64-linux-gnu)
57
56
  racc (~> 1.4)
58
- oj (3.16.9)
59
- bigdecimal (>= 3.0)
60
- ostruct (>= 0.2)
61
- ostruct (0.6.1)
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.1.7)
66
- rack-test (2.1.0)
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.2.1)
70
- rexml (3.3.6)
71
- strscan
72
- roda (3.88.0)
66
+ rake (13.3.1)
67
+ rexml (3.4.4)
68
+ roda (3.101.0)
73
69
  rack
74
- rollbar (3.6.0)
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.2)
74
+ rspec-core (3.13.6)
80
75
  rspec-support (~> 3.13.0)
81
- rspec-expectations (3.13.3)
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.2)
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.1)
88
- ruby-prof (1.7.0)
89
- sequel (5.88.0)
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.5.0-x86_64-darwin)
92
- sqlite3 (2.5.0-x86_64-linux-gnu)
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.23.1)
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 (~> 3.5.1)
114
- pg (~> 1.5.9)
109
+ faker
110
+ pg
115
111
  rack-test
116
112
  rake (~> 13.0)
117
113
  ree!
118
114
  ree_lib!
119
- roda (~> 3.88.0)
120
- rollbar (~> 3.6.0)
115
+ roda
121
116
  rspec
122
117
  ruby-prof
123
- sqlite3 (~> 2.5.0)
124
- timecop (~> 0.9.10)
125
- warden (~> 1.2.9)
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
- link 'ree_dao/dataset_extensions', -> { DatasetExtensions }
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 do
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
- Any,
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 = DEFAULT_OPTIONS
22
- .merge(opts)
16
+ options = {}
17
+
18
+ if opts.delete(:symbol_keys)
19
+ options[:symbolize_names] = true
20
+ end
23
21
 
24
- Oj.load(object, options)
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 do
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 using specific dump mode.
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
- Any,
21
- Ksplat[
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
@@ -1,4 +1,4 @@
1
- require 'oj'
1
+ require "json"
2
2
 
3
3
  module ReeJson
4
4
  include Ree::PackageDSL
@@ -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, mode: :strict) }.to raise_error(ReeJson::FromJson::ParseJsonError)
39
+ expect { from_json(nil) }.to raise_error(Ree::Contracts::ContractError)
49
40
  }
50
- end
41
+ end
@@ -6,10 +6,4 @@ RSpec.describe :to_json do
6
6
  it {
7
7
  expect(to_json({id: 1})).to eq("{\"id\":1}")
8
8
  }
9
-
10
- it {
11
- expect(
12
- to_json({id: Object.new}, mode: :object)
13
- ).to eq("{\":id\":{\"^o\":\"Object\"}}")
14
- }
15
- end
9
+ 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 'ree_logger/rate_limiter', -> { RateLimiter }
15
- link 'ree_logger/appenders/file_appender', -> { FileAppender }
16
- link 'ree_logger/appenders/stdout_appender', -> { StdoutAppender }
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['APP_NAME'],
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, rollbar_appender].map { logger.add_appender(_1) }
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
- link 'ree_mapper/mapper', -> { Mapper }
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(Kwargs[
9
- method: Symbol,
10
- dto: Class,
11
- always_optional: Bool
12
- ] => ReeMapper::MapperStrategy)
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: method,
16
- dto: 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
@@ -6,5 +6,4 @@ ENV['LOG_FILE_PATH'] =
6
6
  ENV['LOG_LEVEL_FILE'] = ''
7
7
  ENV['LOG_LEVEL_STDOUT'] = ''
8
8
  ENV['LOG_RATE_LIMIT_INTERVAL'] = ''
9
- ENV['LOG_RATE_LIMIT_COUNT'] = ''
10
- ENV['LOG_ROLLBAR_ENABLED'] = 'false'
9
+ ENV['LOG_RATE_LIMIT_COUNT'] = ''
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ReeLib
4
- VERSION = "1.3.5"
4
+ VERSION = "1.3.6"
5
5
  end
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.5
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: 2026-02-09 00:00:00.000000000 Z
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: 2.0.6
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: 2.0.6
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: 3.16.9
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: 3.16.9
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: 1.14.7
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: 1.14.7
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: 5.88.0
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: 5.88.0
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: 1.0.1
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: 1.0.1
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: 3.1.1
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: 3.1.1
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: 3.1.9
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: 3.1.9
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: 3.88.0
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: 3.88.0
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: 2.5.0
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: 2.5.0
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: 1.5.9
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: 1.5.9
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: 1.2.9
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: 1.2.9
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: 3.6.0
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: 3.6.0
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: 3.5.1
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: 3.5.1
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.1'
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: 3.6.2
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