oursprivacy-ingest 1.18.0 → 1.19.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 22e4ba859643905caf56c7cf4e161514503d2cf4c47662d87232bd5d22229f27
4
- data.tar.gz: d14639768b9c3cd94b9e842bb64bdd8784ba109746be2d6eb2af0ebf24454d45
3
+ metadata.gz: 9c5d65392b8fbf4e765f78ac8e7f4e1ed0006e99c3519c4e4b6fe60e041d5c92
4
+ data.tar.gz: 8c7da5bcf8ff87ba352e7d13b563945bafcff7b6263fc1abfc2e13996c6b2982
5
5
  SHA512:
6
- metadata.gz: 3a8582c10816b4ecbbe89a80c302c7c8ddd6654db913d12a0dd4d5eb99e9761531180b8c97a0b459b34b3cb94b64a65631e3eaf29753f4ccc0d380d16f0a08e4
7
- data.tar.gz: b03ea599196cb64ed9bfc7e4b212df77289fba26e5b3480eebc4dde1a6fd1f1f3b97d4ec6b653cd091ac4f8e2bf32314b1585d293b35774a34facea01db1bf93
6
+ metadata.gz: 8a97c7b21f0e6c935bfca56da5a3018cb7c75308819952a97c0e0809185d155f46385fec28ca097bd38db2f0104214d65714cbc72c4ce1432dcacb28fc6cfafe
7
+ data.tar.gz: 168f6ea5f416348947c5f909a315cd4328d11231cc929478fdeac1dfbdf2c80ee789e2437811ef05c19677e67090a7d0753dbd00545579c324e36c9c6665d247
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.19.0 (2026-09-14)
4
+
5
+ Full Changelog: [v1.18.0...v1.19.0](https://github.com/with-ours/ingest-sdk-ruby/compare/v1.18.0...v1.19.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** API update.
3
10
  ## 1.18.0 (2026-09-11)
4
11
 
5
12
  Full Changelog: [v1.17.0...v1.18.0](https://github.com/with-ours/ingest-sdk-ruby/compare/v1.17.0...v1.18.0)
data/README.md CHANGED
@@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application
15
15
  <!-- x-release-please-start-version -->
16
16
 
17
17
  ```ruby
18
- gem "oursprivacy-ingest", "~> 1.18.0"
18
+ gem "oursprivacy-ingest", "~> 1.19.0"
19
19
  ```
20
20
 
21
21
  <!-- x-release-please-end -->
@@ -4,12 +4,6 @@ module OursprivacyIngest
4
4
  module Models
5
5
  # @see OursprivacyIngest::Resources::Experiments#personalization
6
6
  class ExperimentPersonalizationResponse < OursprivacyIngest::Internal::Type::BaseModel
7
- # @!attribute personalizations
8
- #
9
- # @return [Array<OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization>]
10
- required :personalizations,
11
- -> { OursprivacyIngest::Internal::Type::ArrayOf[OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization] }
12
-
13
7
  # @!attribute properties
14
8
  # The visitor traits accumulated by your personalization property rules, keyed by
15
9
  # property key. Values are always scalars — a string, number, or boolean, or null
@@ -27,15 +21,49 @@ module OursprivacyIngest
27
21
  # @return [Boolean, OursprivacyIngest::Models::ExperimentPersonalizationResponse::Success]
28
22
  required :success, enum: -> { OursprivacyIngest::Models::ExperimentPersonalizationResponse::Success }
29
23
 
30
- # @!method initialize(personalizations:, properties:, success:)
24
+ # @!attribute personalizations
25
+ # @deprecated
26
+ #
27
+ # Deprecated legacy personalization assignments. Current API responses omit this
28
+ # field; use properties for accumulated personalization traits. Retained in the
29
+ # SDK for callers using older responses.
30
+ #
31
+ # @return [Array<OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization>, nil]
32
+ optional :personalizations,
33
+ -> { OursprivacyIngest::Internal::Type::ArrayOf[OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization] }
34
+
35
+ # @!method initialize(properties:, success:, personalizations: nil)
31
36
  # Some parameter documentations has been truncated, see
32
37
  # {OursprivacyIngest::Models::ExperimentPersonalizationResponse} for more details.
33
38
  #
34
- # @param personalizations [Array<OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization>]
35
- #
36
39
  # @param properties [Hash{Symbol=>String, Float, Boolean}] The visitor traits accumulated by your personalization property rules, keyed by
37
40
  #
38
41
  # @param success [Boolean, OursprivacyIngest::Models::ExperimentPersonalizationResponse::Success]
42
+ #
43
+ # @param personalizations [Array<OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization>] Deprecated legacy personalization assignments. Current API responses omit this f
44
+
45
+ module Property
46
+ extend OursprivacyIngest::Internal::Type::Union
47
+
48
+ variant String
49
+
50
+ variant Float
51
+
52
+ variant OursprivacyIngest::Internal::Type::Boolean
53
+
54
+ # @!method self.variants
55
+ # @return [Array(String, Float, Boolean)]
56
+ end
57
+
58
+ # @see OursprivacyIngest::Models::ExperimentPersonalizationResponse#success
59
+ module Success
60
+ extend OursprivacyIngest::Internal::Type::Enum
61
+
62
+ TRUE = true
63
+
64
+ # @!method self.values
65
+ # @return [Array<Boolean>]
66
+ end
39
67
 
40
68
  class Personalization < OursprivacyIngest::Internal::Type::BaseModel
41
69
  # @!attribute assigned_at
@@ -76,29 +104,6 @@ module OursprivacyIngest
76
104
  # @param experiment_name [String, nil]
77
105
  # @param variant_name [String, nil]
78
106
  end
79
-
80
- module Property
81
- extend OursprivacyIngest::Internal::Type::Union
82
-
83
- variant String
84
-
85
- variant Float
86
-
87
- variant OursprivacyIngest::Internal::Type::Boolean
88
-
89
- # @!method self.variants
90
- # @return [Array(String, Float, Boolean)]
91
- end
92
-
93
- # @see OursprivacyIngest::Models::ExperimentPersonalizationResponse#success
94
- module Success
95
- extend OursprivacyIngest::Internal::Type::Enum
96
-
97
- TRUE = true
98
-
99
- # @!method self.values
100
- # @return [Array<Boolean>]
101
- end
102
107
  end
103
108
  end
104
109
  end
@@ -51,13 +51,10 @@ module OursprivacyIngest
51
51
  )
52
52
  end
53
53
 
54
- # Return a visitor's active personalization assignments and accumulated
55
- # personalization properties. Read-only and never records an impression.
56
- # `personalizations` lists the personalization experiences the visitor is
57
- # currently assigned to; `properties` returns the visitor traits your
58
- # personalization property rules have accumulated, ready to use in server-rendered
59
- # copy or targeting. Both are empty for a visitor who has not matched anything
60
- # yet.
54
+ # Return the visitor traits accumulated by personalization property rules.
55
+ # Read-only and never records an impression. Use the properties to select
56
+ # personalized server-rendered copy or targeting; the browser experiment runtime
57
+ # receives the same bag at initialization.
61
58
  #
62
59
  # @overload personalization(token:, visitor_id:, request_options: {})
63
60
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OursprivacyIngest
4
- VERSION = "1.18.0"
4
+ VERSION = "1.19.0"
5
5
  end
@@ -11,15 +11,6 @@ module OursprivacyIngest
11
11
  )
