logstruct 0.1.1 → 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.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/README.md +12 -7
  4. data/lib/log_struct/concerns/configuration.rb +52 -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/puma.rb +1 -6
  21. data/lib/log_struct/integrations/shrine.rb +21 -24
  22. data/lib/log_struct/integrations/sidekiq/logger.rb +8 -1
  23. data/lib/log_struct/log/action_mailer/delivered.rb +14 -49
  24. data/lib/log_struct/log/action_mailer/delivery.rb +14 -49
  25. data/lib/log_struct/log/action_mailer/error.rb +72 -0
  26. data/lib/log_struct/log/action_mailer.rb +15 -2
  27. data/lib/log_struct/log/active_job/enqueue.rb +9 -73
  28. data/lib/log_struct/log/active_job/finish.rb +9 -76
  29. data/lib/log_struct/log/active_job/schedule.rb +9 -73
  30. data/lib/log_struct/log/active_job/start.rb +9 -76
  31. data/lib/log_struct/log/active_job.rb +2 -2
  32. data/lib/log_struct/log/active_model_serializers.rb +5 -45
  33. data/lib/log_struct/log/active_storage/delete.rb +8 -46
  34. data/lib/log_struct/log/active_storage/download.rb +9 -55
  35. data/lib/log_struct/log/active_storage/exist.rb +9 -49
  36. data/lib/log_struct/log/active_storage/metadata.rb +9 -49
  37. data/lib/log_struct/log/active_storage/stream.rb +9 -49
  38. data/lib/log_struct/log/active_storage/upload.rb +9 -64
  39. data/lib/log_struct/log/active_storage/url.rb +9 -49
  40. data/lib/log_struct/log/active_storage.rb +2 -2
  41. data/lib/log_struct/log/ahoy.rb +5 -43
  42. data/lib/log_struct/log/carrierwave/delete.rb +15 -69
  43. data/lib/log_struct/log/carrierwave/download.rb +15 -77
  44. data/lib/log_struct/log/carrierwave/upload.rb +15 -83
  45. data/lib/log_struct/log/carrierwave.rb +13 -4
  46. data/lib/log_struct/log/dotenv/load.rb +5 -33
  47. data/lib/log_struct/log/dotenv/restore.rb +5 -33
  48. data/lib/log_struct/log/dotenv/save.rb +5 -33
  49. data/lib/log_struct/log/dotenv/update.rb +5 -33
  50. data/lib/log_struct/log/error.rb +7 -40
  51. data/lib/log_struct/log/good_job/enqueue.rb +9 -72
  52. data/lib/log_struct/log/good_job/error.rb +9 -89
  53. data/lib/log_struct/log/good_job/finish.rb +9 -78
  54. data/lib/log_struct/log/good_job/log.rb +11 -75
  55. data/lib/log_struct/log/good_job/schedule.rb +7 -78
  56. data/lib/log_struct/log/good_job/start.rb +7 -78
  57. data/lib/log_struct/log/good_job.rb +2 -2
  58. data/lib/log_struct/log/plain.rb +5 -32
  59. data/lib/log_struct/log/puma/shutdown.rb +5 -32
  60. data/lib/log_struct/log/puma/start.rb +5 -56
  61. data/lib/log_struct/log/request.rb +7 -90
  62. data/lib/log_struct/log/security/blocked_host.rb +12 -73
  63. data/lib/log_struct/log/security/csrf_violation.rb +6 -67
  64. data/lib/log_struct/log/security/ip_spoof.rb +6 -73
  65. data/lib/log_struct/log/shrine/delete.rb +6 -41
  66. data/lib/log_struct/log/shrine/download.rb +6 -44
  67. data/lib/log_struct/log/shrine/exist.rb +6 -44
  68. data/lib/log_struct/log/shrine/metadata.rb +8 -46
  69. data/lib/log_struct/log/shrine/upload.rb +6 -53
  70. data/lib/log_struct/log/sidekiq.rb +5 -42
  71. data/lib/log_struct/log/sql.rb +5 -65
  72. data/lib/log_struct/log.rb +2 -2
  73. data/lib/log_struct/monkey_patches/active_support/tagged_logging/formatter.rb +12 -1
  74. data/lib/log_struct/rails_boot_banner_silencer.rb +2 -9
  75. data/lib/log_struct/railtie.rb +1 -27
  76. data/lib/log_struct/semantic_logger/concerns/log_methods.rb +100 -0
  77. data/lib/log_struct/semantic_logger/logger.rb +46 -15
  78. data/lib/log_struct/semantic_logger/setup.rb +11 -7
  79. data/lib/log_struct/shared/{shared/add_request_fields.rb → add_request_fields.rb} +2 -2
  80. data/lib/log_struct/shared/{shared/merge_additional_data_fields.rb → merge_additional_data_fields.rb} +1 -1
  81. data/lib/log_struct/shared/{shared/serialize_common.rb → serialize_common.rb} +9 -3
  82. data/lib/log_struct/{log/shared → shared}/serialize_common_public.rb +2 -2
  83. data/lib/log_struct/version.rb +1 -1
  84. data/lib/log_struct.rb +18 -1
  85. data/logstruct.gemspec +1 -1
  86. metadata +9 -11
  87. data/lib/log_struct/integrations/action_mailer/callbacks.rb +0 -100
  88. data/lib/log_struct/log/shared/add_request_fields.rb +0 -4
  89. data/lib/log_struct/log/shared/merge_additional_data_fields.rb +0 -4
  90. data/lib/log_struct/log/shared/serialize_common.rb +0 -4
