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 ActiveStorage
|
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,7 +29,7 @@ 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
|
|
40
35
|
# Event-specific fields
|
@@ -42,61 +37,20 @@ module LogStruct
|
|
42
37
|
const :range, T.nilable(String), default: nil
|
43
38
|
const :duration_ms, T.nilable(Float), default: nil
|
44
39
|
|
45
|
-
# Additional data
|
46
|
-
|
47
|
-
# Request fields (optional)
|
48
|
-
|
49
40
|
# Serialize shared fields
|
50
41
|
include LogStruct::Log::Interfaces::CommonFields
|
51
42
|
include LogStruct::Log::Shared::SerializeCommon
|
52
43
|
|
53
|
-
sig {
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
file_id: nil)
|
59
|
-
h = {}
|
60
|
-
h[LogField::Storage] = storage unless storage.nil?
|
61
|
-
h[LogField::FileId] = file_id unless file_id.nil?
|
62
|
-
h
|
63
|
-
end
|
64
|
-
|
65
|
-
sig {
|
66
|
-
params(storage: T.untyped,
|
67
|
-
file_id: T.untyped,
|
68
|
-
filename: T.untyped,
|
69
|
-
range: T.untyped,
|
70
|
-
duration_ms: T.untyped,
|
71
|
-
additional_data: T.untyped,
|
72
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
73
|
-
}
|
74
|
-
def self.build(storage:,
|
75
|
-
file_id:,
|
76
|
-
filename: nil,
|
77
|
-
range: nil,
|
78
|
-
duration_ms: nil,
|
79
|
-
additional_data: nil,
|
80
|
-
timestamp: Time.now)
|
81
|
-
h = base_hash(storage: storage,
|
82
|
-
file_id: file_id)
|
44
|
+
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
45
|
+
def to_h
|
46
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
47
|
+
h[LogField::Storage] = storage
|
48
|
+
h[LogField::FileId] = file_id
|
83
49
|
h[LogField::Filename] = filename unless filename.nil?
|
84
50
|
h[LogField::Range] = range unless range.nil?
|
85
51
|
h[LogField::DurationMs] = duration_ms unless duration_ms.nil?
|
86
52
|
h
|
87
53
|
end
|
88
|
-
|
89
|
-
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
90
|
-
def to_h
|
91
|
-
self.class.build(
|
92
|
-
storage: storage,
|
93
|
-
file_id: file_id,
|
94
|
-
filename: filename,
|
95
|
-
range: range,
|
96
|
-
duration_ms: duration_ms,
|
97
|
-
timestamp: timestamp
|
98
|
-
)
|
99
|
-
end
|
100
54
|
end
|
101
55
|
end
|
102
56
|
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 ActiveStorage
|
23
23
|
class Exist < 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,58 +29,23 @@ 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
|
|
40
35
|
# Event-specific fields
|
41
36
|
const :exist, T.nilable(T::Boolean), default: nil
|
42
37
|
|
43
|
-
# Additional data
|
44
|
-
|
45
|
-
# Request fields (optional)
|
46
|
-
|
47
38
|
# Serialize shared fields
|
48
39
|
include LogStruct::Log::Interfaces::CommonFields
|
49
40
|
include LogStruct::Log::Shared::SerializeCommon
|
50
41
|
|
51
|
-
sig {
|
52
|
-
params(storage: T.untyped,
|
53
|
-
file_id: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
54
|
-
}
|
55
|
-
def self.base_hash(storage: nil,
|
56
|
-
file_id: nil)
|
57
|
-
h = {}
|
58
|
-
h[LogField::Storage] = storage unless storage.nil?
|
59
|
-
h[LogField::FileId] = file_id unless file_id.nil?
|
60
|
-
h
|
61
|
-
end
|
62
|
-
|
63
|
-
sig {
|
64
|
-
params(storage: T.untyped,
|
65
|
-
file_id: T.untyped,
|
66
|
-
exist: T.untyped,
|
67
|
-
additional_data: T.untyped,
|
68
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
69
|
-
}
|
70
|
-
def self.build(storage:,
|
71
|
-
file_id:,
|
72
|
-
exist: nil,
|
73
|
-
additional_data: nil,
|
74
|
-
timestamp: Time.now)
|
75
|
-
h = base_hash(storage: storage,
|
76
|
-
file_id: file_id)
|
77
|
-
h[LogField::Exist] = exist unless exist.nil?
|
78
|
-
h
|
79
|
-
end
|
80
|
-
|
81
42
|
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
82
43
|
def to_h
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
)
|
44
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
45
|
+
h[LogField::Storage] = storage
|
46
|
+
h[LogField::FileId] = file_id
|
47
|
+
h[LogField::Exist] = exist unless exist.nil?
|
48
|
+
h
|
89
49
|
end
|
90
50
|
end
|
91
51
|
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 ActiveStorage
|
23
23
|
class Metadata < 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,58 +29,23 @@ 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
|
|
40
35
|
# Event-specific fields
|
41
36
|
const :metadata, T.nilable(T::Hash[String, T.untyped]), default: nil
|
42
37
|
|
43
|
-
# Additional data
|
44
|
-
|
45
|
-
# Request fields (optional)
|
46
|
-
|
47
38
|
# Serialize shared fields
|
48
39
|
include LogStruct::Log::Interfaces::CommonFields
|
49
40
|
include LogStruct::Log::Shared::SerializeCommon
|
50
41
|
|
51
|
-
sig {
|
52
|
-
params(storage: T.untyped,
|
53
|
-
file_id: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
54
|
-
}
|
55
|
-
def self.base_hash(storage: nil,
|
56
|
-
file_id: nil)
|
57
|
-
h = {}
|
58
|
-
h[LogField::Storage] = storage unless storage.nil?
|
59
|
-
h[LogField::FileId] = file_id unless file_id.nil?
|
60
|
-
h
|
61
|
-
end
|
62
|
-
|
63
|
-
sig {
|
64
|
-
params(storage: T.untyped,
|
65
|
-
file_id: T.untyped,
|
66
|
-
metadata: T.untyped,
|
67
|
-
additional_data: T.untyped,
|
68
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
69
|
-
}
|
70
|
-
def self.build(storage:,
|
71
|
-
file_id:,
|
72
|
-
metadata: nil,
|
73
|
-
additional_data: nil,
|
74
|
-
timestamp: Time.now)
|
75
|
-
h = base_hash(storage: storage,
|
76
|
-
file_id: file_id)
|
77
|
-
h[LogField::Metadata] = metadata unless metadata.nil?
|
78
|
-
h
|
79
|
-
end
|
80
|
-
|
81
42
|
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
82
43
|
def to_h
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
)
|
44
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
45
|
+
h[LogField::Storage] = storage
|
46
|
+
h[LogField::FileId] = file_id
|
47
|
+
h[LogField::Metadata] = metadata unless metadata.nil?
|
48
|
+
h
|
89
49
|
end
|
90
50
|
end
|
91
51
|
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 ActiveStorage
|
23
23
|
class Stream < 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,58 +29,23 @@ 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
|
|
40
35
|
# Event-specific fields
|
41
36
|
const :prefix, T.nilable(String), default: nil
|
42
37
|
|
43
|
-
# Additional data
|
44
|
-
|
45
|
-
# Request fields (optional)
|
46
|
-
|
47
38
|
# Serialize shared fields
|
48
39
|
include LogStruct::Log::Interfaces::CommonFields
|
49
40
|
include LogStruct::Log::Shared::SerializeCommon
|
50
41
|
|
51
|
-
sig {
|
52
|
-
params(storage: T.untyped,
|
53
|
-
file_id: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
54
|
-
}
|
55
|
-
def self.base_hash(storage: nil,
|
56
|
-
file_id: nil)
|
57
|
-
h = {}
|
58
|
-
h[LogField::Storage] = storage unless storage.nil?
|
59
|
-
h[LogField::FileId] = file_id unless file_id.nil?
|
60
|
-
h
|
61
|
-
end
|
62
|
-
|
63
|
-
sig {
|
64
|
-
params(storage: T.untyped,
|
65
|
-
file_id: T.untyped,
|
66
|
-
prefix: T.untyped,
|
67
|
-
additional_data: T.untyped,
|
68
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
69
|
-
}
|
70
|
-
def self.build(storage:,
|
71
|
-
file_id:,
|
72
|
-
prefix: nil,
|
73
|
-
additional_data: nil,
|
74
|
-
timestamp: Time.now)
|
75
|
-
h = base_hash(storage: storage,
|
76
|
-
file_id: file_id)
|
77
|
-
h[LogField::Prefix] = prefix unless prefix.nil?
|
78
|
-
h
|
79
|
-
end
|
80
|
-
|
81
42
|
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
82
43
|
def to_h
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
)
|
44
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
45
|
+
h[LogField::Storage] = storage
|
46
|
+
h[LogField::FileId] = file_id
|
47
|
+
h[LogField::Prefix] = prefix unless prefix.nil?
|
48
|
+
h
|
89
49
|
end
|
90
50
|
end
|
91
51
|
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 ActiveStorage
|
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,7 +29,7 @@ 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
|
|
40
35
|
# Event-specific fields
|
@@ -45,50 +40,15 @@ module LogStruct
|
|
45
40
|
const :duration_ms, T.nilable(Float), default: nil
|
46
41
|
const :checksum, T.nilable(String), default: nil
|
47
42
|
|
48
|
-
# Additional data
|
49
|
-
|
50
|
-
# Request fields (optional)
|
51
|
-
|
52
43
|
# Serialize shared fields
|
53
44
|
include LogStruct::Log::Interfaces::CommonFields
|
54
45
|
include LogStruct::Log::Shared::SerializeCommon
|
55
46
|
|
56
|
-
sig {
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
file_id: nil)
|
62
|
-
h = {}
|
63
|
-
h[LogField::Storage] = storage unless storage.nil?
|
64
|
-
h[LogField::FileId] = file_id unless file_id.nil?
|
65
|
-
h
|
66
|
-
end
|
67
|
-
|
68
|
-
sig {
|
69
|
-
params(storage: T.untyped,
|
70
|
-
file_id: T.untyped,
|
71
|
-
filename: T.untyped,
|
72
|
-
mime_type: T.untyped,
|
73
|
-
size: T.untyped,
|
74
|
-
metadata: T.untyped,
|
75
|
-
duration_ms: T.untyped,
|
76
|
-
checksum: T.untyped,
|
77
|
-
additional_data: T.untyped,
|
78
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
79
|
-
}
|
80
|
-
def self.build(storage:,
|
81
|
-
file_id:,
|
82
|
-
filename: nil,
|
83
|
-
mime_type: nil,
|
84
|
-
size: nil,
|
85
|
-
metadata: nil,
|
86
|
-
duration_ms: nil,
|
87
|
-
checksum: nil,
|
88
|
-
additional_data: nil,
|
89
|
-
timestamp: Time.now)
|
90
|
-
h = base_hash(storage: storage,
|
91
|
-
file_id: file_id)
|
47
|
+
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
48
|
+
def to_h
|
49
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
50
|
+
h[LogField::Storage] = storage
|
51
|
+
h[LogField::FileId] = file_id
|
92
52
|
h[LogField::Filename] = filename unless filename.nil?
|
93
53
|
h[LogField::MimeType] = mime_type unless mime_type.nil?
|
94
54
|
h[LogField::Size] = size unless size.nil?
|
@@ -97,21 +57,6 @@ module LogStruct
|
|
97
57
|
h[LogField::Checksum] = checksum unless checksum.nil?
|
98
58
|
h
|
99
59
|
end
|
100
|
-
|
101
|
-
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
102
|
-
def to_h
|
103
|
-
self.class.build(
|
104
|
-
storage: storage,
|
105
|
-
file_id: file_id,
|
106
|
-
filename: filename,
|
107
|
-
mime_type: mime_type,
|
108
|
-
size: size,
|
109
|
-
metadata: metadata,
|
110
|
-
duration_ms: duration_ms,
|
111
|
-
checksum: checksum,
|
112
|
-
timestamp: timestamp
|
113
|
-
)
|
114
|
-
end
|
115
60
|
end
|
116
61
|
end
|
117
62
|
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 ActiveStorage
|
23
23
|
class Url < 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,58 +29,23 @@ 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
|
|
40
35
|
# Event-specific fields
|
41
36
|
const :url, String
|
42
37
|
|
43
|
-
# Additional data
|
44
|
-
|
45
|
-
# Request fields (optional)
|
46
|
-
|
47
38
|
# Serialize shared fields
|
48
39
|
include LogStruct::Log::Interfaces::CommonFields
|
49
40
|
include LogStruct::Log::Shared::SerializeCommon
|
50
41
|
|
51
|
-
sig {
|
52
|
-
params(storage: T.untyped,
|
53
|
-
file_id: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
54
|
-
}
|
55
|
-
def self.base_hash(storage: nil,
|
56
|
-
file_id: nil)
|
57
|
-
h = {}
|
58
|
-
h[LogField::Storage] = storage unless storage.nil?
|
59
|
-
h[LogField::FileId] = file_id unless file_id.nil?
|
60
|
-
h
|
61
|
-
end
|
62
|
-
|
63
|
-
sig {
|
64
|
-
params(url: T.untyped,
|
65
|
-
storage: T.untyped,
|
66
|
-
file_id: T.untyped,
|
67
|
-
additional_data: T.untyped,
|
68
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
69
|
-
}
|
70
|
-
def self.build(url:,
|
71
|
-
storage:,
|
72
|
-
file_id:,
|
73
|
-
additional_data: nil,
|
74
|
-
timestamp: Time.now)
|
75
|
-
h = base_hash(storage: storage,
|
76
|
-
file_id: file_id)
|
77
|
-
h[LogField::Url] = url
|
78
|
-
h
|
79
|
-
end
|
80
|
-
|
81
42
|
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
82
43
|
def to_h
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
)
|
44
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
45
|
+
h[LogField::Storage] = storage
|
46
|
+
h[LogField::FileId] = file_id
|
47
|
+
h[LogField::Url] = url
|
48
|
+
h
|
89
49
|
end
|
90
50
|
end
|
91
51
|
end
|
@@ -19,12 +19,12 @@ module LogStruct
|
|
19
19
|
class ActiveStorage
|
20
20
|
class BaseFields < T::Struct
|
21
21
|
extend T::Sig
|
22
|
-
const :storage,
|
22
|
+
const :storage, Symbol
|
23
23
|
const :file_id, String
|
24
24
|
|
25
25
|
Kwargs = T.type_alias do
|
26
26
|
{
|
27
|
-
storage:
|
27
|
+
storage: Symbol,
|
28
28
|
file_id: String
|
29
29
|
}
|
30
30
|
end
|
data/lib/log_struct/log/ahoy.rb
CHANGED
@@ -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"
|
@@ -20,11 +20,6 @@ require_relative "../enums/log_field"
|
|
20
20
|
module LogStruct
|
21
21
|
module Log
|
22
22
|
class Ahoy < T::Struct
|
23
|
-
# typed: strict
|
24
|
-
# frozen_string_literal: true
|
25
|
-
|
26
|
-
extend T::Sig
|
27
|
-
|
28
23
|
extend T::Sig
|
29
24
|
|
30
25
|
# Shared/common fields
|
@@ -38,51 +33,18 @@ module LogStruct
|
|
38
33
|
const :ahoy_event, String
|
39
34
|
const :properties, T.nilable(T::Hash[Symbol, T.untyped]), default: nil
|
40
35
|
|
41
|
-
# Additional data
|
42
|
-
include LogStruct::Log::Interfaces::AdditionalDataField
|
43
|
-
const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil
|
44
|
-
include LogStruct::Log::Shared::MergeAdditionalDataFields
|
45
|
-
|
46
|
-
# Request fields (optional)
|
47
|
-
|
48
36
|
# Serialize shared fields
|
49
37
|
include LogStruct::Log::Interfaces::CommonFields
|
50
38
|
include LogStruct::Log::Shared::SerializeCommon
|
51
39
|
|
52
40
|
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
53
|
-
def
|
54
|
-
{}
|
55
|
-
end
|
56
|
-
|
57
|
-
sig {
|
58
|
-
params(message: T.untyped,
|
59
|
-
ahoy_event: T.untyped,
|
60
|
-
properties: T.untyped,
|
61
|
-
additional_data: T.untyped,
|
62
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
63
|
-
}
|
64
|
-
def self.build(message:,
|
65
|
-
ahoy_event:,
|
66
|
-
properties: nil,
|
67
|
-
additional_data: nil,
|
68
|
-
timestamp: Time.now)
|
69
|
-
h = base_hash
|
41
|
+
def to_h
|
42
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
70
43
|
h[LogField::Message] = message
|
71
44
|
h[LogField::AhoyEvent] = ahoy_event
|
72
45
|
h[LogField::Properties] = properties unless properties.nil?
|
73
46
|
h
|
74
47
|
end
|
75
|
-
|
76
|
-
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
77
|
-
def to_h
|
78
|
-
self.class.build(
|
79
|
-
message: message,
|
80
|
-
ahoy_event: ahoy_event,
|
81
|
-
properties: properties,
|
82
|
-
additional_data: additional_data,
|
83
|
-
timestamp: timestamp
|
84
|
-
)
|
85
|
-
end
|
86
48
|
end
|
87
49
|
end
|
88
50
|
end
|