12
12
  end
13
13
 
14
- sig do
15
- returns(
16
- T::Array[
17
- OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization
18
- ]
19
- )
20
- end
21
- attr_accessor :personalizations
22
-
23
14
  # The visitor traits accumulated by your personalization property rules, keyed by
24
15
  # property key. Values are always scalars — a string, number, or boolean, or null
25
16
  # when the captured field was itself empty. Empty for a visitor who has not
@@ -43,23 +34,46 @@ module OursprivacyIngest
43
34
  end
44
35
  attr_accessor :success
45
36
 
37
+ # Deprecated legacy personalization assignments. Current API responses omit this
38
+ # field; use properties for accumulated personalization traits. Retained in the
39
+ # SDK for callers using older responses.
40
+ sig do
41
+ returns(
42
+ T.nilable(
43
+ T::Array[
44
+ OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization
45
+ ]
46
+ )
47
+ )
48
+ end
49
+ attr_reader :personalizations
50
+
46
51
  sig do
47
52
  params(
48
53
  personalizations:
49
54
  T::Array[
50
55
  OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization::OrHash
51
- ],
56
+ ]
57
+ ).void
58
+ end
59
+ attr_writer :personalizations
60
+
61
+ sig do
62
+ params(
52
63
  properties:
53
64
  T::Hash[
54
65
  Symbol,
55
66
  OursprivacyIngest::Models::ExperimentPersonalizationResponse::Property::Variants
56
67
  ],
57
68
  success:
58
- OursprivacyIngest::Models::ExperimentPersonalizationResponse::Success::OrBoolean
69
+ OursprivacyIngest::Models::ExperimentPersonalizationResponse::Success::OrBoolean,
70
+ personalizations:
71
+ T::Array[
72
+ OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization::OrHash
73
+ ]
59
74
  ).returns(T.attached_class)