@@ -0,0 +1,72 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ # AUTO-GENERATED: DO NOT EDIT
5
+ # Generated by scripts/generate_structs.rb
6
+ # Schemas dir: schemas/log_sources/
7
+ # Template: tools/codegen/templates/sorbet/event.rb.erb
8
+
9
+ require "log_struct/shared/interfaces/common_fields"
10
+ require "log_struct/shared/interfaces/additional_data_field"
11
+ require "log_struct/shared/interfaces/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
+ require_relative "../../enums/source"
16
+ require_relative "../../enums/event"
17
+ require_relative "../../enums/level"
18
+ require_relative "../../enums/log_field"
19
+
20
+ module LogStruct
21
+ module Log
22
+ class ActionMailer
23
+ class Error < T::Struct
24
+ extend T::Sig
25
+
26
+ # Shared/common fields
27
+ const :source, Source::Mailer, default: Source::Mailer
28
+ const :event, Event, default: Event::Error
29
+ const :timestamp, Time, factory: -> { Time.now }
30
+ const :level, Level, default: Level::Info
31
+
32
+ const :to, T.nilable(T::Array[String]), default: nil
33
+ const :from, T.nilable(String), default: nil
34
+ const :subject, T.nilable(String), default: nil
35
+ const :message_id, T.nilable(String), default: nil
36
+ const :mailer_class, T.nilable(String), default: nil
37
+ const :mailer_action, T.nilable(String), default: nil
38
+ const :attachment_count, T.nilable(Integer), default: nil
39
+
40
+ # Event-specific fields
41
+ const :error_class, T.class_of(StandardError)
42
+ const :message, String
43
+ const :backtrace, T.nilable(T::Array[String]), default: nil
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
+ # Serialize shared fields
51
+ include LogStruct::Log::Interfaces::CommonFields
52
+ include LogStruct::Log::Shared::SerializeCommon
53
+
54
+ sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
55
+ def to_h
56
+ h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
57
+ h[LogField::To] = to unless to.nil?
58
+ h[LogField::From] = from unless from.nil?
59
+ h[LogField::Subject] = subject unless subject.nil?
60
+ h[LogField::MessageId] = message_id unless message_id.nil?
61
+ h[LogField::MailerClass] = mailer_class unless mailer_class.nil?
62
+ h[LogField::MailerAction] = mailer_action unless mailer_action.nil?
63
+ h[LogField::AttachmentCount] = attachment_count unless attachment_count.nil?
64
+ h[LogField::ErrorClass] = error_class
65
+ h[LogField::Message] = message
66
+ h[LogField::Backtrace] = backtrace unless backtrace.nil?
67
+ h
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -8,6 +8,7 @@
8
8
 
9
9
  require_relative "action_mailer/delivery"
10
10
  require_relative "action_mailer/delivered"
11
+ require_relative "action_mailer/error"
11
12
 
12
13
  module LogStruct
13
14
  module Log
@@ -17,12 +18,20 @@ module LogStruct
17
18
  const :to, T.nilable(T::Array[String]), default: nil
