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.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -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/shrine.rb +21 -24
  21. data/lib/log_struct/integrations/sidekiq/logger.rb +8 -1
  22. data/lib/log_struct/log/action_mailer/delivered.rb +14 -49
  23. data/lib/log_struct/log/action_mailer/delivery.rb +14 -49
  24. data/lib/log_struct/log/action_mailer/error.rb +72 -0
  25. data/lib/log_struct/log/action_mailer.rb +15 -2
  26. data/lib/log_struct/log/active_job/enqueue.rb +9 -73
  27. data/lib/log_struct/log/active_job/finish.rb +9 -76
  28. data/lib/log_struct/log/active_job/schedule.rb +9 -73
  29. data/lib/log_struct/log/active_job/start.rb +9 -76
  30. data/lib/log_struct/log/active_job.rb +2 -2
  31. data/lib/log_struct/log/active_model_serializers.rb +5 -45
  32. data/lib/log_struct/log/active_storage/delete.rb +8 -46
  33. data/lib/log_struct/log/active_storage/download.rb +9 -55
  34. data/lib/log_struct/log/active_storage/exist.rb +9 -49
  35. data/lib/log_struct/log/active_storage/metadata.rb +9 -49
  36. data/lib/log_struct/log/active_storage/stream.rb +9 -49
  37. data/lib/log_struct/log/active_storage/upload.rb +9 -64
  38. data/lib/log_struct/log/active_storage/url.rb +9 -49
  39. data/lib/log_struct/log/active_storage.rb +2 -2
  40. data/lib/log_struct/log/ahoy.rb +5 -43
  41. data/lib/log_struct/log/carrierwave/delete.rb +15 -69
  42. data/lib/log_struct/log/carrierwave/download.rb +15 -77
  43. data/lib/log_struct/log/carrierwave/upload.rb +15 -83
  44. data/lib/log_struct/log/carrierwave.rb +13 -4
  45. data/lib/log_struct/log/dotenv/load.rb +5 -33
  46. data/lib/log_struct/log/dotenv/restore.rb +5 -33
  47. data/lib/log_struct/log/dotenv/save.rb +5 -33
  48. data/lib/log_struct/log/dotenv/update.rb +5 -33
  49. data/lib/log_struct/log/error.rb +7 -40
  50. data/lib/log_struct/log/good_job/enqueue.rb +9 -72
  51. data/lib/log_struct/log/good_job/error.rb +9 -89
  52. data/lib/log_struct/log/good_job/finish.rb +9 -78
  53. data/lib/log_struct/log/good_job/log.rb +11 -75
  54. data/lib/log_struct/log/good_job/schedule.rb +7 -78
  55. data/lib/log_struct/log/good_job/start.rb +7 -78
  56. data/lib/log_struct/log/good_job.rb +2 -2
  57. data/lib/log_struct/log/plain.rb +5 -32
  58. data/lib/log_struct/log/puma/shutdown.rb +5 -32
  59. data/lib/log_struct/log/puma/start.rb +5 -56
  60. data/lib/log_struct/log/request.rb +7 -90
  61. data/lib/log_struct/log/security/blocked_host.rb +12 -73
  62. data/lib/log_struct/log/security/csrf_violation.rb +6 -67
  63. data/lib/log_struct/log/security/ip_spoof.rb +6 -73
  64. data/lib/log_struct/log/shrine/delete.rb +6 -41
  65. data/lib/log_struct/log/shrine/download.rb +6 -44
  66. data/lib/log_struct/log/shrine/exist.rb +6 -44
  67. data/lib/log_struct/log/shrine/metadata.rb +8 -46
  68. data/lib/log_struct/log/shrine/upload.rb +6 -53
  69. data/lib/log_struct/log/sidekiq.rb +5 -42
  70. data/lib/log_struct/log/sql.rb +5 -65
  71. data/lib/log_struct/log.rb +2 -2
  72. data/lib/log_struct/monkey_patches/active_support/tagged_logging/formatter.rb +12 -1
  73. data/lib/log_struct/railtie.rb +0 -22
  74. data/lib/log_struct/semantic_logger/concerns/log_methods.rb +100 -0
  75. data/lib/log_struct/semantic_logger/logger.rb +46 -15
  76. data/lib/log_struct/semantic_logger/setup.rb +11 -7
  77. data/lib/log_struct/shared/{shared/add_request_fields.rb → add_request_fields.rb} +2 -2
  78. data/lib/log_struct/shared/{shared/merge_additional_data_fields.rb → merge_additional_data_fields.rb} +1 -1
  79. data/lib/log_struct/shared/{shared/serialize_common.rb → serialize_common.rb} +9 -3
  80. data/lib/log_struct/{log/shared → shared}/serialize_common_public.rb +2 -2
  81. data/lib/log_struct/version.rb +1 -1
  82. data/lib/log_struct.rb +4 -1
  83. data/logstruct.gemspec +1 -1
  84. metadata +9 -11
  85. data/lib/log_struct/integrations/action_mailer/callbacks.rb +0 -100
  86. data/lib/log_struct/log/shared/add_request_fields.rb +0 -4
  87. data/lib/log_struct/log/shared/merge_additional_data_fields.rb +0 -4
  88. 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 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
