reprise 0.1.2-arm64-darwin → 0.1.3-arm64-darwin

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 674580f80b0490b539981b2d305d4126712a2d532b3548f12a30085a834fc5e6
4
- data.tar.gz: 7854c6ec3b48f1a6c1ac0a6efc0bf54ad791b9bcccd0eb8868609e4966950bb5
3
+ metadata.gz: 2ef0e62d6f450e4e832d369e45b4ceab4376571357e7a6ec4c72c4dbb48dd378
4
+ data.tar.gz: eed8da52afed84dd86d0717342521782ab579263b1c10c26f592b3ee1830c27c
5
5
  SHA512:
6
- metadata.gz: 34b75118bd172cc4a0127ec2a55f7c6eb6c24563bae9523f1113b80f04f3fe9afff12ec36a7a664911ce5bc853c315617d1efdd6aab5ea4edcd93501781e514c
7
- data.tar.gz: b4f843a5d49e314e4b29d8564c0d9f65811178d564d1a48e99659ce94693fc6222a0e3981df01771f0ec867722c99ad17f7c09d0fd4bd687cbb0742361e0b99d
6
+ metadata.gz: 68f4527b37d039ee6d7bbc71fd17b6a88f77e03008d0d172a47c16f126fc0533279ac133ae0f5335bef868f67d8c43fdb8c02d51655c3070c61196f4b3fb61c5
7
+ data.tar.gz: f9f9f68dbf2e5c4a9c59068fceaa0347983522dbf359673638c217fb6911ad15912e835c47e93f2beb8b0b09e37010fefbb73c51eb3b2e012a1d1cb6575b44bf
data/Cargo.lock CHANGED
@@ -594,7 +594,7 @@ checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
594
594
 
595
595
  [[package]]
596
596
  name = "reprise"