18
19
  const :from, T.nilable(String), default: nil
19
20
  const :subject, T.nilable(String), default: nil
21
+ const :message_id, T.nilable(String), default: nil
22
+ const :mailer_class, T.nilable(String), default: nil
23
+ const :mailer_action, T.nilable(String), default: nil
24
+ const :attachment_count, T.nilable(Integer), default: nil
20
25
 
21
26
  Kwargs = T.type_alias do
22
27
  {
23
28
  to: T.nilable(T::Array[String]),
24
29
  from: T.nilable(String),
25
- subject: T.nilable(String)
30
+ subject: T.nilable(String),
31
+ message_id: T.nilable(String),
32
+ mailer_class: T.nilable(String),
33
+ mailer_action: T.nilable(String),
34
+ attachment_count: T.nilable(Integer)
26
35
  }
27
36
  end
28
37
 
@@ -31,7 +40,11 @@ module LogStruct
31
40
  {
32
41
  to: to,
33
42
  from: from,
34
- subject: subject
43
+ subject: subject,
44
+ message_id: message_id,
45
+ mailer_class: mailer_class,
46
+ mailer_action: mailer_action,
47
+ attachment_count: attachment_count
35
48
  }
36
49
  end
37
50
  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 ActiveJob
23
23
  class Enqueue < 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, String
38
33
  const :job_class, String
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
  const :provider_job_id, T.nilable(String), default: nil
@@ -44,81 +39,22 @@ module LogStruct
44
39
  # Event-specific fields
45
40
  const :retries, T.nilable(Integer), default: nil
46
41
 
47
- # Additional data
48
-
49
- # Request fields (optional)
50
-
51
42
  # Serialize shared fields
52
43
  include LogStruct::Log::Interfaces::CommonFields
53
44
  include LogStruct::Log::Shared::SerializeCommon
54
45
 
