luna_park 0.11.7 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/gem-push.yml +3 -3
- data/.gitignore +1 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +41 -1
- data/Guardfile +42 -0
- data/lib/luna_park/http/response.rb +8 -1
- data/lib/luna_park/http/send.rb +13 -4
- data/lib/luna_park/notifiers/tagged_log/options.rb +87 -0
- data/lib/luna_park/notifiers/tagged_log/tagged_formatter.rb +90 -0
- data/lib/luna_park/notifiers/tagged_log.rb +105 -0
- data/lib/luna_park/version.rb +1 -1
- data/luna_park.gemspec +4 -0
- metadata +62 -3
- data/.github/gem-push.yml +0 -43
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 14e20ec6fc8a3a6e96958a184503dbc5850dbf74e14c8d5943514c32c264337b
|
4
|
+
data.tar.gz: 6b3860177c18140dc5ea8c3a1e5e26577a952597d6f9c8f820499b6128b29d97
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 509321c66abc91c03bfd78cad59f8201c0961a064facf057bdd3db339747a4adb7eb227e09228bb486e8aa7261348d64fe554e034ba2d07b438d963ced03f004
|
7
|
+
data.tar.gz: 6c95a9de22724e65fd6afccc731b671aec2853e15bc7948a3ea395ac2735e1b30d0130773a8fccb9d6d714537cc0bd2ed44e3301b1e72de25f9cbab3ca4d4486
|
@@ -13,11 +13,11 @@ jobs:
|
|
13
13
|
packages: write
|
14
14
|
|
15
15
|
steps:
|
16
|
-
- uses: actions/checkout@
|
16
|
+
- uses: actions/checkout@v3
|
17
17
|
- name: Set up Ruby 2.5
|
18
|
-
uses:
|
18
|
+
uses: ruby/setup-ruby@v1
|
19
19
|
with:
|
20
|
-
ruby-version: 2.5
|
20
|
+
ruby-version: '2.5'
|
21
21
|
|
22
22
|
- name: Publish to GPR
|
23
23
|
run: |
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
6
|
|
7
|
+
## [0.12.0] - 2023-02-23
|
8
|
+
Changed
|
9
|
+
- Added `TaggedLog`
|
10
|
+
|
7
11
|
## [0.11.7] - 2022-10-07
|
8
12
|
Changed
|
9
13
|
- Added `formatter` to `Notifiers::Log`. Using `format` in initializer is now deprecated.
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
luna_park (0.
|
4
|
+
luna_park (0.12.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -69,6 +69,29 @@ GEM
|
|
69
69
|
multipart-post (>= 1.2, < 3)
|
70
70
|
ruby2_keywords
|
71
71
|
faraday-net_http (1.0.1)
|
72
|
+
ffi (1.15.5)
|
73
|
+
formatador (1.1.0)
|
74
|
+
guard (2.18.0)
|
75
|
+
formatador (>= 0.2.4)
|
76
|
+
listen (>= 2.7, < 4.0)
|
77
|
+
lumberjack (>= 1.0.12, < 2.0)
|
78
|
+
nenv (~> 0.1)
|
79
|
+
notiffany (~> 0.0)
|
80
|
+
pry (>= 0.13.0)
|
81
|
+
shellany (~> 0.0)
|
82
|
+
thor (>= 0.18.1)
|
83
|
+
guard-bundler (3.0.1)
|
84
|
+
bundler (>= 2.1, < 3)
|
85
|
+
guard (~> 2.2)
|
86
|
+
guard-compat (~> 1.1)
|
87
|
+
guard-compat (1.2.1)
|
88
|
+
guard-rspec (4.7.3)
|
89
|
+
guard (~> 2.1)
|
90
|
+
guard-compat (~> 1.1)
|
91
|
+
rspec (>= 2.99.0, < 4.0)
|
92
|
+
guard-rubocop (1.5.0)
|
93
|
+
guard (~> 2.0)
|
94
|
+
rubocop (< 2.0)
|
72
95
|
hashdiff (1.0.1)
|
73
96
|
http-accept (1.7.0)
|
74
97
|
http-cookie (1.0.3)
|
@@ -77,12 +100,20 @@ GEM
|
|
77
100
|
concurrent-ruby (~> 1.0)
|
78
101
|
iniparse (1.5.0)
|
79
102
|
json (2.3.1)
|
103
|
+
listen (3.8.0)
|
104
|
+
rb-fsevent (~> 0.10, >= 0.10.3)
|
105
|
+
rb-inotify (~> 0.9, >= 0.9.10)
|
106
|
+
lumberjack (1.2.8)
|
80
107
|
method_source (1.0.0)
|
81
108
|
mime-types (3.3.1)
|
82
109
|
mime-types-data (~> 3.2015)
|
83
110
|
mime-types-data (3.2020.0512)
|
84
111
|
multipart-post (2.1.1)
|
112
|
+
nenv (0.3.0)
|
85
113
|
netrc (0.11.0)
|
114
|
+
notiffany (0.1.3)
|
115
|
+
nenv (~> 0.1)
|
116
|
+
shellany (~> 0.0)
|
86
117
|
overcommit (0.55.0)
|
87
118
|
childprocess (>= 0.6.3, < 5)
|
88
119
|
iniparse (~> 1.4)
|
@@ -98,6 +129,9 @@ GEM
|
|
98
129
|
public_suffix (4.0.6)
|
99
130
|
rainbow (3.0.0)
|
100
131
|
rake (13.0.1)
|
132
|
+
rb-fsevent (0.11.2)
|
133
|
+
rb-inotify (0.10.1)
|
134
|
+
ffi (~> 1.0)
|
101
135
|
regexp_parser (1.7.1)
|
102
136
|
rest-client (2.1.0)
|
103
137
|
http-accept (>= 1.7.0, < 2.0)
|
@@ -139,10 +173,12 @@ GEM
|
|
139
173
|
sentry-ruby-core (4.2.1)
|
140
174
|
concurrent-ruby
|
141
175
|
faraday
|
176
|
+
shellany (0.0.1)
|
142
177
|
simplecov (0.18.5)
|
143
178
|
docile (~> 1.1)
|
144
179
|
simplecov-html (~> 0.11)
|
145
180
|
simplecov-html (0.12.2)
|
181
|
+
thor (1.2.1)
|
146
182
|
timecop (0.9.1)
|
147
183
|
unf (0.1.4)
|
148
184
|
unf_ext
|
@@ -163,6 +199,10 @@ DEPENDENCIES
|
|
163
199
|
byebug (~> 11.1)
|
164
200
|
codecov (~> 0.2)
|
165
201
|
dry-validation (~> 1.1)
|
202
|
+
guard
|
203
|
+
guard-bundler
|
204
|
+
guard-rspec
|
205
|
+
guard-rubocop
|
166
206
|
i18n (~> 1.8)
|
167
207
|
luna_park!
|
168
208
|
overcommit (~> 0.55)
|
data/Guardfile
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
ignore(/
|
4
|
+
bin | public | node_modules | tmp | .git
|
5
|
+
/x)
|
6
|
+
|
7
|
+
guard :bundler do
|
8
|
+
watch('Gemfile')
|
9
|
+
watch('Gemfile.lock')
|
10
|
+
end
|
11
|
+
|
12
|
+
group :specs, halt_on_fail: true do
|
13
|
+
guard :rspec,
|
14
|
+
cmd: 'bundle exec rspec --color --format documentation',
|
15
|
+
all_after_pass: false,
|
16
|
+
all_on_start: false,
|
17
|
+
failed_mode: :keep do
|
18
|
+
require 'guard/rspec/dsl'
|
19
|
+
dsl = Guard::RSpec::Dsl.new(self)
|
20
|
+
|
21
|
+
# Feel free to open issues for suggestions and improvements
|
22
|
+
|
23
|
+
# RSpec files
|
24
|
+
rspec = dsl.rspec
|
25
|
+
watch(rspec.spec_helper) { rspec.spec_dir }
|
26
|
+
watch(rspec.spec_support) { rspec.spec_dir }
|
27
|
+
watch(rspec.spec_files)
|
28
|
+
|
29
|
+
# Ruby files
|
30
|
+
ruby = dsl.ruby
|
31
|
+
dsl.watch_spec_files_for(ruby.lib_files)
|
32
|
+
|
33
|
+
watch(%r{^config/(.+)\.rb$})
|
34
|
+
|
35
|
+
watch(%r{^spec/factories/(.+)\.rb$})
|
36
|
+
end
|
37
|
+
|
38
|
+
guard :rubocop, all_on_start: false, keep_failed: false do
|
39
|
+
watch(/.+\.rb$/)
|
40
|
+
watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
|
41
|
+
end
|
42
|
+
end
|
@@ -113,6 +113,13 @@ module LunaPark
|
|
113
113
|
# @return Hash
|
114
114
|
attr_reader :cookies
|
115
115
|
|
116
|
+
# Exception of failed request
|
117
|
+
# Can be raised after call (without bang)
|
118
|
+
# Will be raised after call! (with bang)
|
119
|
+
#
|
120
|
+
# @return LunaPark::Errors::Http
|
121
|
+
attr_reader :exception
|
122
|
+
|
116
123
|
# The request that actually initializes the current response
|
117
124
|
#
|
118
125
|
# @example
|
@@ -344,7 +351,7 @@ module LunaPark
|
|
344
351
|
end
|
345
352
|
|
346
353
|
# @example
|
347
|
-
#
|
354
|
+
# response.to_h # => {
|
348
355
|
# :code=>200,
|
349
356
|
# :body=>"John Doe, Marry Ann",
|
350
357
|
# :headers=>{}, :cookies=>{},
|
data/lib/luna_park/http/send.rb
CHANGED
@@ -62,7 +62,7 @@ module LunaPark
|
|
62
62
|
# @return [LunaPark::Http::Response]
|
63
63
|
def call!
|
64
64
|
call.tap do |response|
|
65
|
-
raise
|
65
|
+
raise response.exception unless response.exception.nil?
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
@@ -82,7 +82,7 @@ module LunaPark
|
|
82
82
|
end
|
83
83
|
|
84
84
|
def build_original_response(rest_response)
|
85
|
-
|
85
|
+
build_response(
|
86
86
|
body: rest_response&.body,
|
87
87
|
code: rest_response&.code || 0,
|
88
88
|
headers: rest_response&.headers,
|
@@ -92,11 +92,20 @@ module LunaPark
|
|
92
92
|
end
|
93
93
|
|
94
94
|
def build_timeout_response
|
95
|
-
|
95
|
+
build_response code: 408, request: original_request
|
96
96
|
end
|
97
97
|
|
98
|
+
# ! 503 != ECONNREFUSED (https://www.rfc-editor.org/rfc/rfc7231#section-6.6.4)
|
98
99
|
def build_unavailable_response
|
99
|
-
|
100
|
+
build_response code: 503, request: original_request
|
101
|
+
end
|
102
|
+
|
103
|
+
def build_response(code:, request:, **opts)
|
104
|
+
Response
|
105
|
+
.new(code: code, request: request, **opts)
|
106
|
+
.tap do |response|
|
107
|
+
response.exception = Errors::Http.new(response.status, response: response) unless response.success?
|
108
|
+
end
|
100
109
|
end
|
101
110
|
end
|
102
111
|
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# frozen_string_literal: false
|
2
|
+
|
3
|
+
require 'luna_park/values/compound'
|
4
|
+
|
5
|
+
module LunaPark
|
6
|
+
module Notifiers
|
7
|
+
module TaggedLog
|
8
|
+
class Options < LunaPark::Values::Compound
|
9
|
+
attr_reader :default_tag, :app, :app_env, :instance, :min_lvl
|
10
|
+
|
11
|
+
def initialize(attrs = {})
|
12
|
+
logger_conf_error if config_incorrect?(attrs)
|
13
|
+
set_attributes attrs
|
14
|
+
end
|
15
|
+
|
16
|
+
# @param [Notifiers::Log::Options, Hash] other
|
17
|
+
# @return [Notifiers::Log::Options]
|
18
|
+
def merge!(other)
|
19
|
+
other = self.class.wrap(other)
|
20
|
+
|
21
|
+
self.default_tag ||= other.default_tag
|
22
|
+
self.app ||= other.app
|
23
|
+
self.app_env ||= other.app_env
|
24
|
+
self.instance ||= other.instance
|
25
|
+
self.min_lvl ||= other.min_lvl
|
26
|
+
|
27
|
+
self
|
28
|
+
end
|
29
|
+
|
30
|
+
def merge(other)
|
31
|
+
dup.merge!(other)
|
32
|
+
end
|
33
|
+
|
34
|
+
def to_h
|
35
|
+
{
|
36
|
+
default_tag: default_tag,
|
37
|
+
app: app,
|
38
|
+
app_env: app_env,
|
39
|
+
instance: instance,
|
40
|
+
min_lvl: min_lvl
|
41
|
+
}
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def config_incorrect?(attrs)
|
47
|
+
return true if attrs.empty?
|
48
|
+
|
49
|
+
!%i[default_tag app app_env instance min_lvl].all? do |required_key|
|
50
|
+
attrs.keys.include?(required_key)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def logger_conf_error
|
55
|
+
raise ArgumentError, 'TaggedLog not properly configured'
|
56
|
+
end
|
57
|
+
|
58
|
+
def default_tag=(val)
|
59
|
+
logger_conf_error if val.nil? || val.empty?
|
60
|
+
logger_conf_error unless val.is_a?(String) || val.is_a?(Symbol)
|
61
|
+
@default_tag = val
|
62
|
+
end
|
63
|
+
|
64
|
+
def app=(val)
|
65
|
+
logger_conf_error if val.nil? || val.empty? || !val.is_a?(String)
|
66
|
+
@app = val
|
67
|
+
end
|
68
|
+
|
69
|
+
def app_env=(val)
|
70
|
+
logger_conf_error if val.nil? || val.empty? || !val.is_a?(String)
|
71
|
+
@app_env = val
|
72
|
+
end
|
73
|
+
|
74
|
+
def instance=(val)
|
75
|
+
logger_conf_error if val.nil? || val.empty? || !val.is_a?(String)
|
76
|
+
@instance = val
|
77
|
+
end
|
78
|
+
|
79
|
+
def min_lvl=(val)
|
80
|
+
logger_conf_error if val.nil? || val.empty?
|
81
|
+
logger_conf_error unless val.is_a?(String) || val.is_a?(Symbol)
|
82
|
+
@min_lvl = val.to_sym
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
# frozen_string_literal: false
|
2
|
+
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
module LunaPark
|
6
|
+
module Notifiers
|
7
|
+
module TaggedLog
|
8
|
+
class TaggedFormatter < Logger::Formatter
|
9
|
+
attr_accessor :config
|
10
|
+
|
11
|
+
def call(severity, timestamp, _, msg, tags = nil)
|
12
|
+
payload = common_payload(severity, timestamp, tags)
|
13
|
+
.merge(msg_payload(msg[:original_msg]))
|
14
|
+
|
15
|
+
deep_merge!(payload, details_payload(msg[:details]))
|
16
|
+
|
17
|
+
::JSON.generate(payload) << "\n"
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def details_payload(hash)
|
23
|
+
details = hash.delete(:details)
|
24
|
+
payload = { details: hash }
|
25
|
+
deep_merge!(payload, { details: details }) unless details.nil?
|
26
|
+
payload
|
27
|
+
end
|
28
|
+
|
29
|
+
def common_payload(severity, timestamp, tags)
|
30
|
+
{
|
31
|
+
tags: [@config.default_tag, tags].join(' ').strip,
|
32
|
+
app: @config.app,
|
33
|
+
app_env: @config.app_env,
|
34
|
+
instance: @config.instance,
|
35
|
+
created_at: timestamp.iso8601(3),
|
36
|
+
ok: !%w[FATAL ERROR].include?(severity)
|
37
|
+
}
|
38
|
+
end
|
39
|
+
|
40
|
+
def msg_payload(msg)
|
41
|
+
case msg
|
42
|
+
when ::Exception
|
43
|
+
error_payload(msg)
|
44
|
+
when Hash
|
45
|
+
hash_payload(msg)
|
46
|
+
else
|
47
|
+
{ details: { message: try_to_json(msg) } }
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def error_payload(e)
|
52
|
+
error_hash = {
|
53
|
+
class: e.class,
|
54
|
+
message: e.message
|
55
|
+
}
|
56
|
+
error_hash.merge!(backtrace: "\n" + e.backtrace.join("\n") + "\n") if e.backtrace
|
57
|
+
payload = {
|
58
|
+
error: error_hash,
|
59
|
+
ok: false
|
60
|
+
}
|
61
|
+
payload.merge!(details: e.details) if e.respond_to?(:details)
|
62
|
+
payload
|
63
|
+
end
|
64
|
+
|
65
|
+
def hash_payload(msg)
|
66
|
+
details = msg.delete(:details)
|
67
|
+
payload = { details: msg }
|
68
|
+
deep_merge!(payload, { details: details }) unless details.nil?
|
69
|
+
payload
|
70
|
+
end
|
71
|
+
|
72
|
+
def try_to_json(str)
|
73
|
+
::JSON.parse(str)
|
74
|
+
rescue ::JSON::ParserError
|
75
|
+
str
|
76
|
+
end
|
77
|
+
|
78
|
+
def deep_merge!(hash, other_hash)
|
79
|
+
hash.merge!(other_hash) do |_, this_val, other_val|
|
80
|
+
if this_val.is_a?(Hash) && other_val.is_a?(Hash)
|
81
|
+
deep_merge!(this_val, other_val)
|
82
|
+
else
|
83
|
+
other_val
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
# frozen_string_literal: false
|
2
|
+
|
3
|
+
require 'logger'
|
4
|
+
require 'forwardable'
|
5
|
+
require 'luna_park/extensions/severity_levels'
|
6
|
+
require 'luna_park/notifiers/tagged_log/options'
|
7
|
+
require 'luna_park/notifiers/tagged_log/tagged_formatter'
|
8
|
+
|
9
|
+
module LunaPark
|
10
|
+
module Notifiers
|
11
|
+
module TaggedLog
|
12
|
+
include Extensions::SeverityLevels
|
13
|
+
extend Forwardable
|
14
|
+
|
15
|
+
SEVERITY_LEVELS = {
|
16
|
+
unknown: Logger::Severity::UNKNOWN,
|
17
|
+
fatal: Logger::Severity::FATAL,
|
18
|
+
error: Logger::Severity::ERROR,
|
19
|
+
warning: Logger::Severity::WARN,
|
20
|
+
info: Logger::Severity::INFO,
|
21
|
+
debug: Logger::Severity::DEBUG
|
22
|
+
}.freeze
|
23
|
+
|
24
|
+
private_constant :SEVERITY_LEVELS
|
25
|
+
|
26
|
+
def_delegators :formatter, :push_tags, :clear_tags!
|
27
|
+
attr_accessor :output
|
28
|
+
|
29
|
+
module Formatter
|
30
|
+
def call(severity, timestamp, progname, msg)
|
31
|
+
super(severity, timestamp, progname, msg, tags_text)
|
32
|
+
end
|
33
|
+
|
34
|
+
def tagged(*tags)
|
35
|
+
new_tags = push_tags(*tags)
|
36
|
+
yield self
|
37
|
+
ensure
|
38
|
+
pop_tags(new_tags.size)
|
39
|
+
end
|
40
|
+
|
41
|
+
def push_tags(*tags)
|
42
|
+
tags.flatten!
|
43
|
+
tags.reject! { |t| t.respond_to?(:empty?) ? !!t.empty? : !t }
|
44
|
+
current_tags.concat tags
|
45
|
+
tags
|
46
|
+
end
|
47
|
+
|
48
|
+
def pop_tags(size = 1)
|
49
|
+
current_tags.pop(size)
|
50
|
+
end
|
51
|
+
|
52
|
+
def clear_tags!
|
53
|
+
current_tags.clear
|
54
|
+
end
|
55
|
+
|
56
|
+
def current_tags
|
57
|
+
thread_key = @thread_key ||= "tagged_log_tag_store_tags:#{object_id}"
|
58
|
+
Thread.current[thread_key] ||= []
|
59
|
+
end
|
60
|
+
|
61
|
+
def tags_text
|
62
|
+
current_tags.join(' ').strip
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def tagged(*tags)
|
67
|
+
if block_given?
|
68
|
+
formatter.tagged(*tags) { yield self }
|
69
|
+
else
|
70
|
+
logger = LunaPark::Notifiers::TaggedLog.new(
|
71
|
+
output, **formatter.config.to_h
|
72
|
+
)
|
73
|
+
logger.push_tags(*formatter.current_tags, *tags)
|
74
|
+
logger
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def post(msg, lvl: :error, **details)
|
79
|
+
severity = severity(lvl)
|
80
|
+
message = { original_msg: msg, details: details }
|
81
|
+
add severity, message
|
82
|
+
end
|
83
|
+
|
84
|
+
def severity(lvl)
|
85
|
+
severity = SEVERITY_LEVELS[lvl]
|
86
|
+
raise ArgumentError, "Unknown level #{lvl}" if severity.nil?
|
87
|
+
|
88
|
+
severity
|
89
|
+
end
|
90
|
+
|
91
|
+
def self.new(output = $stdout, **options)
|
92
|
+
config = LunaPark::Notifiers::TaggedLog::Options.wrap(options)
|
93
|
+
|
94
|
+
logger = Logger.new(output)
|
95
|
+
logger.formatter = LunaPark::Notifiers::TaggedLog::TaggedFormatter.new
|
96
|
+
logger.formatter.config = config
|
97
|
+
logger.formatter.extend(Formatter)
|
98
|
+
logger.extend(self)
|
99
|
+
logger.output = output
|
100
|
+
logger.min_lvl = config.min_lvl
|
101
|
+
logger
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
data/lib/luna_park/version.rb
CHANGED
data/luna_park.gemspec
CHANGED
@@ -39,6 +39,10 @@ Gem::Specification.new do |spec|
|
|
39
39
|
spec.add_development_dependency 'byebug', '~> 11.1'
|
40
40
|
spec.add_development_dependency 'codecov', '~> 0.2'
|
41
41
|
spec.add_development_dependency 'dry-validation', '~> 1.1'
|
42
|
+
spec.add_development_dependency 'guard'
|
43
|
+
spec.add_development_dependency 'guard-bundler'
|
44
|
+
spec.add_development_dependency 'guard-rspec'
|
45
|
+
spec.add_development_dependency 'guard-rubocop'
|
42
46
|
spec.add_development_dependency 'i18n', '~> 1.8'
|
43
47
|
spec.add_development_dependency 'overcommit', '~> 0.55'
|
44
48
|
spec.add_development_dependency 'pry', '~> 0.13'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: luna_park
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Kudrin
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2023-02-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bugsnag
|
@@ -81,6 +81,62 @@ dependencies:
|
|
81
81
|
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '1.1'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: guard
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: guard-bundler
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: guard-rspec
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: guard-rubocop
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
84
140
|
- !ruby/object:Gem::Dependency
|
85
141
|
name: i18n
|
86
142
|
requirement: !ruby/object:Gem::Requirement
|
@@ -270,7 +326,6 @@ executables: []
|
|
270
326
|
extensions: []
|
271
327
|
extra_rdoc_files: []
|
272
328
|
files:
|
273
|
-
- ".github/gem-push.yml"
|
274
329
|
- ".github/workflows/gem-push.yml"
|
275
330
|
- ".gitignore"
|
276
331
|
- ".overcommit.yml"
|
@@ -282,6 +337,7 @@ files:
|
|
282
337
|
- CHANGELOG.md
|
283
338
|
- Gemfile
|
284
339
|
- Gemfile.lock
|
340
|
+
- Guardfile
|
285
341
|
- LICENSE
|
286
342
|
- LICENSE.txt
|
287
343
|
- README.md
|
@@ -377,6 +433,9 @@ files:
|
|
377
433
|
- lib/luna_park/notifiers/log.rb
|
378
434
|
- lib/luna_park/notifiers/log/formatters.rb
|
379
435
|
- lib/luna_park/notifiers/sentry.rb
|
436
|
+
- lib/luna_park/notifiers/tagged_log.rb
|
437
|
+
- lib/luna_park/notifiers/tagged_log/options.rb
|
438
|
+
- lib/luna_park/notifiers/tagged_log/tagged_formatter.rb
|
380
439
|
- lib/luna_park/repositories/postgres.rb
|
381
440
|
- lib/luna_park/repositories/sequel.rb
|
382
441
|
- lib/luna_park/repository.rb
|
data/.github/gem-push.yml
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
name: Ruby Gem
|
2
|
-
|
3
|
-
on:
|
4
|
-
push:
|
5
|
-
branches: [ master ]
|
6
|
-
|
7
|
-
jobs:
|
8
|
-
build:
|
9
|
-
name: Build + Publish
|
10
|
-
runs-on: ubuntu-latest
|
11
|
-
permissions:
|
12
|
-
contents: read
|
13
|
-
packages: write
|
14
|
-
|
15
|
-
steps:
|
16
|
-
- uses: actions/checkout@v2
|
17
|
-
- name: Set up Ruby 2.6
|
18
|
-
uses: actions/setup-ruby@v1
|
19
|
-
with:
|
20
|
-
ruby-version: 2.5.x
|
21
|
-
|
22
|
-
- name: Publish to GPR
|
23
|
-
run: |
|
24
|
-
mkdir -p $HOME/.gem
|
25
|
-
touch $HOME/.gem/credentials
|
26
|
-
chmod 0600 $HOME/.gem/credentials
|
27
|
-
printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
28
|
-
gem build *.gemspec
|
29
|
-
gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
|
30
|
-
env:
|
31
|
-
GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}"
|
32
|
-
OWNER: ${{ github.repository_owner }}
|
33
|
-
|
34
|
-
- name: Publish to RubyGems
|
35
|
-
run: |
|
36
|
-
mkdir -p $HOME/.gem
|
37
|
-
touch $HOME/.gem/credentials
|
38
|
-
chmod 0600 $HOME/.gem/credentials
|
39
|
-
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
40
|
-
gem build *.gemspec
|
41
|
-
gem push *.gem
|
42
|
-
env:
|
43
|
-
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
|