597
- version = "0.1.2"
597
+ version = "0.1.3"
598
598
  dependencies = [
599
599
  "chrono",
600
600
  "chrono-tz",
data/README.md CHANGED
@@ -229,7 +229,7 @@ you would probably be much better served by choosing one of those two gems inste
229
229
  the influence of Rust leaks into its Ruby API. Alternative gems offer much more flexible APIs that support a variety
230
230
  of more idiomatic calling conventions: they have better, more forgiving ergonomics. Reprise may invest more efforts
231
231
  here in the future, but not until we have landed on a feature-complete, performant core - our primary design goal.
232
- Until then, out API will remain sparse but sufficient.
232
+ Until then, our API will remain sparse but sufficient.
233
233
  - **Stability.** Reprise is still experimental; we do not yet have a `1.0.0` release or a public roadmap. Breaking changes
234
234
  may be frequent across releases. If you do not want to pin Reprise to a specific version and want a library that you can
235
235
  upgrade without reviewing the changelog, you may want to consider an alternative for now.
@@ -317,8 +317,6 @@ How do you filter out recurring series occurrences that conflict with other sche
317
317
  in your application?
318
318
 
319
319
  At time of writing, alternative gems' solutions to this problem are somewhat wanting:
320
- - **None**: It is entirely the responsibility of the client application to handle occurrence exclusions,
321
- despite this logic being core to the domain of recurring schedule management.
322
320
  - **Date-based exclusion**: Client applications can pass specific dates when occurrences should be excluded.
323
321
  This is not sufficient except for in the most simple of circumstances. Again, consider our hypothetical
324
322
  Monday @ 12:30 PM recurring series: being able to exclude a specific _date_ from your recurrence rule still
Binary file
Binary file
Binary file
@@ -85,6 +85,12 @@ module Reprise
85
85
  # influences occurrence queries, and whether any added exclusions conflict with any of the schedule's
86
86
  # occurrences.
87
87
 
88
+ # @!macro [new] count
89
+ # @param count [Integer, nil] An optional count limit to apply to the occurrences
90
+ # of a series; once the schedule has generated the requested number of occurrences,
91
+ # it will halt further expansion of that specific series. The count takes precedence
92
+ # over the optional +ends_at+ param.
93
+
88
94
  # @!macro [new] label
89
95
  # @param label [String, nil] An optional label to apply to all of the occurrences
90
96
  # that are generated from the series. See {Reprise::Core::Occurrence#label}.
@@ -93,15 +99,17 @@ module Reprise
93
99
  # @!macro duration_in_seconds
94
100
  # @!macro interval
95
101
  # @!macro recurring_series_start_and_end_times
102
+ # @!macro count
96
103
  # @!macro label
97
104
  # @return [void]
98
- def repeat_minutely(time_of_day: nil, duration_in_seconds:, interval: 1, starts_at: nil, ends_at: nil, label: nil)
105
+ def repeat_minutely(time_of_day: nil, duration_in_seconds:, interval: 1, starts_at: nil, ends_at: nil, count: nil, label: nil)
99
106
  internal_schedule.repeat_minutely(
100
107
  time_of_day: TimeOfDay.new(time_of_day || self.starts_at).to_h,
101
108
  duration_in_seconds:,
102
109
  interval:,
103
110
  starts_at_unix_timestamp: starts_at.presence&.to_i,
104
111
  ends_at_unix_timestamp: ends_at.presence&.to_i,
112
+ count:,
105
113
  label:
106
114
  )
107
115
  end
@@ -110,15 +118,17 @@ module Reprise
110
118
  # @!macro duration_in_seconds
111
119
  # @!macro interval
112
120
  # @!macro recurring_series_start_and_end_times
121
+ # @!macro count
113
122
  # @!macro label
114
123
  # @return [void]
115
- def repeat_hourly(time_of_day: nil, duration_in_seconds:, interval: 1, starts_at: nil, ends_at: nil, label: nil)
124
+ def repeat_hourly(time_of_day: nil, duration_in_seconds:, interval: 1, starts_at: nil, ends_at: nil, count: nil, label: nil)
116
125
  internal_schedule.repeat_hourly(
117
126
  time_of_day: TimeOfDay.new(time_of_day || self.starts_at).to_h,
118
127
  duration_in_seconds:,
119
128
  interval:,
120
129
  starts_at_unix_timestamp: starts_at.presence&.to_i,
121
130
  ends_at_unix_timestamp: ends_at.presence&.to_i,
131
+ count:,
122
132
  label:
123
133
  )
124
134
  end
@@ -127,15 +137,17 @@ module Reprise
127
137
  # @!macro duration_in_seconds
128
138
  # @!macro interval
129
139
  # @!macro recurring_series_start_and_end_times
140
+ # @!macro count
130
141
  # @!macro label
131
142
  # @return [void]
132
- def repeat_daily(time_of_day: nil, duration_in_seconds:, interval: 1, starts_at: nil, ends_at: nil, label: nil)
143
+ def repeat_daily(time_of_day: nil, duration_in_seconds:, interval: 1, starts_at: nil, ends_at: nil, count: nil, label: nil)
133
144
  internal_schedule.repeat_daily(
134
145
  time_of_day: TimeOfDay.new(time_of_day || self.starts_at).to_h,
135
146
  duration_in_seconds:,
136
147
  interval:,
137
148
  starts_at_unix_timestamp: starts_at.presence&.to_i,
138
149
  ends_at_unix_timestamp: ends_at.presence&.to_i,
150
+ count:,
139
151
  label:
140
152
  )
141
153
  end
@@ -145,6 +157,7 @@ module Reprise
145
157
  # @!macro duration_in_seconds
146
158
  # @!macro interval
147
159
  # @!macro recurring_series_start_and_end_times
160
+ # @!macro count
148
161
  # @!macro label
149
162
  # @return [void]
150
163
  # @example with a +time_of_day+ hash
@@ -152,7 +165,7 @@ module Reprise
152
165
  # @example with a local time for +time_of_day+
153
166
  # local_time = Time.current.in_time_zone(my_current_time_zone)
154
167
  # schedule.repeat_weekly(:monday, time_of_day: local_time, duration_in_seconds: 30)
155
- def repeat_weekly(weekday, time_of_day: nil, duration_in_seconds:, interval: 1, starts_at: nil, ends_at: nil, label: nil)
168
+ def repeat_weekly(weekday, time_of_day: nil, duration_in_seconds:, interval: 1, starts_at: nil, ends_at: nil, count: nil, label: nil)
156
169
  internal_schedule.repeat_weekly(
157
170
  weekday,
158
171
  time_of_day: TimeOfDay.new(time_of_day || self.starts_at).to_h,
@@ -160,6 +173,7 @@ module Reprise
160
173
  interval:,
161
174
  starts_at_unix_timestamp: starts_at.presence&.to_i,
162
175
  ends_at_unix_timestamp: ends_at.presence&.to_i,
176
+ count:,
163
177
  label:
164
178
  )
165
179
  end
@@ -169,11 +183,12 @@ module Reprise
169
183
  # @!macro duration_in_seconds
170
184
  # @!macro interval
171
185
  # @!macro recurring_series_start_and_end_times
186
+ # @!macro count
172
187
  # @!macro label
173
188
  # @return [void]
174
189
  # @example
175
190
  # schedule.repeat_monthly_by_day(15, time_of_day: { hour: 9 }, duration_in_seconds: 30)
176
- def repeat_monthly_by_day(day_number, time_of_day:, duration_in_seconds:, interval: 1, starts_at: nil, ends_at: nil, label: nil)
191
+ def repeat_monthly_by_day(day_number, time_of_day:, duration_in_seconds:, interval: 1, starts_at: nil, ends_at: nil, count: nil, label: nil)
177
192
  internal_schedule.repeat_monthly_by_day(
178
193
  day_number,
179
194
  time_of_day: TimeOfDay.new(time_of_day || self.starts_at).to_h,
@@ -181,6 +196,7 @@ module Reprise
181
196
  interval:,
182
197
  starts_at_unix_timestamp: starts_at.presence&.to_i,
183
198
  ends_at_unix_timestamp: ends_at.presence&.to_i,
199
+ count:,
184
200
  label:
185
201
  )
186
202
  end
@@ -191,9 +207,10 @@ module Reprise
191
207
  # @!macro duration_in_seconds
192
208
  # @!macro interval
193
209
  # @!macro recurring_series_start_and_end_times
210
+ # @!macro count
194
211
  # @!macro label
195
212
  # @return [void]
196
- def repeat_monthly_by_nth_weekday(weekday, nth_day, time_of_day:, duration_in_seconds:, interval: 1, starts_at: nil, ends_at: nil, label: nil)
213
+ def repeat_monthly_by_nth_weekday(weekday, nth_day, time_of_day:, duration_in_seconds:, interval: 1, starts_at: nil, ends_at: nil, count: nil, label: nil)
197
214
  internal_schedule.repeat_monthly_by_nth_weekday(
198
215
  weekday,
199
216
  nth_day,
@@ -202,6 +219,7 @@ module Reprise
202
219
  interval:,
203
220
  starts_at_unix_timestamp: starts_at.presence&.to_i,
204
221
  ends_at_unix_timestamp: ends_at.presence&.to_i,
222
+ count:,
205
223
  label:
206
224
  )
207
225
  end
@@ -211,11 +229,12 @@ module Reprise
211
229
  # @!macro duration_in_seconds
212
230
  # @!macro interval
213
231
  # @!macro recurring_series_start_and_end_times
232
+ # @!macro count
214
233
  # @!macro label
215
234
  # @return [void]
216
235
  # @example
217
236
  # schedule.repeat_annually_by_day(200, duration_in_seconds: 30)
218
- def repeat_annually_by_day(day_number, time_of_day:, duration_in_seconds:, interval: 1, starts_at: nil, ends_at: nil, label: nil)
237
+ def repeat_annually_by_day(day_number, time_of_day:, duration_in_seconds:, interval: 1, starts_at: nil, ends_at: nil, count: nil, label: nil)
219
238
  internal_schedule.repeat_annually_by_day(
220
239
  day_number,
221
240
  time_of_day: TimeOfDay.new(time_of_day || self.starts_at).to_h,
@@ -223,6 +242,7 @@ module Reprise
223
242
  interval:,
224
243
  starts_at_unix_timestamp: starts_at.presence&.to_i,
225
244
  ends_at_unix_timestamp: ends_at.presence&.to_i,
245
+ count:,
226
246
  label:
227
247
  )
228
248
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Reprise
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.3"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reprise
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: arm64-darwin
6
6
  authors:
7
7
  - Jordan Hiltunen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-07-20 00:00:00.000000000 Z
11
+ date: 2024-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: benchmark-ips