@@ -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 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
@@ -50,42 +45,13 @@ module LogStruct
50
45
  const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil
51
46
  include LogStruct::Log::Shared::MergeAdditionalDataFields
52
47
 
53
- # Request fields (optional)
54
-
55
48
  # Serialize shared fields
56
49
  include LogStruct::Log::Interfaces::CommonFields
57
50
  include LogStruct::Log::Shared::SerializeCommon
58
51
 
59
52
  sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
60
- def self.base_hash
61
- {}
62
- end
63
-
64
- sig {
65
- params(mode: T.untyped,
66
- puma_version: T.untyped,
67
- puma_codename: T.untyped,
68
- ruby_version: T.untyped,
69
- min_threads: T.untyped,
70
- max_threads: T.untyped,
71
- environment: T.untyped,
72
- process_id: T.untyped,
73
- listening_addresses: T.untyped,
74
- additional_data: T.untyped,
75
- timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
76
- }
77
- def self.build(mode: nil,
78
- puma_version: nil,
79
- puma_codename: nil,
80
- ruby_version: nil,
81
- min_threads: nil,
82
- max_threads: nil,
83
- environment: nil,
84
- process_id: nil,
85
- listening_addresses: nil,
86
- additional_data: nil,
87
- timestamp: Time.now)
88
- h = base_hash
53
+ def to_h
54
+ h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
89
55
  h[LogField::Mode] = mode unless mode.nil?
90
56
  h[LogField::PumaVersion] = puma_version unless puma_version.nil?
91
57
  h[LogField::PumaCodename] = puma_codename unless puma_codename.nil?
@@ -97,23 +63,6 @@ module LogStruct
97
63
  h[LogField::ListeningAddresses] = listening_addresses unless listening_addresses.nil?
98
64
  h
99
65
  end
100
-
101
- sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
102
- def to_h
103
- self.class.build(
104
- mode: mode,
105
- puma_version: puma_version,
106
- puma_codename: puma_codename,
107
- ruby_version: ruby_version,
108
- min_threads: min_threads,
109
- max_threads: max_threads,
110
- environment: environment,
111
- process_id: process_id,
112
- listening_addresses: listening_addresses,
113
- additional_data: additional_data,
114
- timestamp: timestamp
115
- )
116
- end
117
66
  end
118
67
  end
119
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/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 Request < 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,7 +36,7 @@ module LogStruct
41
36
  const :request_id, T.nilable(String), default: nil
42
37
 
43
38
  # Event-specific fields
44
- const :format, T.nilable(String), default: nil
39
+ const :format, T.nilable(Symbol), default: nil
45
40
  const :controller, T.nilable(String), default: nil
46
41
  const :action, T.nilable(String), default: nil
47
42
  const :status, T.nilable(Integer), default: nil
@@ -50,8 +45,6 @@ module LogStruct
50
45
  const :database, T.nilable(Float), default: nil
51
46
  const :params, T.nilable(T::Hash[Symbol, T.untyped]), default: nil
52
47
 
53
- # Additional data
54
-
55
48
  # Request fields (optional)
56
49
  include LogStruct::Log::Interfaces::RequestFields
57
50
 
@@ -60,70 +53,15 @@ module LogStruct
60
53
  include LogStruct::Log::Shared::SerializeCommon
61
54
  include LogStruct::Log::Shared::AddRequestFields
62
55
 
63
- sig {
64
- params(path: T.untyped,
65
- http_method: T.untyped,
66
- source_ip: T.untyped,
67
- user_agent: T.untyped,
68
- referer: T.untyped,
69
- request_id: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
70
- }
71
- def self.base_hash(path: nil,
72
- http_method: nil,
73
- source_ip: nil,
74
- user_agent: nil,
75
- referer: nil,
76
- request_id: nil)
77
- h = {}
56
+ sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
57
+ def to_h
58
+ h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
78
59
  h[LogField::Path] = path unless path.nil?
79
60
  h[LogField::HttpMethod] = http_method unless http_method.nil?
80
61
  h[LogField::SourceIp] = source_ip unless source_ip.nil?
81
62
  h[LogField::UserAgent] = user_agent unless user_agent.nil?
82
63
  h[LogField::Referer] = referer unless referer.nil?
83
64
  h[LogField::RequestId] = request_id unless request_id.nil?
84
- h
85
- end
86
-
87
- sig {
88
- params(path: T.untyped,
89
- http_method: T.untyped,
90
- source_ip: T.untyped,
91
- user_agent: T.untyped,
92
- referer: T.untyped,
93
- request_id: T.untyped,
94
- format: T.untyped,
95
- controller: T.untyped,
96
- action: T.untyped,
97
- status: T.untyped,
98
- duration_ms: T.untyped,
99
- view: T.untyped,
100
- database: T.untyped,
101
- params: T.untyped,
102
- additional_data: T.untyped,
103
- timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
104
- }
105
- def self.build(path: nil,
106
- http_method: nil,
107
- source_ip: nil,
108
- user_agent: nil,
109
- referer: nil,
110
- request_id: nil,
111
- format: nil,
112
- controller: nil,
113
- action: nil,
114
- status: nil,
115
- duration_ms: nil,
116
- view: nil,
117
- database: nil,
118
- params: nil,
119
- additional_data: nil,
120
- timestamp: Time.now)
121
- h = base_hash(path: path,
122
- http_method: http_method,
123
- source_ip: source_ip,
124
- user_agent: user_agent,
125
- referer: referer,
126
- request_id: request_id)
127
65
  h[LogField::Format] = format unless format.nil?
128
66
  h[LogField::Controller] = controller unless controller.nil?
129
67
  h[LogField::Action] = action unless action.nil?
@@ -134,27 +72,6 @@ module LogStruct
134
72
  h[LogField::Params] = params unless params.nil?
135
73
  h
136
74
  end
137
-
138
- sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
139
- def to_h
140
- self.class.build(
141
- path: path,
142
- http_method: http_method,
143
- source_ip: source_ip,
144
- user_agent: user_agent,
145
- referer: referer,
146
- request_id: request_id,
147
- format: format,
148
- controller: controller,
149
- action: action,
150
- status: status,
151
- duration_ms: duration_ms,
152
- view: view,
153
- database: database,
154
- params: params,
155
- timestamp: timestamp
156
- )
157
- end
158
75
  end
159
76
  end
160
77
  end