logstruct 0.1.2 → 0.1.4

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 (91) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -1
  3. data/README.md +4 -6
  4. data/lib/log_struct/concerns/configuration.rb +2 -2
  5. data/lib/log_struct/config_struct/integrations.rb +5 -0
  6. data/lib/log_struct/enums/log_field.rb +12 -1
  7. data/lib/log_struct/integrations/action_mailer/error_handling.rb +121 -27
  8. data/lib/log_struct/integrations/action_mailer/event_logging.rb +30 -14
  9. data/lib/log_struct/integrations/action_mailer/metadata_collection.rb +18 -24
  10. data/lib/log_struct/integrations/action_mailer.rb +13 -6
  11. data/lib/log_struct/integrations/active_job/log_subscriber.rb +2 -2
  12. data/lib/log_struct/integrations/active_storage.rb +8 -8
  13. data/lib/log_struct/integrations/ahoy.rb +2 -3
  14. data/lib/log_struct/integrations/carrierwave.rb +8 -10
  15. data/lib/log_struct/integrations/good_job/log_subscriber.rb +5 -5
  16. data/lib/log_struct/integrations/good_job/logger.rb +2 -6
  17. data/lib/log_struct/integrations/good_job.rb +1 -1
  18. data/lib/log_struct/integrations/host_authorization.rb +27 -36
  19. data/lib/log_struct/integrations/lograge.rb +1 -1
  20. data/lib/log_struct/integrations/rack_error_handler/middleware.rb +54 -16
  21. data/lib/log_struct/integrations/rack_error_handler.rb +3 -3
  22. data/lib/log_struct/integrations/shrine.rb +21 -24
  23. data/lib/log_struct/integrations/sidekiq/logger.rb +8 -1
  24. data/lib/log_struct/integrations.rb +25 -5
  25. data/lib/log_struct/log/action_mailer/delivered.rb +14 -49
  26. data/lib/log_struct/log/action_mailer/delivery.rb +14 -49
  27. data/lib/log_struct/log/action_mailer/error.rb +72 -0
  28. data/lib/log_struct/log/action_mailer.rb +15 -2
  29. data/lib/log_struct/log/active_job/enqueue.rb +9 -73
  30. data/lib/log_struct/log/active_job/finish.rb +9 -76
  31. data/lib/log_struct/log/active_job/schedule.rb +9 -73
  32. data/lib/log_struct/log/active_job/start.rb +9 -76
  33. data/lib/log_struct/log/active_job.rb +2 -2
  34. data/lib/log_struct/log/active_model_serializers.rb +5 -45
  35. data/lib/log_struct/log/active_storage/delete.rb +8 -46
  36. data/lib/log_struct/log/active_storage/download.rb +9 -55
  37. data/lib/log_struct/log/active_storage/exist.rb +9 -49
  38. data/lib/log_struct/log/active_storage/metadata.rb +9 -49
  39. data/lib/log_struct/log/active_storage/stream.rb +9 -49
  40. data/lib/log_struct/log/active_storage/upload.rb +9 -64
  41. data/lib/log_struct/log/active_storage/url.rb +9 -49
  42. data/lib/log_struct/log/active_storage.rb +2 -2
  43. data/lib/log_struct/log/ahoy.rb +5 -43
  44. data/lib/log_struct/log/carrierwave/delete.rb +15 -69
  45. data/lib/log_struct/log/carrierwave/download.rb +15 -77
  46. data/lib/log_struct/log/carrierwave/upload.rb +15 -83
  47. data/lib/log_struct/log/carrierwave.rb +13 -4
  48. data/lib/log_struct/log/dotenv/load.rb +5 -33
  49. data/lib/log_struct/log/dotenv/restore.rb +5 -33
  50. data/lib/log_struct/log/dotenv/save.rb +5 -33
  51. data/lib/log_struct/log/dotenv/update.rb +5 -33
  52. data/lib/log_struct/log/error.rb +7 -40
  53. data/lib/log_struct/log/good_job/enqueue.rb +9 -72
  54. data/lib/log_struct/log/good_job/error.rb +9 -89
  55. data/lib/log_struct/log/good_job/finish.rb +9 -78
  56. data/lib/log_struct/log/good_job/log.rb +11 -75
  57. data/lib/log_struct/log/good_job/schedule.rb +7 -78
  58. data/lib/log_struct/log/good_job/start.rb +7 -78
  59. data/lib/log_struct/log/good_job.rb +2 -2
  60. data/lib/log_struct/log/plain.rb +5 -32
  61. data/lib/log_struct/log/puma/shutdown.rb +5 -32
  62. data/lib/log_struct/log/puma/start.rb +5 -56
  63. data/lib/log_struct/log/request.rb +7 -90
  64. data/lib/log_struct/log/security/blocked_host.rb +12 -73
  65. data/lib/log_struct/log/security/csrf_violation.rb +6 -67
  66. data/lib/log_struct/log/security/ip_spoof.rb +6 -73
  67. data/lib/log_struct/log/shrine/delete.rb +6 -41
  68. data/lib/log_struct/log/shrine/download.rb +6 -44
  69. data/lib/log_struct/log/shrine/exist.rb +6 -44
  70. data/lib/log_struct/log/shrine/metadata.rb +8 -46
  71. data/lib/log_struct/log/shrine/upload.rb +6 -53
  72. data/lib/log_struct/log/sidekiq.rb +5 -42
  73. data/lib/log_struct/log/sql.rb +5 -65
  74. data/lib/log_struct/log.rb +2 -2
  75. data/lib/log_struct/monkey_patches/active_support/tagged_logging/formatter.rb +12 -1
  76. data/lib/log_struct/railtie.rb +11 -24
  77. data/lib/log_struct/semantic_logger/concerns/log_methods.rb +100 -0
  78. data/lib/log_struct/semantic_logger/logger.rb +46 -15
  79. data/lib/log_struct/semantic_logger/setup.rb +11 -7
  80. data/lib/log_struct/shared/{shared/add_request_fields.rb → add_request_fields.rb} +2 -2
  81. data/lib/log_struct/shared/{shared/merge_additional_data_fields.rb → merge_additional_data_fields.rb} +1 -1
  82. data/lib/log_struct/shared/{shared/serialize_common.rb → serialize_common.rb} +9 -3
  83. data/lib/log_struct/{log/shared → shared}/serialize_common_public.rb +2 -2
  84. data/lib/log_struct/version.rb +1 -1
  85. data/lib/log_struct.rb +4 -1
  86. data/logstruct.gemspec +1 -1
  87. metadata +9 -11
  88. data/lib/log_struct/integrations/action_mailer/callbacks.rb +0 -100
  89. data/lib/log_struct/log/shared/add_request_fields.rb +0 -4
  90. data/lib/log_struct/log/shared/merge_additional_data_fields.rb +0 -4
  91. 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/shared/serialize_common"
13
- require "log_struct/shared/shared/merge_additional_data_fields"
14
- require "log_struct/shared/shared/add_request_fields"
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 GoodJob
23
23
  class Finish < 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
@@ -36,7 +31,7 @@ module LogStruct
36
31
 
37
32
  const :job_id, T.nilable(String), default: nil
38
33
  const :job_class, T.nilable(String), default: nil
39
- const :queue_name, T.nilable(String), default: nil
34
+ const :queue_name, T.nilable(Symbol), default: nil
40
35
  const :arguments, T.nilable(T::Array[T.untyped]), default: nil
41
36
  const :executions, T.nilable(Integer), default: nil
42
37
 
@@ -45,91 +40,27 @@ module LogStruct
45
40
  const :finished_at, Time
46
41
  const :process_id, Integer
47
42
  const :thread_id, String
48
-
49
- # Additional data
50
- include LogStruct::Log::Interfaces::AdditionalDataField
51
- const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil
52
- include LogStruct::Log::Shared::MergeAdditionalDataFields
53
-
54
- # Request fields (optional)
43
+ const :result, T.nilable(String), default: nil
55
44
 
56
45
  # Serialize shared fields
57
46
  include LogStruct::Log::Interfaces::CommonFields
58
47
  include LogStruct::Log::Shared::SerializeCommon
59
48
 
