patiently 1.0.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.
@@ -0,0 +1,180 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Generator: Adobe Illustrator 23.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+
4
+ <svg
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:cc="http://creativecommons.org/ns#"
7
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+ xmlns:svg="http://www.w3.org/2000/svg"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ version="1.1"
13
+ id="Ebene_1"
14
+ x="0px"
15
+ y="0px"
16
+ viewBox="0 0 600.00159 198.53798"
17
+ xml:space="preserve"
18
+ sodipodi:docname="makandra.dark.svg"
19
+ width="600.00159"
20
+ height="198.53798"
21
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"><metadata
22
+ id="metadata45"><rdf:RDF><cc:Work
23
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
24
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
25
+ id="defs43" /><sodipodi:namedview
26
+ pagecolor="#ffffff"
27
+ bordercolor="#666666"
28
+ borderopacity="1"
29
+ objecttolerance="10"
30
+ gridtolerance="10"
31
+ guidetolerance="10"
32
+ inkscape:pageopacity="0"
33
+ inkscape:pageshadow="2"
34
+ inkscape:window-width="1920"
35
+ inkscape:window-height="1151"
36
+ id="namedview41"
37
+ showgrid="false"
38
+ inkscape:pagecheckerboard="true"
39
+ fit-margin-top="0"
40
+ fit-margin-left="0"
41
+ fit-margin-right="0"
42
+ fit-margin-bottom="0"
43
+ inkscape:zoom="1.0966667"
44
+ inkscape:cx="-38.195719"
45
+ inkscape:cy="-91.947799"
46
+ inkscape:window-x="1920"
47
+ inkscape:window-y="0"
48
+ inkscape:window-maximized="1"
49
+ inkscape:current-layer="Ebene_1" />
50
+ <style
51
+ type="text/css"
52
+ id="style2">
53
+ .st0{fill:#E61D47;}
54
+ .st1{fill:#FFFFFF;}
55
+ </style>
56
+ <g
57
+ id="g38"
58
+ transform="translate(0.00160275,-0.76)">
59
+ <polygon
60
+ class="st0"
61
+ points="585.95,14.81 585.95,59.46 600,45.41 600,0.76 555.34,0.76 541.29,14.81 "
62
+ id="polygon4"
63
+ style="fill:#e61d47" />
64
+ <path
65
+ class="st1"
66
+ d="m 161.87,43.92 v -1.44 h -13.07 -0.87 v 6.8 c -4.61,-5.11 -10.84,-8.22 -18.57,-8.22 -17.7,0 -29.41,15.58 -29.41,33.03 0,17.2 11.22,33.15 29.41,33.15 7.86,0 14.11,-3.21 18.57,-8.39 v 6.77 h 1.87 v 0 h 12.09 V 43.92 Z M 130.98,94.9 c -10.59,0 -16.58,-9.72 -16.58,-20.81 0,-11.59 6.48,-20.69 16.58,-20.69 9.97,0 17.82,8.23 17.82,20.57 0,13.21 -8.47,20.93 -17.82,20.93 z"
67
+ id="path6"
68
+ inkscape:connector-curvature="0"
69
+ style="fill:#ffffff" />
70
+ <path
71
+ class="st1"
72
+ d="m 297.85,43.93 v -1.44 h -13.07 -0.87 v 6.8 c -4.61,-5.11 -10.84,-8.22 -18.57,-8.22 -17.7,0 -29.41,15.58 -29.41,33.03 0,17.2 11.22,33.15 29.41,33.15 7.86,0 14.11,-3.21 18.57,-8.39 v 6.77 h 1.87 v 0 h 12.09 v -61.7 z m -30.89,50.98 c -10.59,0 -16.58,-9.72 -16.58,-20.81 0,-11.59 6.48,-20.69 16.58,-20.69 9.97,0 17.82,8.23 17.82,20.57 0.01,13.2 -8.47,20.93 -17.82,20.93 z"
73
+ id="path8"
74
+ inkscape:connector-curvature="0"
75
+ style="fill:#ffffff" />
76
+ <path
77
+ class="st1"
78
+ d="m 558.34,43.87 v -1.44 h -13.07 -0.87 v 6.8 c -4.61,-5.11 -10.84,-8.22 -18.57,-8.22 -17.7,0 -29.41,15.58 -29.41,33.03 0,17.2 11.22,33.15 29.41,33.15 7.86,0 14.11,-3.21 18.57,-8.39 v 6.77 h 1.87 v 0 h 12.09 v -61.7 z m -30.9,50.98 c -10.59,0 -16.58,-9.72 -16.58,-20.81 0,-11.59 6.48,-20.69 16.58,-20.69 9.97,0 17.82,8.23 17.82,20.57 0.01,13.2 -8.47,20.93 -17.82,20.93 z"
79
+ id="path10"
80
+ inkscape:connector-curvature="0"
81
+ style="fill:#ffffff" />
82
+ <path
83
+ class="st1"
84
+ d="M 14.1,86.98 V 75.1 c 0,-14.58 6.11,-21.81 13.34,-21.81 6.85,0 9.6,5.61 9.6,13.46 V 86.97 H 51 v -11 c 0,-15.33 5.98,-22.68 13.34,-22.68 6.86,0 9.6,5.61 9.6,13.46 V 86.97 H 87.9 V 64.88 c 0,-14.83 -7.98,-23.93 -20.57,-23.93 -7.98,0 -14.83,3.37 -19.19,10.84 -3.24,-6.85 -9.47,-10.84 -17.7,-10.84 -6.72,0 -12.38,2.55 -16.57,7.88 V 42.37 H 0 v 44.6 h 14.1 z"
85
+ id="path12"
86
+ inkscape:connector-curvature="0"
87
+ style="fill:#ffffff" />
88
+
89
+ <rect
90
+ x="313.17001"
91
+ y="91.599998"
92
+ transform="rotate(90,320.2078,98.578)"
93
+ class="st1"
94
+ width="14.08"
95
+ height="13.96"
96
+ id="rect14"
97
+ style="fill:#ffffff" />
98
+
99
+ <rect
100
+ x="353.25"
101
+ y="91.599998"
102
+ transform="rotate(90,360.29075,98.57795)"
103
+ class="st1"
104
+ width="14.08"
105
+ height="13.96"
106
+ id="rect16"
107
+ style="fill:#ffffff" />
108
+
109
+ <rect
110
+ x="456.56"
111
+ y="91.599998"
112
+ transform="rotate(90,463.60275,98.57795)"
113
+ class="st1"
114
+ width="14.08"
115
+ height="13.96"
116
+ id="rect18"
117
+ style="fill:#ffffff" />
118
+
119
+ <rect
120
+ x="36.959999"
121
+ y="91.599998"
122
+ transform="rotate(90,43.9944,98.578)"
123
+ class="st1"
124
+ width="14.08"
125
+ height="13.96"
126
+ id="rect20"
127
+ style="fill:#ffffff" />
128
+
129
+ <rect
130
+ x="0"
131
+ y="91.540001"
132
+ transform="rotate(90,7.04045,98.57795)"
133
+ class="st1"
134
+ width="14.08"
135
+ height="14.08"
136
+ id="rect22"
137
+ style="fill:#ffffff" />
138
+
139
+ <rect
140
+ x="73.879997"
141
+ y="91.610001"
142
+ transform="rotate(90,80.91625,98.57795)"
143
+ class="st0"
144
+ width="14.08"
145
+ height="13.94"
146
+ id="rect24"
147
+ style="fill:#e61d47" />
148
+ <g
149
+ id="g30">
150
+ <polygon
151
+ class="st1"
152
+ points="204.35,73.98 235.93,42.41 216.05,42.41 184.48,73.98 216.05,105.56 235.93,105.56 "
153
+ id="polygon26"
154
+ style="fill:#ffffff" />
155
+ <polygon
156
+ class="st1"
157
+ points="177.32,105.64 191.28,105.64 191.28,85.07 191.31,85.04 191.31,66.59 191.28,66.62 191.28,27.56 177.32,27.56 "
158
+ id="polygon28"
159
+ style="fill:#ffffff" />
160
+ </g>
161
+ <path
162
+ class="st1"
163
+ d="M 427.32,27.49 V 49.22 C 422.71,44.11 416.48,41 408.75,41 c -18.07,0 -29.41,15.95 -29.41,33.15 0,17.45 11.59,33.03 29.41,33.03 8.23,0 14.71,-3.49 19.2,-8.97 l 1.25,7.35 h 12.09 V 27.49 Z m -16.95,67.35 c -10.34,0 -16.57,-9.22 -16.57,-20.69 0,-11.22 6.23,-20.81 16.57,-20.81 9.35,0 17.83,7.73 17.83,20.81 -0.01,12.46 -7.86,20.69 -17.83,20.69 z"
164
+ id="path32"
165
+ inkscape:connector-curvature="0"
166
+ style="fill:#ffffff" />
167
+ <path
168
+ class="st1"
169
+ d="m 470.67,86.98 v -9.26 c 0,-14.33 6.98,-24.3 19.69,-24.3 V 41.07 c -9.35,0 -15.57,3.95 -19.69,9.91 v -8.49 h -14.05 v 44.48 h 14.05 z"
170
+ id="path34"
171
+ inkscape:connector-curvature="0"
172
+ style="fill:#ffffff" />
173
+ <path
174
+ class="st1"
175
+ d="M 327.26,86.98 V 76.59 c 0,-14.58 6.23,-23.18 16.33,-23.18 6.86,0 9.72,5.73 9.72,13.58 v 19.98 h 13.96 V 65.13 c 0,-14.83 -8.23,-24.05 -20.82,-24.05 -8.15,0 -14.71,2.95 -19.19,8.77 V 42.7 h -1.99 v -0.01 l -0.06,0.01 h -11.98 v 44.28 z"
176
+ id="path36"
177
+ inkscape:connector-curvature="0"
178
+ style="fill:#ffffff" />
179
+ </g>
180
+ </svg>
@@ -0,0 +1,180 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Generator: Adobe Illustrator 23.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+
4
+ <svg
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:cc="http://creativecommons.org/ns#"
7
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+ xmlns:svg="http://www.w3.org/2000/svg"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ version="1.1"
13
+ id="Ebene_1"
14
+ x="0px"
15
+ y="0px"
16
+ viewBox="0 0 600.00159 198.53798"
17
+ xml:space="preserve"
18
+ sodipodi:docname="makandra.light.svg"
19
+ width="600.00159"
20
+ height="198.53798"
21
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"><metadata
22
+ id="metadata45"><rdf:RDF><cc:Work
23
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
24
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
25
+ id="defs43" /><sodipodi:namedview
26
+ pagecolor="#ffffff"
27
+ bordercolor="#666666"
28
+ borderopacity="1"
29
+ objecttolerance="10"
30
+ gridtolerance="10"
31
+ guidetolerance="10"
32
+ inkscape:pageopacity="0"
33
+ inkscape:pageshadow="2"
34
+ inkscape:window-width="1920"
35
+ inkscape:window-height="1151"
36
+ id="namedview41"
37
+ showgrid="false"
38
+ fit-margin-top="0"
39
+ fit-margin-left="0"
40
+ fit-margin-right="0"
41
+ fit-margin-bottom="0"
42
+ inkscape:pagecheckerboard="true"
43
+ inkscape:zoom="2.1933333"
44
+ inkscape:cx="-93.29719"
45
+ inkscape:cy="-70.469332"
46
+ inkscape:window-x="1920"
47
+ inkscape:window-y="0"
48
+ inkscape:window-maximized="1"
49
+ inkscape:current-layer="Ebene_1" />
50
+ <style
51
+ type="text/css"
52
+ id="style2">
53
+ .st0{fill:#E61D47;}
54
+ .st1{fill:#141210;}
55
+ </style>
56
+ <g
57
+ id="g38"
58
+ transform="translate(0.00160275,-0.76)">
59
+ <polygon
60
+ class="st0"
61
+ points="585.95,14.81 585.95,59.46 600,45.41 600,0.76 555.34,0.76 541.29,14.81 "
62
+ id="polygon4"
63
+ style="fill:#e61d47" />
64
+ <path
65
+ class="st1"
66
+ d="m 161.87,43.92 v -1.44 h -13.07 -0.87 v 6.8 c -4.61,-5.11 -10.84,-8.22 -18.57,-8.22 -17.7,0 -29.41,15.58 -29.41,33.03 0,17.2 11.22,33.15 29.41,33.15 7.86,0 14.11,-3.21 18.57,-8.39 v 6.77 h 1.87 v 0 h 12.09 V 43.92 Z M 130.98,94.9 c -10.59,0 -16.58,-9.72 -16.58,-20.81 0,-11.59 6.48,-20.69 16.58,-20.69 9.97,0 17.82,8.23 17.82,20.57 0,13.21 -8.47,20.93 -17.82,20.93 z"
67
+ id="path6"
68
+ inkscape:connector-curvature="0"
69
+ style="fill:#141210" />
70
+ <path
71
+ class="st1"
72
+ d="m 297.85,43.93 v -1.44 h -13.07 -0.87 v 6.8 c -4.61,-5.11 -10.84,-8.22 -18.57,-8.22 -17.7,0 -29.41,15.58 -29.41,33.03 0,17.2 11.22,33.15 29.41,33.15 7.86,0 14.11,-3.21 18.57,-8.39 v 6.77 h 1.87 v 0 h 12.09 v -61.7 z m -30.89,50.98 c -10.59,0 -16.58,-9.72 -16.58,-20.81 0,-11.59 6.48,-20.69 16.58,-20.69 9.97,0 17.82,8.23 17.82,20.57 0.01,13.2 -8.47,20.93 -17.82,20.93 z"
73
+ id="path8"
74
+ inkscape:connector-curvature="0"
75
+ style="fill:#141210" />
76
+ <path
77
+ class="st1"
78
+ d="m 558.34,43.87 v -1.44 h -13.07 -0.87 v 6.8 c -4.61,-5.11 -10.84,-8.22 -18.57,-8.22 -17.7,0 -29.41,15.58 -29.41,33.03 0,17.2 11.22,33.15 29.41,33.15 7.86,0 14.11,-3.21 18.57,-8.39 v 6.77 h 1.87 v 0 h 12.09 v -61.7 z m -30.9,50.98 c -10.59,0 -16.58,-9.72 -16.58,-20.81 0,-11.59 6.48,-20.69 16.58,-20.69 9.97,0 17.82,8.23 17.82,20.57 0.01,13.2 -8.47,20.93 -17.82,20.93 z"
79
+ id="path10"
80
+ inkscape:connector-curvature="0"
81
+ style="fill:#141210" />
82
+ <path
83
+ class="st1"
84
+ d="M 14.1,86.98 V 75.1 c 0,-14.58 6.11,-21.81 13.34,-21.81 6.85,0 9.6,5.61 9.6,13.46 V 86.97 H 51 v -11 c 0,-15.33 5.98,-22.68 13.34,-22.68 6.86,0 9.6,5.61 9.6,13.46 V 86.97 H 87.9 V 64.88 c 0,-14.83 -7.98,-23.93 -20.57,-23.93 -7.98,0 -14.83,3.37 -19.19,10.84 -3.24,-6.85 -9.47,-10.84 -17.7,-10.84 -6.72,0 -12.38,2.55 -16.57,7.88 V 42.37 H 0 v 44.6 h 14.1 z"
85
+ id="path12"
86
+ inkscape:connector-curvature="0"
87
+ style="fill:#141210" />
88
+
89
+ <rect
90
+ x="313.17001"
91
+ y="91.599998"
92
+ transform="rotate(90,320.2078,98.578)"
93
+ class="st1"
94
+ width="14.08"
95
+ height="13.96"
96
+ id="rect14"
97
+ style="fill:#141210" />
98
+
99
+ <rect
100
+ x="353.25"
101
+ y="91.599998"
102
+ transform="rotate(90,360.29075,98.57795)"
103
+ class="st1"
104
+ width="14.08"
105
+ height="13.96"
106
+ id="rect16"
107
+ style="fill:#141210" />
108
+
109
+ <rect
110
+ x="456.56"
111
+ y="91.599998"
112
+ transform="rotate(90,463.60275,98.57795)"
113
+ class="st1"
114
+ width="14.08"
115
+ height="13.96"
116
+ id="rect18"
117
+ style="fill:#141210" />
118
+
119
+ <rect
120
+ x="36.959999"
121
+ y="91.599998"
122
+ transform="rotate(90,43.9944,98.578)"
123
+ class="st1"
124
+ width="14.08"
125
+ height="13.96"
126
+ id="rect20"
127
+ style="fill:#141210" />
128
+
129
+ <rect
130
+ x="0"
131
+ y="91.540001"
132
+ transform="rotate(90,7.04045,98.57795)"
133
+ class="st1"
134
+ width="14.08"
135
+ height="14.08"
136
+ id="rect22"
137
+ style="fill:#141210" />
138
+
139
+ <rect
140
+ x="73.879997"
141
+ y="91.610001"
142
+ transform="rotate(90,80.91625,98.57795)"
143
+ class="st0"
144
+ width="14.08"
145
+ height="13.94"
146
+ id="rect24"
147
+ style="fill:#e61d47" />
148
+ <g
149
+ id="g30">
150
+ <polygon
151
+ class="st1"
152
+ points="204.35,73.98 235.93,42.41 216.05,42.41 184.48,73.98 216.05,105.56 235.93,105.56 "
153
+ id="polygon26"
154
+ style="fill:#141210" />
155
+ <polygon
156
+ class="st1"
157
+ points="177.32,105.64 191.28,105.64 191.28,85.07 191.31,85.04 191.31,66.59 191.28,66.62 191.28,27.56 177.32,27.56 "
158
+ id="polygon28"
159
+ style="fill:#141210" />
160
+ </g>
161
+ <path
162
+ class="st1"
163
+ d="M 427.32,27.49 V 49.22 C 422.71,44.11 416.48,41 408.75,41 c -18.07,0 -29.41,15.95 -29.41,33.15 0,17.45 11.59,33.03 29.41,33.03 8.23,0 14.71,-3.49 19.2,-8.97 l 1.25,7.35 h 12.09 V 27.49 Z m -16.95,67.35 c -10.34,0 -16.57,-9.22 -16.57,-20.69 0,-11.22 6.23,-20.81 16.57,-20.81 9.35,0 17.83,7.73 17.83,20.81 -0.01,12.46 -7.86,20.69 -17.83,20.69 z"
164
+ id="path32"
165
+ inkscape:connector-curvature="0"
166
+ style="fill:#141210" />
167
+ <path
168
+ class="st1"
169
+ d="m 470.67,86.98 v -9.26 c 0,-14.33 6.98,-24.3 19.69,-24.3 V 41.07 c -9.35,0 -15.57,3.95 -19.69,9.91 v -8.49 h -14.05 v 44.48 h 14.05 z"
170
+ id="path34"
171
+ inkscape:connector-curvature="0"
172
+ style="fill:#141210" />
173
+ <path
174
+ class="st1"
175
+ d="M 327.26,86.98 V 76.59 c 0,-14.58 6.23,-23.18 16.33,-23.18 6.86,0 9.72,5.73 9.72,13.58 v 19.98 h 13.96 V 65.13 c 0,-14.83 -8.23,-24.05 -20.82,-24.05 -8.15,0 -14.71,2.95 -19.19,8.77 V 42.7 h -1.99 v -0.01 l -0.06,0.01 h -11.98 v 44.28 z"
176
+ id="path36"
177
+ inkscape:connector-curvature="0"
178
+ style="fill:#141210" />
179
+ </g>
180
+ </svg>
data/patiently.gemspec ADDED
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/patiently/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "patiently"
7
+ spec.version = Patiently::VERSION
8
+ spec.authors = ["Henning Koch"]
9
+ spec.email = ["henning.koch@makandra.de"]
10
+
11
+ spec.summary = "Retry a block until it stops raising (or returns truthy)"
12
+ spec.description = "Patiently retries a block of code until it stops raising an exception " \
13
+ "or returns a truthy value, useful for waiting on eventually-consistent " \
14
+ "conditions in tests. Has no runtime dependencies."
15
+ spec.homepage = "https://github.com/makandra/patiently"
16
+ spec.license = "MIT"
17
+ spec.required_ruby_version = ">= 2.7.0"
18
+
19
+ spec.metadata["homepage_uri"] = spec.homepage
20
+ spec.metadata["source_code_uri"] = spec.homepage
21
+ spec.metadata["bug_tracker_uri"] = "#{spec.homepage}/issues"
22
+ spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/main/CHANGELOG.md"
23
+ spec.metadata["rubygems_mfa_required"] = "true"
24
+
25
+ # Specify which files should be added to the gem when it is released.
26
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
27
+ # Mirrors capybara-lockstep: ship everything tracked except the test suite.
28
+ spec.files = IO.popen(%w[git ls-files -z], chdir: __dir__, err: IO::NULL) do |ls|
29
+ ls.readlines("\x0", chomp: true).reject do |f|
30
+ f.match(%r{\A(?:test|spec|features)/})
31
+ end
32
+ end
33
+ spec.bindir = "exe"
34
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
35
+ spec.require_paths = ["lib"]
36
+ end
metadata ADDED
@@ -0,0 +1,76 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: patiently
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Henning Koch
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2026-07-08 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Patiently retries a block of code until it stops raising an exception
14
+ or returns a truthy value, useful for waiting on eventually-consistent conditions
15
+ in tests. Has no runtime dependencies.
16
+ email:
17
+ - henning.koch@makandra.de
18
+ executables: []
19
+ extensions: []
20
+ extra_rdoc_files: []
21
+ files:
22
+ - ".github/workflows/test.yml"
23
+ - ".gitignore"
24
+ - ".rspec"
25
+ - ".ruby-version"
26
+ - AGENTS.md
27
+ - CHANGELOG.md
28
+ - Gemfile
29
+ - Gemfile.lock
30
+ - LICENSE.txt
31
+ - README.md
32
+ - Rakefile
33
+ - bin/console
34
+ - bin/setup
35
+ - lib/patiently.rb
36
+ - lib/patiently/configuration.rb
37
+ - lib/patiently/errors.rb
38
+ - lib/patiently/helpers.rb
39
+ - lib/patiently/rspec.rb
40
+ - lib/patiently/version.rb
41
+ - media/logo.dark.shapes.svg
42
+ - media/logo.dark.text.svg
43
+ - media/logo.light.shapes.svg
44
+ - media/logo.light.text.svg
45
+ - media/makandra-with-bottom-margin.dark.svg
46
+ - media/makandra-with-bottom-margin.light.svg
47
+ - patiently.gemspec
48
+ homepage: https://github.com/makandra/patiently
49
+ licenses:
50
+ - MIT
51
+ metadata:
52
+ homepage_uri: https://github.com/makandra/patiently
53
+ source_code_uri: https://github.com/makandra/patiently
54
+ bug_tracker_uri: https://github.com/makandra/patiently/issues
55
+ changelog_uri: https://github.com/makandra/patiently/blob/main/CHANGELOG.md
56
+ rubygems_mfa_required: 'true'
57
+ post_install_message:
58
+ rdoc_options: []
59
+ require_paths:
60
+ - lib
61
+ required_ruby_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: 2.7.0
66
+ required_rubygems_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ requirements: []
72
+ rubygems_version: 3.1.6
73
+ signing_key:
74
+ specification_version: 4
75
+ summary: Retry a block until it stops raising (or returns truthy)
76
+ test_files: []