logstruct 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -1
- data/README.md +4 -6
- data/lib/log_struct/concerns/configuration.rb +2 -2
- data/lib/log_struct/config_struct/integrations.rb +5 -0
- data/lib/log_struct/enums/log_field.rb +12 -1
- data/lib/log_struct/integrations/action_mailer/error_handling.rb +121 -27
- data/lib/log_struct/integrations/action_mailer/event_logging.rb +30 -14
- data/lib/log_struct/integrations/action_mailer/metadata_collection.rb +18 -24
- data/lib/log_struct/integrations/action_mailer.rb +13 -6
- data/lib/log_struct/integrations/active_job/log_subscriber.rb +2 -2
- data/lib/log_struct/integrations/active_storage.rb +8 -8
- data/lib/log_struct/integrations/ahoy.rb +2 -3
- data/lib/log_struct/integrations/carrierwave.rb +8 -10
- data/lib/log_struct/integrations/good_job/log_subscriber.rb +5 -5
- data/lib/log_struct/integrations/good_job/logger.rb +2 -6
- data/lib/log_struct/integrations/good_job.rb +1 -1
- data/lib/log_struct/integrations/host_authorization.rb +27 -36
- data/lib/log_struct/integrations/lograge.rb +1 -1
- data/lib/log_struct/integrations/shrine.rb +21 -24
- data/lib/log_struct/integrations/sidekiq/logger.rb +8 -1
- data/lib/log_struct/log/action_mailer/delivered.rb +14 -49
- data/lib/log_struct/log/action_mailer/delivery.rb +14 -49
- data/lib/log_struct/log/action_mailer/error.rb +72 -0
- data/lib/log_struct/log/action_mailer.rb +15 -2
- data/lib/log_struct/log/active_job/enqueue.rb +9 -73
- data/lib/log_struct/log/active_job/finish.rb +9 -76
- data/lib/log_struct/log/active_job/schedule.rb +9 -73
- data/lib/log_struct/log/active_job/start.rb +9 -76
- data/lib/log_struct/log/active_job.rb +2 -2
- data/lib/log_struct/log/active_model_serializers.rb +5 -45
- data/lib/log_struct/log/active_storage/delete.rb +8 -46
- data/lib/log_struct/log/active_storage/download.rb +9 -55
- data/lib/log_struct/log/active_storage/exist.rb +9 -49
- data/lib/log_struct/log/active_storage/metadata.rb +9 -49
- data/lib/log_struct/log/active_storage/stream.rb +9 -49
- data/lib/log_struct/log/active_storage/upload.rb +9 -64
- data/lib/log_struct/log/active_storage/url.rb +9 -49
- data/lib/log_struct/log/active_storage.rb +2 -2
- data/lib/log_struct/log/ahoy.rb +5 -43
- data/lib/log_struct/log/carrierwave/delete.rb +15 -69
- data/lib/log_struct/log/carrierwave/download.rb +15 -77
- data/lib/log_struct/log/carrierwave/upload.rb +15 -83
- data/lib/log_struct/log/carrierwave.rb +13 -4
- data/lib/log_struct/log/dotenv/load.rb +5 -33
- data/lib/log_struct/log/dotenv/restore.rb +5 -33
- data/lib/log_struct/log/dotenv/save.rb +5 -33
- data/lib/log_struct/log/dotenv/update.rb +5 -33
- data/lib/log_struct/log/error.rb +7 -40
- data/lib/log_struct/log/good_job/enqueue.rb +9 -72
- data/lib/log_struct/log/good_job/error.rb +9 -89
- data/lib/log_struct/log/good_job/finish.rb +9 -78
- data/lib/log_struct/log/good_job/log.rb +11 -75
- data/lib/log_struct/log/good_job/schedule.rb +7 -78
- data/lib/log_struct/log/good_job/start.rb +7 -78
- data/lib/log_struct/log/good_job.rb +2 -2
- data/lib/log_struct/log/plain.rb +5 -32
- data/lib/log_struct/log/puma/shutdown.rb +5 -32
- data/lib/log_struct/log/puma/start.rb +5 -56
- data/lib/log_struct/log/request.rb +7 -90
- data/lib/log_struct/log/security/blocked_host.rb +12 -73
- data/lib/log_struct/log/security/csrf_violation.rb +6 -67
- data/lib/log_struct/log/security/ip_spoof.rb +6 -73
- data/lib/log_struct/log/shrine/delete.rb +6 -41
- data/lib/log_struct/log/shrine/download.rb +6 -44
- data/lib/log_struct/log/shrine/exist.rb +6 -44
- data/lib/log_struct/log/shrine/metadata.rb +8 -46
- data/lib/log_struct/log/shrine/upload.rb +6 -53
- data/lib/log_struct/log/sidekiq.rb +5 -42
- data/lib/log_struct/log/sql.rb +5 -65
- data/lib/log_struct/log.rb +2 -2
- data/lib/log_struct/monkey_patches/active_support/tagged_logging/formatter.rb +12 -1
- data/lib/log_struct/railtie.rb +0 -22
- data/lib/log_struct/semantic_logger/concerns/log_methods.rb +100 -0
- data/lib/log_struct/semantic_logger/logger.rb +46 -15
- data/lib/log_struct/semantic_logger/setup.rb +11 -7
- data/lib/log_struct/shared/{shared/add_request_fields.rb → add_request_fields.rb} +2 -2
- data/lib/log_struct/shared/{shared/merge_additional_data_fields.rb → merge_additional_data_fields.rb} +1 -1
- data/lib/log_struct/shared/{shared/serialize_common.rb → serialize_common.rb} +9 -3
- data/lib/log_struct/{log/shared → shared}/serialize_common_public.rb +2 -2
- data/lib/log_struct/version.rb +1 -1
- data/lib/log_struct.rb +4 -1
- data/logstruct.gemspec +1 -1
- metadata +9 -11
- data/lib/log_struct/integrations/action_mailer/callbacks.rb +0 -100
- data/lib/log_struct/log/shared/add_request_fields.rb +0 -4
- data/lib/log_struct/log/shared/merge_additional_data_fields.rb +0 -4
- data/lib/log_struct/log/shared/serialize_common.rb +0 -4
@@ -9,9 +9,9 @@
|
|
9
9
|
require "log_struct/shared/interfaces/common_fields"
|
10
10
|
require "log_struct/shared/interfaces/additional_data_field"
|
11
11
|
require "log_struct/shared/interfaces/request_fields"
|
12
|
-
require "log_struct/shared/
|
13
|
-
require "log_struct/shared/
|
14
|
-
require "log_struct/shared/
|
12
|
+
require "log_struct/shared/serialize_common"
|
13
|
+
require "log_struct/shared/merge_additional_data_fields"
|
14
|
+
require "log_struct/shared/add_request_fields"
|
15
15
|
require_relative "../../enums/source"
|
16
16
|
require_relative "../../enums/event"
|
17
17
|
require_relative "../../enums/level"
|
@@ -21,11 +21,6 @@ module LogStruct
|
|
21
21
|
module Log
|
22
22
|
class CarrierWave
|
23
23
|
class Delete < T::Struct
|
24
|
-
# typed: strict
|
25
|
-
# frozen_string_literal: true
|
26
|
-
|
27
|
-
extend T::Sig
|
28
|
-
|
29
24
|
extend T::Sig
|
30
25
|
|
31
26
|
# Shared/common fields
|
@@ -34,81 +29,32 @@ module LogStruct
|
|
34
29
|
const :timestamp, Time, factory: -> { Time.now }
|
35
30
|
const :level, Level, default: Level::Info
|
36
31
|
|
37
|
-
const :storage,
|
32
|
+
const :storage, Symbol
|
38
33
|
const :file_id, String
|
39
34
|
const :uploader, T.nilable(String), default: nil
|
40
35
|
const :model, T.nilable(String), default: nil
|
41
36
|
const :mount_point, T.nilable(String), default: nil
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
# Additional data
|
46
|
-
include LogStruct::Log::Interfaces::AdditionalDataField
|
47
|
-
const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil
|
48
|
-
include LogStruct::Log::Shared::MergeAdditionalDataFields
|
49
|
-
|
50
|
-
# Request fields (optional)
|
37
|
+
const :version, T.nilable(String), default: nil
|
38
|
+
const :store_path, T.nilable(String), default: nil
|
39
|
+
const :extension, T.nilable(String), default: nil
|
51
40
|
|
52
41
|
# Serialize shared fields
|
53
42
|
include LogStruct::Log::Interfaces::CommonFields
|
54
43
|
include LogStruct::Log::Shared::SerializeCommon
|
55
44
|
|
56
|
-
sig {
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
mount_point: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
62
|
-
}
|
63
|
-
def self.base_hash(storage: nil,
|
64
|
-
file_id: nil,
|
65
|
-
uploader: nil,
|
66
|
-
model: nil,
|
67
|
-
mount_point: nil)
|
68
|
-
h = {}
|
69
|
-
h[LogField::Storage] = storage unless storage.nil?
|
70
|
-
h[LogField::FileId] = file_id unless file_id.nil?
|
45
|
+
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
46
|
+
def to_h
|
47
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
48
|
+
h[LogField::Storage] = storage
|
49
|
+
h[LogField::FileId] = file_id
|
71
50
|
h[LogField::Uploader] = uploader unless uploader.nil?
|
72
51
|
h[LogField::Model] = model unless model.nil?
|
73
52
|
h[LogField::MountPoint] = mount_point unless mount_point.nil?
|
53
|
+
h[LogField::Version] = version unless version.nil?
|
54
|
+
h[LogField::StorePath] = store_path unless store_path.nil?
|
55
|
+
h[LogField::Extension] = extension unless extension.nil?
|
74
56
|
h
|
75
57
|
end
|
76
|
-
|
77
|
-
sig {
|
78
|
-
params(storage: T.untyped,
|
79
|
-
file_id: T.untyped,
|
80
|
-
uploader: T.untyped,
|
81
|
-
model: T.untyped,
|
82
|
-
mount_point: T.untyped,
|
83
|
-
additional_data: T.untyped,
|
84
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
85
|
-
}
|
86
|
-
def self.build(storage:,
|
87
|
-
file_id:,
|
88
|
-
uploader: nil,
|
89
|
-
model: nil,
|
90
|
-
mount_point: nil,
|
91
|
-
additional_data: nil,
|
92
|
-
timestamp: Time.now)
|
93
|
-
base_hash(storage: storage,
|
94
|
-
file_id: file_id,
|
95
|
-
uploader: uploader,
|
96
|
-
model: model,
|
97
|
-
mount_point: mount_point)
|
98
|
-
end
|
99
|
-
|
100
|
-
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
101
|
-
def to_h
|
102
|
-
self.class.build(
|
103
|
-
storage: storage,
|
104
|
-
file_id: file_id,
|
105
|
-
uploader: uploader,
|
106
|
-
model: model,
|
107
|
-
mount_point: mount_point,
|
108
|
-
additional_data: additional_data,
|
109
|
-
timestamp: timestamp
|
110
|
-
)
|
111
|
-
end
|
112
58
|
end
|
113
59
|
end
|
114
60
|
end
|
@@ -9,9 +9,9 @@
|
|
9
9
|
require "log_struct/shared/interfaces/common_fields"
|
10
10
|
require "log_struct/shared/interfaces/additional_data_field"
|
11
11
|
require "log_struct/shared/interfaces/request_fields"
|
12
|
-
require "log_struct/shared/
|
13
|
-
require "log_struct/shared/
|
14
|
-
require "log_struct/shared/
|
12
|
+
require "log_struct/shared/serialize_common"
|
13
|
+
require "log_struct/shared/merge_additional_data_fields"
|
14
|
+
require "log_struct/shared/add_request_fields"
|
15
15
|
require_relative "../../enums/source"
|
16
16
|
require_relative "../../enums/event"
|
17
17
|
require_relative "../../enums/level"
|
@@ -21,11 +21,6 @@ module LogStruct
|
|
21
21
|
module Log
|
22
22
|
class CarrierWave
|
23
23
|
class Download < T::Struct
|
24
|
-
# typed: strict
|
25
|
-
# frozen_string_literal: true
|
26
|
-
|
27
|
-
extend T::Sig
|
28
|
-
|
29
24
|
extend T::Sig
|
30
25
|
|
31
26
|
# Shared/common fields
|
@@ -34,97 +29,40 @@ module LogStruct
|
|
34
29
|
const :timestamp, Time, factory: -> { Time.now }
|
35
30
|
const :level, Level, default: Level::Info
|
36
31
|
|
37
|
-
const :storage,
|
32
|
+
const :storage, Symbol
|
38
33
|
const :file_id, String
|
39
34
|
const :uploader, T.nilable(String), default: nil
|
40
35
|
const :model, T.nilable(String), default: nil
|
41
36
|
const :mount_point, T.nilable(String), default: nil
|
37
|
+
const :version, T.nilable(String), default: nil
|
38
|
+
const :store_path, T.nilable(String), default: nil
|
39
|
+
const :extension, T.nilable(String), default: nil
|
42
40
|
|
43
41
|
# Event-specific fields
|
44
42
|
const :filename, T.nilable(String), default: nil
|
45
43
|
const :mime_type, T.nilable(String), default: nil
|
46
44
|
const :size, T.nilable(Integer), default: nil
|
47
45
|
|
48
|
-
# Additional data
|
49
|
-
include LogStruct::Log::Interfaces::AdditionalDataField
|
50
|
-
const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil
|
51
|
-
include LogStruct::Log::Shared::MergeAdditionalDataFields
|
52
|
-
|
53
|
-
# Request fields (optional)
|
54
|
-
|
55
46
|
# Serialize shared fields
|
56
47
|
include LogStruct::Log::Interfaces::CommonFields
|
57
48
|
include LogStruct::Log::Shared::SerializeCommon
|
58
49
|
|
59
|
-
sig {
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
mount_point: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
65
|
-
}
|
66
|
-
def self.base_hash(storage: nil,
|
67
|
-
file_id: nil,
|
68
|
-
uploader: nil,
|
69
|
-
model: nil,
|
70
|
-
mount_point: nil)
|
71
|
-
h = {}
|
72
|
-
h[LogField::Storage] = storage unless storage.nil?
|
73
|
-
h[LogField::FileId] = file_id unless file_id.nil?
|
50
|
+
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
51
|
+
def to_h
|
52
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
53
|
+
h[LogField::Storage] = storage
|
54
|
+
h[LogField::FileId] = file_id
|
74
55
|
h[LogField::Uploader] = uploader unless uploader.nil?
|
75
56
|
h[LogField::Model] = model unless model.nil?
|
76
57
|
h[LogField::MountPoint] = mount_point unless mount_point.nil?
|
77
|
-
h
|
78
|
-
|
79
|
-
|
80
|
-
sig {
|
81
|
-
params(storage: T.untyped,
|
82
|
-
file_id: T.untyped,
|
83
|
-
uploader: T.untyped,
|
84
|
-
model: T.untyped,
|
85
|
-
mount_point: T.untyped,
|
86
|
-
filename: T.untyped,
|
87
|
-
mime_type: T.untyped,
|
88
|
-
size: T.untyped,
|
89
|
-
additional_data: T.untyped,
|
90
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
91
|
-
}
|
92
|
-
def self.build(storage:,
|
93
|
-
file_id:,
|
94
|
-
uploader: nil,
|
95
|
-
model: nil,
|
96
|
-
mount_point: nil,
|
97
|
-
filename: nil,
|
98
|
-
mime_type: nil,
|
99
|
-
size: nil,
|
100
|
-
additional_data: nil,
|
101
|
-
timestamp: Time.now)
|
102
|
-
h = base_hash(storage: storage,
|
103
|
-
file_id: file_id,
|
104
|
-
uploader: uploader,
|
105
|
-
model: model,
|
106
|
-
mount_point: mount_point)
|
58
|
+
h[LogField::Version] = version unless version.nil?
|
59
|
+
h[LogField::StorePath] = store_path unless store_path.nil?
|
60
|
+
h[LogField::Extension] = extension unless extension.nil?
|
107
61
|
h[LogField::Filename] = filename unless filename.nil?
|
108
62
|
h[LogField::MimeType] = mime_type unless mime_type.nil?
|
109
63
|
h[LogField::Size] = size unless size.nil?
|
110
64
|
h
|
111
65
|
end
|
112
|
-
|
113
|
-
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
114
|
-
def to_h
|
115
|
-
self.class.build(
|
116
|
-
storage: storage,
|
117
|
-
file_id: file_id,
|
118
|
-
uploader: uploader,
|
119
|
-
model: model,
|
120
|
-
mount_point: mount_point,
|
121
|
-
filename: filename,
|
122
|
-
mime_type: mime_type,
|
123
|
-
size: size,
|
124
|
-
additional_data: additional_data,
|
125
|
-
timestamp: timestamp
|
126
|
-
)
|
127
|
-
end
|
128
66
|
end
|
129
67
|
end
|
130
68
|
end
|
@@ -9,9 +9,9 @@
|
|
9
9
|
require "log_struct/shared/interfaces/common_fields"
|
10
10
|
require "log_struct/shared/interfaces/additional_data_field"
|
11
11
|
require "log_struct/shared/interfaces/request_fields"
|
12
|
-
require "log_struct/shared/
|
13
|
-
require "log_struct/shared/
|
14
|
-
require "log_struct/shared/
|
12
|
+
require "log_struct/shared/serialize_common"
|
13
|
+
require "log_struct/shared/merge_additional_data_fields"
|
14
|
+
require "log_struct/shared/add_request_fields"
|
15
15
|
require_relative "../../enums/source"
|
16
16
|
require_relative "../../enums/event"
|
17
17
|
require_relative "../../enums/level"
|
@@ -21,11 +21,6 @@ module LogStruct
|
|
21
21
|
module Log
|
22
22
|
class CarrierWave
|
23
23
|
class Upload < T::Struct
|
24
|
-
# typed: strict
|
25
|
-
# frozen_string_literal: true
|
26
|
-
|
27
|
-
extend T::Sig
|
28
|
-
|
29
24
|
extend T::Sig
|
30
25
|
|
31
26
|
# Shared/common fields
|
@@ -34,11 +29,14 @@ module LogStruct
|
|
34
29
|
const :timestamp, Time, factory: -> { Time.now }
|
35
30
|
const :level, Level, default: Level::Info
|
36
31
|
|
37
|
-
const :storage,
|
32
|
+
const :storage, Symbol
|
38
33
|
const :file_id, String
|
39
34
|
const :uploader, T.nilable(String), default: nil
|
40
35
|
const :model, T.nilable(String), default: nil
|
41
36
|
const :mount_point, T.nilable(String), default: nil
|
37
|
+
const :version, T.nilable(String), default: nil
|
38
|
+
const :store_path, T.nilable(String), default: nil
|
39
|
+
const :extension, T.nilable(String), default: nil
|
42
40
|
|
43
41
|
# Event-specific fields
|
44
42
|
const :filename, T.nilable(String), default: nil
|
@@ -47,69 +45,21 @@ module LogStruct
|
|
47
45
|
const :metadata, T.nilable(T::Hash[String, T.untyped]), default: nil
|
48
46
|
const :duration_ms, T.nilable(Float), default: nil
|
49
47
|
|
50
|
-
# Additional data
|
51
|
-
include LogStruct::Log::Interfaces::AdditionalDataField
|
52
|
-
const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil
|
53
|
-
include LogStruct::Log::Shared::MergeAdditionalDataFields
|
54
|
-
|
55
|
-
# Request fields (optional)
|
56
|
-
|
57
48
|
# Serialize shared fields
|
58
49
|
include LogStruct::Log::Interfaces::CommonFields
|
59
50
|
include LogStruct::Log::Shared::SerializeCommon
|
60
51
|
|
61
|
-
sig {
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
mount_point: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
67
|
-
}
|
68
|
-
def self.base_hash(storage: nil,
|
69
|
-
file_id: nil,
|
70
|
-
uploader: nil,
|
71
|
-
model: nil,
|
72
|
-
mount_point: nil)
|
73
|
-
h = {}
|
74
|
-
h[LogField::Storage] = storage unless storage.nil?
|
75
|
-
h[LogField::FileId] = file_id unless file_id.nil?
|
52
|
+
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
53
|
+
def to_h
|
54
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
55
|
+
h[LogField::Storage] = storage
|
56
|
+
h[LogField::FileId] = file_id
|
76
57
|
h[LogField::Uploader] = uploader unless uploader.nil?
|
77
58
|
h[LogField::Model] = model unless model.nil?
|
78
59
|
h[LogField::MountPoint] = mount_point unless mount_point.nil?
|
79
|
-
h
|
80
|
-
|
81
|
-
|
82
|
-
sig {
|
83
|
-
params(storage: T.untyped,
|
84
|
-
file_id: T.untyped,
|
85
|
-
uploader: T.untyped,
|
86
|
-
model: T.untyped,
|
87
|
-
mount_point: T.untyped,
|
88
|
-
filename: T.untyped,
|
89
|
-
mime_type: T.untyped,
|
90
|
-
size: T.untyped,
|
91
|
-
metadata: T.untyped,
|
92
|
-
duration_ms: T.untyped,
|
93
|
-
additional_data: T.untyped,
|
94
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
95
|
-
}
|
96
|
-
def self.build(storage:,
|
97
|
-
file_id:,
|
98
|
-
uploader: nil,
|
99
|
-
model: nil,
|
100
|
-
mount_point: nil,
|
101
|
-
filename: nil,
|
102
|
-
mime_type: nil,
|
103
|
-
size: nil,
|
104
|
-
metadata: nil,
|
105
|
-
duration_ms: nil,
|
106
|
-
additional_data: nil,
|
107
|
-
timestamp: Time.now)
|
108
|
-
h = base_hash(storage: storage,
|
109
|
-
file_id: file_id,
|
110
|
-
uploader: uploader,
|
111
|
-
model: model,
|
112
|
-
mount_point: mount_point)
|
60
|
+
h[LogField::Version] = version unless version.nil?
|
61
|
+
h[LogField::StorePath] = store_path unless store_path.nil?
|
62
|
+
h[LogField::Extension] = extension unless extension.nil?
|
113
63
|
h[LogField::Filename] = filename unless filename.nil?
|
114
64
|
h[LogField::MimeType] = mime_type unless mime_type.nil?
|
115
65
|
h[LogField::Size] = size unless size.nil?
|
@@ -117,24 +67,6 @@ module LogStruct
|
|
117
67
|
h[LogField::DurationMs] = duration_ms unless duration_ms.nil?
|
118
68
|
h
|
119
69
|
end
|
120
|
-
|
121
|
-
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
122
|
-
def to_h
|
123
|
-
self.class.build(
|
124
|
-
storage: storage,
|
125
|
-
file_id: file_id,
|
126
|
-
uploader: uploader,
|
127
|
-
model: model,
|
128
|
-
mount_point: mount_point,
|
129
|
-
filename: filename,
|
130
|
-
mime_type: mime_type,
|
131
|
-
size: size,
|
132
|
-
metadata: metadata,
|
133
|
-
duration_ms: duration_ms,
|
134
|
-
additional_data: additional_data,
|
135
|
-
timestamp: timestamp
|
136
|
-
)
|
137
|
-
end
|
138
70
|
end
|
139
71
|
end
|
140
72
|
end
|
@@ -15,19 +15,25 @@ module LogStruct
|
|
15
15
|
class CarrierWave
|
16
16
|
class BaseFields < T::Struct
|
17
17
|
extend T::Sig
|
18
|
-
const :storage,
|
18
|
+
const :storage, Symbol
|
19
19
|
const :file_id, String
|
20
20
|
const :uploader, T.nilable(String), default: nil
|
21
21
|
const :model, T.nilable(String), default: nil
|
22
22
|
const :mount_point, T.nilable(String), default: nil
|
23
|
+
const :version, T.nilable(String), default: nil
|
24
|
+
const :store_path, T.nilable(String), default: nil
|
25
|
+
const :extension, T.nilable(String), default: nil
|
23
26
|
|
24
27
|
Kwargs = T.type_alias do
|
25
28
|
{
|
26
|
-
storage:
|
29
|
+
storage: Symbol,
|
27
30
|
file_id: String,
|
28
31
|
uploader: T.nilable(String),
|
29
32
|
model: T.nilable(String),
|
30
|
-
mount_point: T.nilable(String)
|
33
|
+
mount_point: T.nilable(String),
|
34
|
+
version: T.nilable(String),
|
35
|
+
store_path: T.nilable(String),
|
36
|
+
extension: T.nilable(String)
|
31
37
|
}
|
32
38
|
end
|
33
39
|
|
@@ -38,7 +44,10 @@ module LogStruct
|
|
38
44
|
file_id: file_id,
|
39
45
|
uploader: uploader,
|
40
46
|
model: model,
|
41
|
-
mount_point: mount_point
|
47
|
+
mount_point: mount_point,
|
48
|
+
version: version,
|
49
|
+
store_path: store_path,
|
50
|
+
extension: extension
|
42
51
|
}
|
43
52
|
end
|
44
53
|
end
|
@@ -9,9 +9,9 @@
|
|
9
9
|
require "log_struct/shared/interfaces/common_fields"
|
10
10
|
require "log_struct/shared/interfaces/additional_data_field"
|
11
11
|
require "log_struct/shared/interfaces/request_fields"
|
12
|
-
require "log_struct/shared/
|
13
|
-
require "log_struct/shared/
|
14
|
-
require "log_struct/shared/
|
12
|
+
require "log_struct/shared/serialize_common"
|
13
|
+
require "log_struct/shared/merge_additional_data_fields"
|
14
|
+
require "log_struct/shared/add_request_fields"
|
15
15
|
require_relative "../../enums/source"
|
16
16
|
require_relative "../../enums/event"
|
17
17
|
require_relative "../../enums/level"
|
@@ -21,11 +21,6 @@ module LogStruct
|
|
21
21
|
module Log
|
22
22
|
class Dotenv
|
23
23
|
class Load < T::Struct
|
24
|
-
# typed: strict
|
25
|
-
# frozen_string_literal: true
|
26
|
-
|
27
|
-
extend T::Sig
|
28
|
-
|
29
24
|
extend T::Sig
|
30
25
|
|
31
26
|
# Shared/common fields
|
@@ -37,39 +32,16 @@ module LogStruct
|
|
37
32
|
# Event-specific fields
|
38
33
|
const :file, String
|
39
34
|
|
40
|
-
# Additional data
|
41
|
-
|
42
|
-
# Request fields (optional)
|
43
|
-
|
44
35
|
# Serialize shared fields
|
45
36
|
include LogStruct::Log::Interfaces::CommonFields
|
46
37
|
include LogStruct::Log::Shared::SerializeCommon
|
47
38
|
|
48
39
|
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
49
|
-
def
|
50
|
-
{}
|
51
|
-
end
|
52
|
-
|
53
|
-
sig {
|
54
|
-
params(file: T.untyped,
|
55
|
-
additional_data: T.untyped,
|
56
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
57
|
-
}
|
58
|
-
def self.build(file:,
|
59
|
-
additional_data: nil,
|
60
|
-
timestamp: Time.now)
|
61
|
-
h = base_hash
|
40
|
+
def to_h
|
41
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
62
42
|
h[LogField::File] = file
|
63
43
|
h
|
64
44
|
end
|
65
|
-
|
66
|
-
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
67
|
-
def to_h
|
68
|
-
self.class.build(
|
69
|
-
file: file,
|
70
|
-
timestamp: timestamp
|
71
|
-
)
|
72
|
-
end
|
73
45
|
end
|
74
46
|
end
|
75
47
|
end
|
@@ -9,9 +9,9 @@
|
|
9
9
|
require "log_struct/shared/interfaces/common_fields"
|
10
10
|
require "log_struct/shared/interfaces/additional_data_field"
|
11
11
|
require "log_struct/shared/interfaces/request_fields"
|
12
|
-
require "log_struct/shared/
|
13
|
-
require "log_struct/shared/
|
14
|
-
require "log_struct/shared/
|
12
|
+
require "log_struct/shared/serialize_common"
|
13
|
+
require "log_struct/shared/merge_additional_data_fields"
|
14
|
+
require "log_struct/shared/add_request_fields"
|
15
15
|
require_relative "../../enums/source"
|
16
16
|
require_relative "../../enums/event"
|
17
17
|
require_relative "../../enums/level"
|
@@ -21,11 +21,6 @@ module LogStruct
|
|
21
21
|
module Log
|
22
22
|
class Dotenv
|
23
23
|
class Restore < T::Struct
|
24
|
-
# typed: strict
|
25
|
-
# frozen_string_literal: true
|
26
|
-
|
27
|
-
extend T::Sig
|
28
|
-
|
29
24
|
extend T::Sig
|
30
25
|
|
31
26
|
# Shared/common fields
|
@@ -37,39 +32,16 @@ module LogStruct
|
|
37
32
|
# Event-specific fields
|
38
33
|
const :vars, T::Array[String]
|
39
34
|
|
40
|
-
# Additional data
|
41
|
-
|
42
|
-
# Request fields (optional)
|
43
|
-
|
44
35
|
# Serialize shared fields
|
45
36
|
include LogStruct::Log::Interfaces::CommonFields
|
46
37
|
include LogStruct::Log::Shared::SerializeCommon
|
47
38
|
|
48
39
|
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
49
|
-
def
|
50
|
-
{}
|
51
|
-
end
|
52
|
-
|
53
|
-
sig {
|
54
|
-
params(vars: T.untyped,
|
55
|
-
additional_data: T.untyped,
|
56
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
57
|
-
}
|
58
|
-
def self.build(vars:,
|
59
|
-
additional_data: nil,
|
60
|
-
timestamp: Time.now)
|
61
|
-
h = base_hash
|
40
|
+
def to_h
|
41
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
62
42
|
h[LogField::Vars] = vars
|
63
43
|
h
|
64
44
|
end
|
65
|
-
|
66
|
-
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
67
|
-
def to_h
|
68
|
-
self.class.build(
|
69
|
-
vars: vars,
|
70
|
-
timestamp: timestamp
|
71
|
-
)
|
72
|
-
end
|
73
45
|
end
|
74
46
|
end
|
75
47
|
end
|
@@ -9,9 +9,9 @@
|
|
9
9
|
require "log_struct/shared/interfaces/common_fields"
|
10
10
|
require "log_struct/shared/interfaces/additional_data_field"
|
11
11
|
require "log_struct/shared/interfaces/request_fields"
|
12
|
-
require "log_struct/shared/
|
13
|
-
require "log_struct/shared/
|
14
|
-
require "log_struct/shared/
|
12
|
+
require "log_struct/shared/serialize_common"
|
13
|
+
require "log_struct/shared/merge_additional_data_fields"
|
14
|
+
require "log_struct/shared/add_request_fields"
|
15
15
|
require_relative "../../enums/source"
|
16
16
|
require_relative "../../enums/event"
|
17
17
|
require_relative "../../enums/level"
|
@@ -21,11 +21,6 @@ module LogStruct
|
|
21
21
|
module Log
|
22
22
|
class Dotenv
|
23
23
|
class Save < T::Struct
|
24
|
-
# typed: strict
|
25
|
-
# frozen_string_literal: true
|
26
|
-
|
27
|
-
extend T::Sig
|
28
|
-
|
29
24
|
extend T::Sig
|
30
25
|
|
31
26
|
# Shared/common fields
|
@@ -37,39 +32,16 @@ module LogStruct
|
|
37
32
|
# Event-specific fields
|
38
33
|
const :snapshot, T::Boolean
|
39
34
|
|
40
|
-
# Additional data
|
41
|
-
|
42
|
-
# Request fields (optional)
|
43
|
-
|
44
35
|
# Serialize shared fields
|
45
36
|
include LogStruct::Log::Interfaces::CommonFields
|
46
37
|
include LogStruct::Log::Shared::SerializeCommon
|
47
38
|
|
48
39
|
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
49
|
-
def
|
50
|
-
{}
|
51
|
-
end
|
52
|
-
|
53
|
-
sig {
|
54
|
-
params(snapshot: T.untyped,
|
55
|
-
additional_data: T.untyped,
|
56
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
57
|
-
}
|
58
|
-
def self.build(snapshot:,
|
59
|
-
additional_data: nil,
|
60
|
-
timestamp: Time.now)
|
61
|
-
h = base_hash
|
40
|
+
def to_h
|
41
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
62
42
|
h[LogField::Snapshot] = snapshot
|
63
43
|
h
|
64
44
|
end
|
65
|
-
|
66
|
-
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
67
|
-
def to_h
|
68
|
-
self.class.build(
|
69
|
-
snapshot: snapshot,
|
70
|
-
timestamp: timestamp
|
71
|
-
)
|
72
|
-
end
|
73
45
|
end
|
74
46
|
end
|
75
47
|
end
|