60
75
  end
61
76
  def self.new(
62
- personalizations:,
63
77
  # The visitor traits accumulated by your personalization property rules, keyed by
64
78
  # property key. Values are always scalars — a string, number, or boolean, or null
65
79
  # when the captured field was itself empty. Empty for a visitor who has not
@@ -67,30 +81,79 @@ module OursprivacyIngest
67
81
  # and are readable by anyone who knows the visitor_id, so never accumulate
68
82
  # secrets, credentials, PHI, or confidential data into a property.
69
83
  properties:,
70
- success:
84
+ success:,
85
+ # Deprecated legacy personalization assignments. Current API responses omit this
86
+ # field; use properties for accumulated personalization traits. Retained in the
87
+ # SDK for callers using older responses.
88
+ personalizations: nil
71
89
  )
72
90
  end
73
91
 
74
92
  sig do
75
93
  override.returns(
76
94
  {
77
- personalizations:
78
- T::Array[
79
- OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization
80
- ],
81
95
  properties:
82
96
  T::Hash[
83
97
  Symbol,
84
98
  OursprivacyIngest::Models::ExperimentPersonalizationResponse::Property::Variants
85
99
  ],
86
100
  success:
87
- OursprivacyIngest::Models::ExperimentPersonalizationResponse::Success::TaggedBoolean
101
+ OursprivacyIngest::Models::ExperimentPersonalizationResponse::Success::TaggedBoolean,
102
+ personalizations:
103
+ T::Array[
104
+ OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization
105
+ ]
88
106
  }
89
107
  )
90
108
  end
91
109
  def to_hash
92
110
  end
93
111
 
112
+ module Property
113
+ extend OursprivacyIngest::Internal::Type::Union
114
+
115
+ Variants = T.type_alias { T.any(String, Float, T::Boolean) }
116
+
117
+ sig do
118
+ override.returns(
119
+ T::Array[
120
+ OursprivacyIngest::Models::ExperimentPersonalizationResponse::Property::Variants
121
+ ]
122
+ )
123
+ end
124
+ def self.variants
125
+ end
126
+ end
127
+
128
+ module Success
129
+ extend OursprivacyIngest::Internal::Type::Enum
130
+
131
+ TaggedBoolean =
132
+ T.type_alias do
133
+ T.all(
134
+ T::Boolean,
135
+ OursprivacyIngest::Models::ExperimentPersonalizationResponse::Success
136
+ )
137
+ end
138
+ OrBoolean = T.type_alias { T::Boolean }
139
+
140
+ TRUE =
141
+ T.let(
142
+ true,
143
+ OursprivacyIngest::Models::ExperimentPersonalizationResponse::Success::TaggedBoolean
144
+ )
145
+
146
+ sig do
147
+ override.returns(
148
+ T::Array[
149
+ OursprivacyIngest::Models::ExperimentPersonalizationResponse::Success::TaggedBoolean
150
+ ]
151
+ )
152
+ end
153
+ def self.values
154
+ end
155
+ end
156
+
94
157
  class Personalization < OursprivacyIngest::Internal::Type::BaseModel
95
158
  OrHash =
96
159
  T.type_alias do
@@ -153,51 +216,6 @@ module OursprivacyIngest
153
216
  def to_hash
154
217
  end
155
218
  end
156
-
157
- module Property
158
- extend OursprivacyIngest::Internal::Type::Union
159
-
160
- Variants = T.type_alias { T.any(String, Float, T::Boolean) }
161
-
162
- sig do
163
- override.returns(
164
- T::Array[
165
- OursprivacyIngest::Models::ExperimentPersonalizationResponse::Property::Variants
166
- ]
167
- )
168
- end
169
- def self.variants
170
- end
171
- end
172
-
173
- module Success
174
- extend OursprivacyIngest::Internal::Type::Enum
175
-
176
- TaggedBoolean =
177
- T.type_alias do
178
- T.all(
179
- T::Boolean,
180
- OursprivacyIngest::Models::ExperimentPersonalizationResponse::Success
181
- )
182
- end
183
- OrBoolean = T.type_alias { T::Boolean }
184
-
185
- TRUE =
186
- T.let(
187
- true,
188
- OursprivacyIngest::Models::ExperimentPersonalizationResponse::Success::TaggedBoolean
189
- )
190
-
191
- sig do
192
- override.returns(
193
- T::Array[
194
- OursprivacyIngest::Models::ExperimentPersonalizationResponse::Success::TaggedBoolean
195
- ]
196
- )
197
- end
198
- def self.values
199
- end
200
- end
201
219
  end
202
220
  end
203
221
  end
@@ -45,13 +45,10 @@ module OursprivacyIngest
45
45
  )