55
- sig {
56
- params(job_id: T.untyped,
57
- job_class: T.untyped,
58
- queue_name: T.untyped,
59
- arguments: T.untyped,
60
- executions: T.untyped,
61
- provider_job_id: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
62
- }
63
- def self.base_hash(job_id: nil,
64
- job_class: nil,
65
- queue_name: nil,
66
- arguments: nil,
67
- executions: nil,
68
- provider_job_id: nil)
69
- h = {}
70
- h[LogField::JobId] = job_id unless job_id.nil?
71
- h[LogField::JobClass] = job_class unless job_class.nil?
46
+ sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
47
+ def to_h
48
+ h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
49
+ h[LogField::JobId] = job_id
50
+ h[LogField::JobClass] = job_class
72
51
  h[LogField::QueueName] = queue_name unless queue_name.nil?
73
52
  h[LogField::Arguments] = arguments unless arguments.nil?
74
53
  h[LogField::Executions] = executions unless executions.nil?
75
54
  h[LogField::ProviderJobId] = provider_job_id unless provider_job_id.nil?
76
- h
77
- end
78
-
79
- sig {
80
- params(job_id: T.untyped,
81
- job_class: T.untyped,
82
- queue_name: T.untyped,
83
- arguments: T.untyped,
84
- executions: T.untyped,
85
- provider_job_id: T.untyped,
86
- retries: T.untyped,
87
- additional_data: T.untyped,
88
- timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
89
- }
90
- def self.build(job_id:,
91
- job_class:,
92
- queue_name: nil,
93
- arguments: nil,
94
- executions: nil,
95
- provider_job_id: nil,
96
- retries: nil,
97
- additional_data: nil,
98
- timestamp: Time.now)
99
- h = base_hash(job_id: job_id,
100
- job_class: job_class,
101
- queue_name: queue_name,
102
- arguments: arguments,
103
- executions: executions,
104
- provider_job_id: provider_job_id)
105
55
  h[LogField::Retries] = retries unless retries.nil?
106
56
  h
107
57
  end
108
-
109
- sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
110
- def to_h
111
- self.class.build(
112
- job_id: job_id,
113
- job_class: job_class,
114
- queue_name: queue_name,
115
- arguments: arguments,
116
- executions: executions,
117
- provider_job_id: provider_job_id,
118
- retries: retries,
119
- timestamp: timestamp
120
- )
121
- end
122
58
  end
123
59
  end
124
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/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 ActiveJob
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, String
38
33
  const :job_class, String
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
  const :provider_job_id, T.nilable(String), default: nil
@@ -45,85 +40,23 @@ module LogStruct
45
40
  const :duration_ms, Float
46
41
  const :finished_at, Time
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
- params(job_id: T.untyped,
58
- job_class: T.untyped,
59
- queue_name: T.untyped,
60
- arguments: T.untyped,
61
- executions: T.untyped,
62
- provider_job_id: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
63
- }
64
- def self.base_hash(job_id: nil,
65
- job_class: nil,
66
- queue_name: nil,
67
- arguments: nil,
68
- executions: nil,
69
- provider_job_id: nil)
70
- h = {}
71
- h[LogField::JobId] = job_id unless job_id.nil?
72
- h[LogField::JobClass] = job_class unless job_class.nil?
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::JobId] = job_id
51
+ h[LogField::JobClass] = job_class
73
52
  h[LogField::QueueName] = queue_name unless queue_name.nil?
74
53
  h[LogField::Arguments] = arguments unless arguments.nil?
75
54
  h[LogField::Executions] = executions unless executions.nil?
76
55
  h[LogField::ProviderJobId] = provider_job_id unless provider_job_id.nil?
77
- h
78
- end
79
-
80
- sig {
81
- params(duration_ms: T.untyped,
82
- finished_at: T.untyped,
83
- job_id: T.untyped,
84
- job_class: T.untyped,
85
- queue_name: T.untyped,
86
- arguments: T.untyped,
87
- executions: T.untyped,
88
- provider_job_id: T.untyped,
89
- additional_data: T.untyped,
90
- timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
91
- }
92
- def self.build(duration_ms:,
93
- finished_at:,
94
- job_id:,
95
- job_class:,
96
- queue_name: nil,
97
- arguments: nil,
98
- executions: nil,
99
- provider_job_id: 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
- provider_job_id: provider_job_id)
108
56
  h[LogField::DurationMs] = duration_ms
109
57
  h[LogField::FinishedAt] = finished_at
110
58
  h
111
59
  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
- provider_job_id: provider_job_id,
122
- duration_ms: duration_ms,
123
- finished_at: finished_at,
124
- timestamp: timestamp
125
- )
126
- end
127
60
  end
128
61
  end
129
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/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 ActiveJob
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, String
38
33
  const :job_class, String
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
  const :provider_job_id, T.nilable(String), default: nil
@@ -44,81 +39,22 @@ module LogStruct
44
39
  # Event-specific fields
45
40
  const :scheduled_at, Time
46
41
 
47
- # Additional data
48
-
49
- # Request fields (optional)
50
-
51
42
  # Serialize shared fields
52
43
  include LogStruct::Log::Interfaces::CommonFields
53
44
  include LogStruct::Log::Shared::SerializeCommon
54
45
 
55
- sig {
56
- params(job_id: T.untyped,
57
- job_class: T.untyped,
58
- queue_name: T.untyped,
59
- arguments: T.untyped,
60
- executions: T.untyped,
61
- provider_job_id: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
62
- }
63
- def self.base_hash(job_id: nil,
64
- job_class: nil,
65
- queue_name: nil,
66
- arguments: nil,
67
- executions: nil,
68
- provider_job_id: nil)
69
- h = {}
70
- h[LogField::JobId] = job_id unless job_id.nil?
71
- h[LogField::JobClass] = job_class unless job_class.nil?
46
+ sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
47
+ def to_h
48
+ h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
49
+ h[LogField::JobId] = job_id
50
+ h[LogField::JobClass] = job_class
72
51
  h[LogField::QueueName] = queue_name unless queue_name.nil?
73
52
  h[LogField::Arguments] = arguments unless arguments.nil?
74
53
  h[LogField::Executions] = executions unless executions.nil?
75
54
  h[LogField::ProviderJobId] = provider_job_id unless provider_job_id.nil?
76
- h
77
- end
78
-
79
- sig {
80
- params(scheduled_at: T.untyped,
81
- job_id: T.untyped,
82
- job_class: T.untyped,
83
- queue_name: T.untyped,
84
- arguments: T.untyped,
85
- executions: T.untyped,
86
- provider_job_id: T.untyped,
87
- additional_data: T.untyped,
88
- timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
89
- }
90
- def self.build(scheduled_at:,
91
- job_id:,
92
- job_class:,
93
- queue_name: nil,
94
- arguments: nil,
95
- executions: nil,
96
- provider_job_id: nil,
97
- additional_data: nil,
98
- timestamp: Time.now)
99
- h = base_hash(job_id: job_id,
100
- job_class: job_class,
101
- queue_name: queue_name,
102
- arguments: arguments,
103
- executions: executions,
104
- provider_job_id: provider_job_id)
105
55
  h[LogField::ScheduledAt] = scheduled_at
106
56
  h
107
57
  end
108
-
109
- sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
110
- def to_h
111
- self.class.build(
112
- job_id: job_id,
113
- job_class: job_class,
114
- queue_name: queue_name,
115
- arguments: arguments,
116
- executions: executions,
117
- provider_job_id: provider_job_id,
118
- scheduled_at: scheduled_at,
119
- timestamp: timestamp
120
- )
121
- end
122
58
  end
123
59
  end
124
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/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 ActiveJob
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, String
38
33
  const :job_class, String
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
  const :provider_job_id, T.nilable(String), default: nil
@@ -45,85 +40,23 @@ module LogStruct
45
40
  const :started_at, Time
46
41
  const :attempt, T.nilable(Integer), 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
- params(job_id: T.untyped,
58
- job_class: T.untyped,
59
- queue_name: T.untyped,
60
- arguments: T.untyped,
61
- executions: T.untyped,
62
- provider_job_id: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
63
- }
64
- def self.base_hash(job_id: nil,
65
- job_class: nil,
66
- queue_name: nil,
67
- arguments: nil,
68
- executions: nil,
69
- provider_job_id: nil)
70
- h = {}
71
- h[LogField::JobId] = job_id unless job_id.nil?
72
- h[LogField::JobClass] = job_class unless job_class.nil?
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::JobId] = job_id
51
+ h[LogField::JobClass] = job_class
73
52
  h[LogField::QueueName] = queue_name unless queue_name.nil?
74
53
  h[LogField::Arguments] = arguments unless arguments.nil?
75
54
  h[LogField::Executions] = executions unless executions.nil?
76
55
  h[LogField::ProviderJobId] = provider_job_id unless provider_job_id.nil?
77
- h
78
- end
79
-
80
- sig {
81
- params(started_at: T.untyped,
82
- job_id: T.untyped,
83
- job_class: T.untyped,
84
- queue_name: T.untyped,
85
- arguments: T.untyped,
86
- executions: T.untyped,
87
- provider_job_id: T.untyped,
88
- attempt: T.untyped,
89
- additional_data: T.untyped,
90
- timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
91
- }
92
- def self.build(started_at:,
93
- job_id:,
94
- job_class:,
95
- queue_name: nil,
96
- arguments: nil,
97
- executions: nil,
98
- provider_job_id: nil,
99
- attempt: 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
- provider_job_id: provider_job_id)
108
56
  h[LogField::StartedAt] = started_at
109
57
  h[LogField::Attempt] = attempt unless attempt.nil?
110
58
  h
111
59
  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
- provider_job_id: provider_job_id,
122
- started_at: started_at,
123
- attempt: attempt,
124
- timestamp: timestamp
125
- )
126
- end
127
60
  end
128
61
  end
129
62
  end
@@ -18,7 +18,7 @@ module LogStruct
18
18
  extend T::Sig
19
19
  const :job_id, String
20
20
  const :job_class, String
21
- const :queue_name, T.nilable(String), default: nil
21
+ const :queue_name, T.nilable(Symbol), default: nil
22
22
  const :arguments, T.nilable(T::Array[T.untyped]), default: nil
23
23
  const :executions, T.nilable(Integer), default: nil
24
24
  const :provider_job_id, T.nilable(String), default: nil
@@ -27,7 +27,7 @@ module LogStruct
27
27
  {
28
28
  job_id: String,
29
29
  job_class: String,
30
- queue_name: T.nilable(String),
30
+ queue_name: T.nilable(Symbol),
31
31
  arguments: T.nilable(T::Array[T.untyped]),
32
32
  executions: T.nilable(Integer),
33
33
  provider_job_id: T.nilable(String)