60
- sig {
61
- params(job_id: T.untyped,
62
- job_class: T.untyped,
63
- queue_name: T.untyped,
64
- arguments: T.untyped,
65
- executions: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
66
- }
67
- def self.base_hash(job_id: nil,
68
- job_class: nil,
69
- queue_name: nil,
70
- arguments: nil,
71
- executions: nil)
72
- h = {}
49
+ sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
50
+ def to_h
51
+ h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
73
52
  h[LogField::JobId] = job_id unless job_id.nil?
74
53
  h[LogField::JobClass] = job_class unless job_class.nil?
75
54
  h[LogField::QueueName] = queue_name unless queue_name.nil?
76
55
  h[LogField::Arguments] = arguments unless arguments.nil?
77
56
  h[LogField::Executions] = executions unless executions.nil?
78
- h
79
- end
80
-
81
- sig {
82
- params(duration_ms: T.untyped,
83
- finished_at: T.untyped,
84
- process_id: T.untyped,
85
- thread_id: T.untyped,
86
- job_id: T.untyped,
87
- job_class: T.untyped,
88
- queue_name: T.untyped,
89
- arguments: T.untyped,
90
- executions: T.untyped,
91
- additional_data: T.untyped,
92
- timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
93
- }
94
- def self.build(duration_ms:,
95
- finished_at:,
96
- process_id:,
97
- thread_id:,
98
- job_id: nil,
99
- job_class: nil,
100
- queue_name: nil,
101
- arguments: nil,
102
- executions: nil,
103
- additional_data: nil,
104
- timestamp: Time.now)
105
- h = base_hash(job_id: job_id,
106
- job_class: job_class,
107
- queue_name: queue_name,
108
- arguments: arguments,
109
- executions: executions)
110
57
  h[LogField::DurationMs] = duration_ms
111
58
  h[LogField::FinishedAt] = finished_at
112
59
  h[LogField::ProcessId] = process_id
113
60
  h[LogField::ThreadId] = thread_id
61
+ h[LogField::Result] = result unless result.nil?
114
62
  h
115
63
  end
116
-
117
- sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
118
- def to_h
119
- self.class.build(
120
- job_id: job_id,
121
- job_class: job_class,
122
- queue_name: queue_name,
123
- arguments: arguments,
124
- executions: executions,
125
- duration_ms: duration_ms,
126
- finished_at: finished_at,
127
- process_id: process_id,
128
- thread_id: thread_id,
129
- additional_data: additional_data,
130
- timestamp: timestamp
131
- )
132
- end
133
64
  end
134
65
  end
135
66
  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/shared/serialize_common"
13
- require "log_struct/shared/shared/merge_additional_data_fields"
14
- require "log_struct/shared/shared/add_request_fields"
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 GoodJob
23
23
  class Log < 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
@@ -36,7 +31,7 @@ module LogStruct
36
31
 
37
32
  const :job_id, T.nilable(String), default: nil
38
33
  const :job_class, T.nilable(String), default: nil
39
- const :queue_name, T.nilable(String), default: nil
34
+ const :queue_name, T.nilable(Symbol), default: nil
40
35
  const :arguments, T.nilable(T::Array[T.untyped]), default: nil
41
36
  const :executions, T.nilable(Integer), default: nil
42
37
 
@@ -44,87 +39,28 @@ module LogStruct
44
39
  const :message, String
45
40
  const :process_id, Integer
46
41
  const :thread_id, String
47
-
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)
42
+ const :scheduled_at, T.nilable(Time), default: nil
43
+ const :priority, T.nilable(Integer), default: nil
54
44
 
55
45
  # Serialize shared fields
56
46
  include LogStruct::Log::Interfaces::CommonFields
57
47
  include LogStruct::Log::Shared::SerializeCommon
58
48
 
59
- sig {
60
- params(job_id: T.untyped,
61
- job_class: T.untyped,
62
- queue_name: T.untyped,
63
- arguments: T.untyped,
64
- executions: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
65
- }
66
- def self.base_hash(job_id: nil,
67
- job_class: nil,
68
- queue_name: nil,
69
- arguments: nil,
70
- executions: nil)
71
- h = {}
49
+ sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
50
+ def to_h
51
+ h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
72
52
  h[LogField::JobId] = job_id unless job_id.nil?
73
53
  h[LogField::JobClass] = job_class unless job_class.nil?
74
54
  h[LogField::QueueName] = queue_name unless queue_name.nil?
75
55
  h[LogField::Arguments] = arguments unless arguments.nil?
76
56
  h[LogField::Executions] = executions unless executions.nil?
77
- h
78
- end
79
-
80
- sig {
81
- params(message: T.untyped,
82
- process_id: T.untyped,
83
- thread_id: T.untyped,
84
- job_id: T.untyped,
85
- job_class: T.untyped,
86
- queue_name: T.untyped,
87
- arguments: T.untyped,
88
- executions: T.untyped,
89
- additional_data: T.untyped,
90
- timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
91
- }
92
- def self.build(message:,
93
- process_id:,
94
- thread_id:,
95
- job_id: nil,
96
- job_class: nil,
97
- queue_name: nil,
98
- arguments: nil,
99
- executions: nil,
100
- additional_data: nil,
101
- timestamp: Time.now)
102
- h = base_hash(job_id: job_id,
103
- job_class: job_class,
104
- queue_name: queue_name,
105
- arguments: arguments,
106
- executions: executions)
107
57
  h[LogField::Message] = message
108
58
  h[LogField::ProcessId] = process_id
109
59
  h[LogField::ThreadId] = thread_id
60
+ h[LogField::ScheduledAt] = scheduled_at unless scheduled_at.nil?
61
+ h[LogField::Priority] = priority unless priority.nil?
110
62
  h
111
63
  end
112
-
113
- sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
114
- def to_h
115
- self.class.build(
116
- job_id: job_id,
117
- job_class: job_class,
118
- queue_name: queue_name,
119
- arguments: arguments,
120
- executions: executions,
121
- message: message,
122
- process_id: process_id,
123
- thread_id: thread_id,
124
- additional_data: additional_data,
125
- timestamp: timestamp
126
- )
127
- end
128
64
  end
129
65
  end
130
66
  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/shared/serialize_common"
13
- require "log_struct/shared/shared/merge_additional_data_fields"
14
- require "log_struct/shared/shared/add_request_fields"
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 GoodJob
23
23
  class Schedule < 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
@@ -36,7 +31,7 @@ module LogStruct
36
31
 
37
32
  const :job_id, T.nilable(String), default: nil
38
33
  const :job_class, T.nilable(String), default: nil
39
- const :queue_name, T.nilable(String), default: nil
34
+ const :queue_name, T.nilable(Symbol), default: nil
40
35
  const :arguments, T.nilable(T::Array[T.untyped]), default: nil
41
36
  const :executions, T.nilable(Integer), default: nil
42
37
 
@@ -46,90 +41,24 @@ module LogStruct
46
41
  const :priority, T.nilable(Integer), default: nil
47
42
  const :cron_key, T.nilable(String), default: nil
48
43
 
49
- # Additional data
50
- include LogStruct::Log::Interfaces::AdditionalDataField
51
- const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil
52
- include LogStruct::Log::Shared::MergeAdditionalDataFields
53
-
54
- # Request fields (optional)
55
-
56
44
  # Serialize shared fields
57
45
  include LogStruct::Log::Interfaces::CommonFields
58
46
  include LogStruct::Log::Shared::SerializeCommon
59
47
 
60
- sig {
61
- params(job_id: T.untyped,
62
- job_class: T.untyped,
63
- queue_name: T.untyped,
64
- arguments: T.untyped,
65
- executions: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
66
- }
67
- def self.base_hash(job_id: nil,
68
- job_class: nil,
69
- queue_name: nil,
70
- arguments: nil,
71
- executions: nil)
72
- h = {}
48
+ sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
49
+ def to_h
50
+ h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
73
51
  h[LogField::JobId] = job_id unless job_id.nil?
74
52
  h[LogField::JobClass] = job_class unless job_class.nil?
75
53
  h[LogField::QueueName] = queue_name unless queue_name.nil?
76
54
  h[LogField::Arguments] = arguments unless arguments.nil?
77
55
  h[LogField::Executions] = executions unless executions.nil?
78
- h
79
- end
80
-
81
- sig {
82
- params(duration_ms: T.untyped,
83
- scheduled_at: T.untyped,
84
- job_id: T.untyped,
85
- job_class: T.untyped,
86
- queue_name: T.untyped,
87
- arguments: T.untyped,
88
- executions: T.untyped,
89
- priority: T.untyped,
90
- cron_key: T.untyped,
91
- additional_data: T.untyped,
92
- timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
93
- }
94
- def self.build(duration_ms:,
95
- scheduled_at:,
96
- job_id: nil,
97
- job_class: nil,
98
- queue_name: nil,
99
- arguments: nil,
100
- executions: nil,
101
- priority: nil,
102
- cron_key: nil,
103
- additional_data: nil,
104
- timestamp: Time.now)
105
- h = base_hash(job_id: job_id,
106
- job_class: job_class,
107
- queue_name: queue_name,
108
- arguments: arguments,
109
- executions: executions)
110
56
  h[LogField::DurationMs] = duration_ms
111
57
  h[LogField::ScheduledAt] = scheduled_at
112
58
  h[LogField::Priority] = priority unless priority.nil?
113
59
  h[LogField::CronKey] = cron_key unless cron_key.nil?
114
60
  h
115
61
  end
116
-
117
- sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
118
- def to_h
119
- self.class.build(
120
- job_id: job_id,
121
- job_class: job_class,
122
- queue_name: queue_name,
123
- arguments: arguments,
124
- executions: executions,
125
- duration_ms: duration_ms,
126
- scheduled_at: scheduled_at,
127
- priority: priority,
128
- cron_key: cron_key,
129
- additional_data: additional_data,
130
- timestamp: timestamp
131
- )
132
- end
133
62
  end
134
63
  end
135
64
  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/shared/serialize_common"
13
- require "log_struct/shared/shared/merge_additional_data_fields"
14
- require "log_struct/shared/shared/add_request_fields"
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 GoodJob
23
23
  class Start < 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
@@ -36,7 +31,7 @@ module LogStruct
36
31
 
37
32
  const :job_id, T.nilable(String), default: nil
38
33
  const :job_class, T.nilable(String), default: nil
39
- const :queue_name, T.nilable(String), default: nil
34
+ const :queue_name, T.nilable(Symbol), default: nil
40
35
  const :arguments, T.nilable(T::Array[T.untyped]), default: nil
41
36
  const :executions, T.nilable(Integer), default: nil
42
37
 
@@ -46,90 +41,24 @@ module LogStruct
46
41
  const :wait_ms, T.nilable(Float), default: nil
47
42
  const :scheduled_at, T.nilable(Time), default: nil
48
43
 
49
- # Additional data
50
- include LogStruct::Log::Interfaces::AdditionalDataField
51
- const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil
52
- include LogStruct::Log::Shared::MergeAdditionalDataFields
53
-
54
- # Request fields (optional)
55
-
56
44
  # Serialize shared fields
57
45
  include LogStruct::Log::Interfaces::CommonFields
58
46
  include LogStruct::Log::Shared::SerializeCommon
59
47
 
60
- sig {
61
- params(job_id: T.untyped,
62
- job_class: T.untyped,
63
- queue_name: T.untyped,
64
- arguments: T.untyped,
65
- executions: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
66
- }
67
- def self.base_hash(job_id: nil,
68
- job_class: nil,
69
- queue_name: nil,
70
- arguments: nil,
71
- executions: nil)
72
- h = {}
48
+ sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
49
+ def to_h
50
+ h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
73
51
  h[LogField::JobId] = job_id unless job_id.nil?
74
52
  h[LogField::JobClass] = job_class unless job_class.nil?
75
53
  h[LogField::QueueName] = queue_name unless queue_name.nil?
76
54
  h[LogField::Arguments] = arguments unless arguments.nil?
77
55
  h[LogField::Executions] = executions unless executions.nil?
78
- h
79
- end
80
-
81
- sig {
82
- params(process_id: T.untyped,
83
- thread_id: T.untyped,
84
- job_id: T.untyped,
85
- job_class: T.untyped,
86
- queue_name: T.untyped,
87
- arguments: T.untyped,
88
- executions: T.untyped,
89
- wait_ms: T.untyped,
90
- scheduled_at: T.untyped,
91
- additional_data: T.untyped,
92
- timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
93
- }
94
- def self.build(process_id:,
95
- thread_id:,
96
- job_id: nil,
97
- job_class: nil,
98
- queue_name: nil,
99
- arguments: nil,
100
- executions: nil,
101
- wait_ms: nil,
102
- scheduled_at: nil,
103
- additional_data: nil,
104
- timestamp: Time.now)
105
- h = base_hash(job_id: job_id,
106
- job_class: job_class,
107
- queue_name: queue_name,
108
- arguments: arguments,
109
- executions: executions)
110
56
  h[LogField::ProcessId] = process_id
111
57
  h[LogField::ThreadId] = thread_id
112
58
  h[LogField::WaitMs] = wait_ms unless wait_ms.nil?
113
59
  h[LogField::ScheduledAt] = scheduled_at unless scheduled_at.nil?
114
60
  h
115
61
  end
116
-
117
- sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
118
- def to_h
119
- self.class.build(
120
- job_id: job_id,
121
- job_class: job_class,
122
- queue_name: queue_name,
123
- arguments: arguments,
124
- executions: executions,
125
- process_id: process_id,
126
- thread_id: thread_id,
127
- wait_ms: wait_ms,
128
- scheduled_at: scheduled_at,
129
- additional_data: additional_data,
130
- timestamp: timestamp
131
- )
132
- end
133
62
  end
134
63
  end
135
64
  end
@@ -20,7 +20,7 @@ module LogStruct
20
20
  extend T::Sig
21
21
  const :job_id, T.nilable(String), default: nil
22
22
  const :job_class, T.nilable(String), default: nil
23
- const :queue_name, T.nilable(String), default: nil
23
+ const :queue_name, T.nilable(Symbol), default: nil
24
24
  const :arguments, T.nilable(T::Array[T.untyped]), default: nil
25
25
  const :executions, T.nilable(Integer), default: nil
26
26
 
@@ -28,7 +28,7 @@ module LogStruct
28
28
  {
29
29
  job_id: T.nilable(String),
30
30
  job_class: T.nilable(String),
31
- queue_name: T.nilable(String),
31
+ queue_name: T.nilable(Symbol),
32
32
  arguments: T.nilable(T::Array[T.untyped]),
33
33
  executions: T.nilable(Integer)
34
34
  }
@@ -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/shared/serialize_common"
13
- require "log_struct/shared/shared/merge_additional_data_fields"
14
- require "log_struct/shared/shared/add_request_fields"
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 Plain < 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
@@ -41,38 +36,16 @@ module LogStruct
41
36
  const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil
42
37
  include LogStruct::Log::Shared::MergeAdditionalDataFields
43
38
 
44
- # Request fields (optional)
45
-
46
39
  # Serialize shared fields
47
40
  include LogStruct::Log::Interfaces::CommonFields
48
41
  include LogStruct::Log::Shared::SerializeCommon
49
42
 
50
43
  sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
51
- def self.base_hash
52
- {}
53
- end
54
-
55
- sig {
56
- params(message: T.untyped,
57
- additional_data: T.untyped,
58
- timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
59
- }
60
- def self.build(message:,
61
- additional_data: nil,
62
- timestamp: Time.now)
63
- h = base_hash
44
+ def to_h
45
+ h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
64
46
  h[LogField::Message] = message
65
47
  h
66
48
  end
67
-
68
- sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
69
- def to_h
70
- self.class.build(
71
- message: message,
72
- additional_data: additional_data,
73
- timestamp: timestamp
74
- )
75
- end
76
49
  end
77
50
  end
78
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/shared/serialize_common"
13
- require "log_struct/shared/shared/merge_additional_data_fields"
14
- require "log_struct/shared/shared/add_request_fields"
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 Puma
23
23
  class Shutdown < 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
@@ -42,38 +37,16 @@ module LogStruct
42
37
  const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil
43
38
  include LogStruct::Log::Shared::MergeAdditionalDataFields
44
39
 
45
- # Request fields (optional)
46
-
47
40
  # Serialize shared fields
48
41
  include LogStruct::Log::Interfaces::CommonFields
49
42
  include LogStruct::Log::Shared::SerializeCommon
50
43
 
51
44
  sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
52
- def self.base_hash
53
- {}
54
- end
55
-
56
- sig {
57
- params(process_id: T.untyped,
58
- additional_data: T.untyped,
59
- timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
60
- }
61
- def self.build(process_id: nil,
62
- additional_data: nil,
63
- timestamp: Time.now)
64
- h = base_hash
45
+ def to_h
46
+ h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
65
47
  h[LogField::ProcessId] = process_id unless process_id.nil?
66
48
  h
67
49
  end
68
-
69
- sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
70
- def to_h
71
- self.class.build(
72
- process_id: process_id,
73
- additional_data: additional_data,
74
- timestamp: timestamp
75
- )
76
- end
77
50
  end
78
51
  end
79
52
  end