46
46
  end
47
47
 
48
- # Return a visitor's active personalization assignments and accumulated
49
- # personalization properties. Read-only and never records an impression.
50
- # `personalizations` lists the personalization experiences the visitor is
51
- # currently assigned to; `properties` returns the visitor traits your
52
- # personalization property rules have accumulated, ready to use in server-rendered
53
- # copy or targeting. Both are empty for a visitor who has not matched anything
54
- # yet.
48
+ # Return the visitor traits accumulated by personalization property rules.
49
+ # Read-only and never records an impression. Use the properties to select
50
+ # personalized server-rendered copy or targeting; the browser experiment runtime
51
+ # receives the same bag at initialization.
55
52
  sig do
56
53
  params(
57
54
  token: String,
@@ -2,30 +2,52 @@ module OursprivacyIngest
2
2
  module Models
3
3
  type experiment_personalization_response =
4
4
  {
5
- personalizations: ::Array[OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization],
6
5
  properties: ::Hash[Symbol, OursprivacyIngest::Models::ExperimentPersonalizationResponse::property],
7
- success: OursprivacyIngest::Models::ExperimentPersonalizationResponse::success
6
+ success: OursprivacyIngest::Models::ExperimentPersonalizationResponse::success,
7
+ personalizations: ::Array[OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization]
8
8
  }
9
9
 
10
10
  class ExperimentPersonalizationResponse < OursprivacyIngest::Internal::Type::BaseModel
11
- attr_accessor personalizations: ::Array[OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization]
12
-
13
11
  attr_accessor properties: ::Hash[Symbol, OursprivacyIngest::Models::ExperimentPersonalizationResponse::property]
14
12
 
15
13
  attr_accessor success: OursprivacyIngest::Models::ExperimentPersonalizationResponse::success
16
14
 
15
+ attr_reader personalizations: ::Array[OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization]?
16
+
17
+ def personalizations=: (
18
+ ::Array[OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization]
19
+ ) -> ::Array[OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization]
20
+
17
21
  def initialize: (
18
- personalizations: ::Array[OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization],
19
22
  properties: ::Hash[Symbol, OursprivacyIngest::Models::ExperimentPersonalizationResponse::property],
20
- success: OursprivacyIngest::Models::ExperimentPersonalizationResponse::success
23
+ success: OursprivacyIngest::Models::ExperimentPersonalizationResponse::success,
24
+ ?personalizations: ::Array[OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization]
21
25
  ) -> void
22
26
 
23
27
  def to_hash: -> {
24
- personalizations: ::Array[OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization],
25
28
  properties: ::Hash[Symbol, OursprivacyIngest::Models::ExperimentPersonalizationResponse::property],
26
- success: OursprivacyIngest::Models::ExperimentPersonalizationResponse::success
29
+ success: OursprivacyIngest::Models::ExperimentPersonalizationResponse::success,
30
+ personalizations: ::Array[OursprivacyIngest::Models::ExperimentPersonalizationResponse::Personalization]
27
31
  }
28
32
 
33
+ type property = String | Float | bool
34
+
35
+ module Property
36
+ extend OursprivacyIngest::Internal::Type::Union
37
+
38
+ def self?.variants: -> ::Array[OursprivacyIngest::Models::ExperimentPersonalizationResponse::property]
39
+ end
40
+
41
+ type success = true
42
+
43
+ module Success
44
+ extend OursprivacyIngest::Internal::Type::Enum
45
+
46
+ TRUE: true
47
+
48
+ def self?.values: -> ::Array[OursprivacyIngest::Models::ExperimentPersonalizationResponse::success]
49
+ end
50
+
29
51
  type personalization =
30
52
  {
31
53
  assigned_at: Float,
@@ -67,24 +89,6 @@ module OursprivacyIngest
67
89
  variant_name: String?
68
90
  }
69
91
  end
70
-
71
- type property = String | Float | bool
72
-
73
- module Property
74
- extend OursprivacyIngest::Internal::Type::Union
75
-
76
- def self?.variants: -> ::Array[OursprivacyIngest::Models::ExperimentPersonalizationResponse::property]
77
- end
78
-
79
- type success = true
80
-
81
- module Success
82
- extend OursprivacyIngest::Internal::Type::Enum
83
-
84
- TRUE: true
85
-
86
- def self?.values: -> ::Array[OursprivacyIngest::Models::ExperimentPersonalizationResponse::success]
87
- end
88
92
  end
89
93
  end
90
94
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oursprivacy-ingest
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.18.0
4
+ version: 1.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ours Privacy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-09-11 00:00:00.000000000 Z
11
+ date: 2026-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi