tins 1.38.0 → 1.51.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 +4 -4
- data/CHANGES.md +159 -0
- data/README.md +158 -6
- data/Rakefile +28 -18
- data/examples/let.rb +8 -40
- data/examples/mail.rb +0 -1
- data/examples/turing.rb +3 -1
- data/lib/tins/alias.rb +1 -0
- data/lib/tins/annotate.rb +37 -27
- data/lib/tins/ask_and_send.rb +41 -0
- data/lib/tins/attempt.rb +39 -0
- data/lib/tins/bijection.rb +34 -0
- data/lib/tins/case_predicate.rb +21 -0
- data/lib/tins/complete.rb +16 -0
- data/lib/tins/concern.rb +64 -0
- data/lib/tins/date_dummy.rb +36 -4
- data/lib/tins/date_time_dummy.rb +34 -2
- data/lib/tins/deep_dup.rb +9 -2
- data/lib/tins/deprecate.rb +12 -0
- data/lib/tins/dslkit.rb +563 -59
- data/lib/tins/duration.rb +120 -5
- data/lib/tins/expose.rb +54 -5
- data/lib/tins/extract_last_argument_options.rb +9 -0
- data/lib/tins/file_binary.rb +104 -21
- data/lib/tins/find.rb +114 -11
- data/lib/tins/generator.rb +10 -2
- data/lib/tins/go.rb +78 -14
- data/lib/tins/hash_bfs.rb +4 -2
- data/lib/tins/hash_symbolize_keys_recursive.rb +62 -4
- data/lib/tins/hash_union.rb +47 -2
- data/lib/tins/if_predicate.rb +31 -0
- data/lib/tins/implement.rb +50 -0
- data/lib/tins/limited.rb +63 -12
- data/lib/tins/lines_file.rb +81 -2
- data/lib/tins/lru_cache.rb +54 -17
- data/lib/tins/memoize.rb +86 -58
- data/lib/tins/method_description.rb +87 -4
- data/lib/tins/minimize.rb +39 -11
- data/lib/tins/module_group.rb +27 -2
- data/lib/tins/named_set.rb +20 -0
- data/lib/tins/null.rb +86 -15
- data/lib/tins/once.rb +61 -4
- data/lib/tins/p.rb +44 -8
- data/lib/tins/partial_application.rb +66 -7
- data/lib/tins/proc_compose.rb +58 -1
- data/lib/tins/proc_prelude.rb +97 -10
- data/lib/tins/range_plus.rb +30 -2
- data/lib/tins/require_maybe.rb +36 -0
- data/lib/tins/responding.rb +39 -0
- data/lib/tins/secure_write.rb +24 -4
- data/lib/tins/sexy_singleton.rb +45 -48
- data/lib/tins/string_byte_order_mark.rb +33 -2
- data/lib/tins/string_camelize.rb +31 -2
- data/lib/tins/string_named_placeholders.rb +70 -0
- data/lib/tins/string_underscore.rb +33 -2
- data/lib/tins/string_version.rb +190 -12
- data/lib/tins/subhash.rb +35 -10
- data/lib/tins/temp_io.rb +7 -0
- data/lib/tins/temp_io_enum.rb +19 -0
- data/lib/tins/terminal.rb +31 -9
- data/lib/tins/thread_local.rb +67 -5
- data/lib/tins/time_dummy.rb +46 -21
- data/lib/tins/to.rb +15 -0
- data/lib/tins/to_proc.rb +17 -4
- data/lib/tins/token.rb +74 -2
- data/lib/tins/unit.rb +304 -149
- data/lib/tins/version.rb +1 -1
- data/lib/tins/write.rb +14 -3
- data/lib/tins/xt/blank.rb +81 -2
- data/lib/tins/xt/concern.rb +51 -0
- data/lib/tins/xt/deep_dup.rb +4 -2
- data/lib/tins/xt/full.rb +56 -11
- data/lib/tins/xt/irb.rb +46 -2
- data/lib/tins/xt/method_description.rb +0 -12
- data/lib/tins/xt/minimize.rb +7 -0
- data/lib/tins/xt/named.rb +71 -16
- data/lib/tins/xt/proc_compose.rb +4 -0
- data/lib/tins/xt/secure_write.rb +0 -4
- data/lib/tins/xt/string.rb +1 -0
- data/lib/tins/xt/string_camelize.rb +4 -2
- data/lib/tins/xt/string_named_placeholders.rb +7 -0
- data/lib/tins/xt/string_underscore.rb +4 -2
- data/lib/tins/xt/subhash.rb +11 -0
- data/lib/tins/xt/time_freezer.rb +43 -6
- data/lib/tins/xt/write.rb +0 -4
- data/lib/tins/xt.rb +1 -3
- data/lib/tins.rb +17 -3
- data/tests/dslkit_test.rb +15 -0
- data/tests/duration_test.rb +4 -0
- data/tests/from_module_test.rb +30 -2
- data/tests/go_test.rb +4 -2
- data/tests/implement_test.rb +6 -8
- data/tests/limited_test.rb +1 -1
- data/tests/lines_file_test.rb +2 -0
- data/tests/lru_cache_test.rb +12 -0
- data/tests/method_description_test.rb +14 -20
- data/tests/partial_application_test.rb +4 -0
- data/tests/proc_prelude_test.rb +1 -1
- data/tests/scope_test.rb +1 -1
- data/tests/string_named_placeholders.rb +109 -0
- data/tests/string_version_test.rb +15 -0
- data/tests/test_helper.rb +4 -5
- data/tests/to_test.rb +6 -6
- data/tests/token_test.rb +32 -1
- data/tests/unit_test.rb +18 -0
- data/tins.gemspec +13 -11
- metadata +49 -33
- data/lib/tins/count_by.rb +0 -21
- data/lib/tins/deep_const_get.rb +0 -64
- data/lib/tins/timed_cache.rb +0 -51
- data/lib/tins/uniq_by.rb +0 -23
- data/lib/tins/xt/count_by.rb +0 -7
- data/lib/tins/xt/deep_const_get.rb +0 -7
- data/lib/tins/xt/uniq_by.rb +0 -25
- data/tests/count_by_test.rb +0 -17
- data/tests/deep_const_get_test.rb +0 -37
- data/tests/uniq_by_test.rb +0 -31
- /data/{COPYING → LICENSE} +0 -0
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: tins
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.51.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Florian Frank
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: gem_hadar
|
|
@@ -15,14 +15,14 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - "~>"
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: '
|
|
18
|
+
version: '2.10'
|
|
19
19
|
type: :development
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - "~>"
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: '
|
|
25
|
+
version: '2.10'
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: all_images
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -51,6 +51,20 @@ dependencies:
|
|
|
51
51
|
- - ">="
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
53
|
version: '0'
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: simplecov
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '0'
|
|
61
|
+
type: :development
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '0'
|
|
54
68
|
- !ruby/object:Gem::Dependency
|
|
55
69
|
name: term-ansicolor
|
|
56
70
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -71,22 +85,22 @@ dependencies:
|
|
|
71
85
|
requirements:
|
|
72
86
|
- - "~>"
|
|
73
87
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: '3.
|
|
88
|
+
version: '3.7'
|
|
75
89
|
type: :development
|
|
76
90
|
prerelease: false
|
|
77
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
78
92
|
requirements:
|
|
79
93
|
- - "~>"
|
|
80
94
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: '3.
|
|
95
|
+
version: '3.7'
|
|
82
96
|
- !ruby/object:Gem::Dependency
|
|
83
|
-
name:
|
|
97
|
+
name: sync
|
|
84
98
|
requirement: !ruby/object:Gem::Requirement
|
|
85
99
|
requirements:
|
|
86
100
|
- - ">="
|
|
87
101
|
- !ruby/object:Gem::Version
|
|
88
102
|
version: '0'
|
|
89
|
-
type: :
|
|
103
|
+
type: :runtime
|
|
90
104
|
prerelease: false
|
|
91
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
92
106
|
requirements:
|
|
@@ -94,7 +108,7 @@ dependencies:
|
|
|
94
108
|
- !ruby/object:Gem::Version
|
|
95
109
|
version: '0'
|
|
96
110
|
- !ruby/object:Gem::Dependency
|
|
97
|
-
name:
|
|
111
|
+
name: bigdecimal
|
|
98
112
|
requirement: !ruby/object:Gem::Requirement
|
|
99
113
|
requirements:
|
|
100
114
|
- - ">="
|
|
@@ -108,7 +122,7 @@ dependencies:
|
|
|
108
122
|
- !ruby/object:Gem::Version
|
|
109
123
|
version: '0'
|
|
110
124
|
- !ruby/object:Gem::Dependency
|
|
111
|
-
name:
|
|
125
|
+
name: readline
|
|
112
126
|
requirement: !ruby/object:Gem::Requirement
|
|
113
127
|
requirements:
|
|
114
128
|
- - ">="
|
|
@@ -121,6 +135,20 @@ dependencies:
|
|
|
121
135
|
- - ">="
|
|
122
136
|
- !ruby/object:Gem::Version
|
|
123
137
|
version: '0'
|
|
138
|
+
- !ruby/object:Gem::Dependency
|
|
139
|
+
name: mize
|
|
140
|
+
requirement: !ruby/object:Gem::Requirement
|
|
141
|
+
requirements:
|
|
142
|
+
- - "~>"
|
|
143
|
+
- !ruby/object:Gem::Version
|
|
144
|
+
version: '0.6'
|
|
145
|
+
type: :runtime
|
|
146
|
+
prerelease: false
|
|
147
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
148
|
+
requirements:
|
|
149
|
+
- - "~>"
|
|
150
|
+
- !ruby/object:Gem::Version
|
|
151
|
+
version: '0.6'
|
|
124
152
|
description: All the stuff that isn't good/big enough for a real library.
|
|
125
153
|
email: flori@ping.de
|
|
126
154
|
executables: []
|
|
@@ -140,10 +168,8 @@ extra_rdoc_files:
|
|
|
140
168
|
- lib/tins/case_predicate.rb
|
|
141
169
|
- lib/tins/complete.rb
|
|
142
170
|
- lib/tins/concern.rb
|
|
143
|
-
- lib/tins/count_by.rb
|
|
144
171
|
- lib/tins/date_dummy.rb
|
|
145
172
|
- lib/tins/date_time_dummy.rb
|
|
146
|
-
- lib/tins/deep_const_get.rb
|
|
147
173
|
- lib/tins/deep_dup.rb
|
|
148
174
|
- lib/tins/deprecate.rb
|
|
149
175
|
- lib/tins/dslkit.rb
|
|
@@ -180,6 +206,7 @@ extra_rdoc_files:
|
|
|
180
206
|
- lib/tins/sexy_singleton.rb
|
|
181
207
|
- lib/tins/string_byte_order_mark.rb
|
|
182
208
|
- lib/tins/string_camelize.rb
|
|
209
|
+
- lib/tins/string_named_placeholders.rb
|
|
183
210
|
- lib/tins/string_underscore.rb
|
|
184
211
|
- lib/tins/string_version.rb
|
|
185
212
|
- lib/tins/subhash.rb
|
|
@@ -188,11 +215,9 @@ extra_rdoc_files:
|
|
|
188
215
|
- lib/tins/terminal.rb
|
|
189
216
|
- lib/tins/thread_local.rb
|
|
190
217
|
- lib/tins/time_dummy.rb
|
|
191
|
-
- lib/tins/timed_cache.rb
|
|
192
218
|
- lib/tins/to.rb
|
|
193
219
|
- lib/tins/to_proc.rb
|
|
194
220
|
- lib/tins/token.rb
|
|
195
|
-
- lib/tins/uniq_by.rb
|
|
196
221
|
- lib/tins/unit.rb
|
|
197
222
|
- lib/tins/version.rb
|
|
198
223
|
- lib/tins/write.rb
|
|
@@ -204,10 +229,8 @@ extra_rdoc_files:
|
|
|
204
229
|
- lib/tins/xt/case_predicate.rb
|
|
205
230
|
- lib/tins/xt/complete.rb
|
|
206
231
|
- lib/tins/xt/concern.rb
|
|
207
|
-
- lib/tins/xt/count_by.rb
|
|
208
232
|
- lib/tins/xt/date_dummy.rb
|
|
209
233
|
- lib/tins/xt/date_time_dummy.rb
|
|
210
|
-
- lib/tins/xt/deep_const_get.rb
|
|
211
234
|
- lib/tins/xt/deep_dup.rb
|
|
212
235
|
- lib/tins/xt/deprecate.rb
|
|
213
236
|
- lib/tins/xt/dslkit.rb
|
|
@@ -222,6 +245,7 @@ extra_rdoc_files:
|
|
|
222
245
|
- lib/tins/xt/implement.rb
|
|
223
246
|
- lib/tins/xt/irb.rb
|
|
224
247
|
- lib/tins/xt/method_description.rb
|
|
248
|
+
- lib/tins/xt/minimize.rb
|
|
225
249
|
- lib/tins/xt/named.rb
|
|
226
250
|
- lib/tins/xt/null.rb
|
|
227
251
|
- lib/tins/xt/p.rb
|
|
@@ -236,6 +260,7 @@ extra_rdoc_files:
|
|
|
236
260
|
- lib/tins/xt/string.rb
|
|
237
261
|
- lib/tins/xt/string_byte_order_mark.rb
|
|
238
262
|
- lib/tins/xt/string_camelize.rb
|
|
263
|
+
- lib/tins/xt/string_named_placeholders.rb
|
|
239
264
|
- lib/tins/xt/string_underscore.rb
|
|
240
265
|
- lib/tins/xt/string_version.rb
|
|
241
266
|
- lib/tins/xt/subhash.rb
|
|
@@ -243,12 +268,11 @@ extra_rdoc_files:
|
|
|
243
268
|
- lib/tins/xt/time_dummy.rb
|
|
244
269
|
- lib/tins/xt/time_freezer.rb
|
|
245
270
|
- lib/tins/xt/to.rb
|
|
246
|
-
- lib/tins/xt/uniq_by.rb
|
|
247
271
|
- lib/tins/xt/write.rb
|
|
248
272
|
files:
|
|
249
273
|
- CHANGES.md
|
|
250
|
-
- COPYING
|
|
251
274
|
- Gemfile
|
|
275
|
+
- LICENSE
|
|
252
276
|
- README.md
|
|
253
277
|
- Rakefile
|
|
254
278
|
- examples/add_one.png
|
|
@@ -289,10 +313,8 @@ files:
|
|
|
289
313
|
- lib/tins/case_predicate.rb
|
|
290
314
|
- lib/tins/complete.rb
|
|
291
315
|
- lib/tins/concern.rb
|
|
292
|
-
- lib/tins/count_by.rb
|
|
293
316
|
- lib/tins/date_dummy.rb
|
|
294
317
|
- lib/tins/date_time_dummy.rb
|
|
295
|
-
- lib/tins/deep_const_get.rb
|
|
296
318
|
- lib/tins/deep_dup.rb
|
|
297
319
|
- lib/tins/deprecate.rb
|
|
298
320
|
- lib/tins/dslkit.rb
|
|
@@ -329,6 +351,7 @@ files:
|
|
|
329
351
|
- lib/tins/sexy_singleton.rb
|
|
330
352
|
- lib/tins/string_byte_order_mark.rb
|
|
331
353
|
- lib/tins/string_camelize.rb
|
|
354
|
+
- lib/tins/string_named_placeholders.rb
|
|
332
355
|
- lib/tins/string_underscore.rb
|
|
333
356
|
- lib/tins/string_version.rb
|
|
334
357
|
- lib/tins/subhash.rb
|
|
@@ -337,11 +360,9 @@ files:
|
|
|
337
360
|
- lib/tins/terminal.rb
|
|
338
361
|
- lib/tins/thread_local.rb
|
|
339
362
|
- lib/tins/time_dummy.rb
|
|
340
|
-
- lib/tins/timed_cache.rb
|
|
341
363
|
- lib/tins/to.rb
|
|
342
364
|
- lib/tins/to_proc.rb
|
|
343
365
|
- lib/tins/token.rb
|
|
344
|
-
- lib/tins/uniq_by.rb
|
|
345
366
|
- lib/tins/unit.rb
|
|
346
367
|
- lib/tins/version.rb
|
|
347
368
|
- lib/tins/write.rb
|
|
@@ -353,10 +374,8 @@ files:
|
|
|
353
374
|
- lib/tins/xt/case_predicate.rb
|
|
354
375
|
- lib/tins/xt/complete.rb
|
|
355
376
|
- lib/tins/xt/concern.rb
|
|
356
|
-
- lib/tins/xt/count_by.rb
|
|
357
377
|
- lib/tins/xt/date_dummy.rb
|
|
358
378
|
- lib/tins/xt/date_time_dummy.rb
|
|
359
|
-
- lib/tins/xt/deep_const_get.rb
|
|
360
379
|
- lib/tins/xt/deep_dup.rb
|
|
361
380
|
- lib/tins/xt/deprecate.rb
|
|
362
381
|
- lib/tins/xt/dslkit.rb
|
|
@@ -371,6 +390,7 @@ files:
|
|
|
371
390
|
- lib/tins/xt/implement.rb
|
|
372
391
|
- lib/tins/xt/irb.rb
|
|
373
392
|
- lib/tins/xt/method_description.rb
|
|
393
|
+
- lib/tins/xt/minimize.rb
|
|
374
394
|
- lib/tins/xt/named.rb
|
|
375
395
|
- lib/tins/xt/null.rb
|
|
376
396
|
- lib/tins/xt/p.rb
|
|
@@ -385,6 +405,7 @@ files:
|
|
|
385
405
|
- lib/tins/xt/string.rb
|
|
386
406
|
- lib/tins/xt/string_byte_order_mark.rb
|
|
387
407
|
- lib/tins/xt/string_camelize.rb
|
|
408
|
+
- lib/tins/xt/string_named_placeholders.rb
|
|
388
409
|
- lib/tins/xt/string_underscore.rb
|
|
389
410
|
- lib/tins/xt/string_version.rb
|
|
390
411
|
- lib/tins/xt/subhash.rb
|
|
@@ -392,7 +413,6 @@ files:
|
|
|
392
413
|
- lib/tins/xt/time_dummy.rb
|
|
393
414
|
- lib/tins/xt/time_freezer.rb
|
|
394
415
|
- lib/tins/xt/to.rb
|
|
395
|
-
- lib/tins/xt/uniq_by.rb
|
|
396
416
|
- lib/tins/xt/write.rb
|
|
397
417
|
- tests/annotate_test.rb
|
|
398
418
|
- tests/ask_and_send_test.rb
|
|
@@ -401,10 +421,8 @@ files:
|
|
|
401
421
|
- tests/blank_full_test.rb
|
|
402
422
|
- tests/case_predicate_test.rb
|
|
403
423
|
- tests/concern_test.rb
|
|
404
|
-
- tests/count_by_test.rb
|
|
405
424
|
- tests/date_dummy_test.rb
|
|
406
425
|
- tests/date_time_dummy_test.rb
|
|
407
|
-
- tests/deep_const_get_test.rb
|
|
408
426
|
- tests/deep_dup_test.rb
|
|
409
427
|
- tests/delegate_test.rb
|
|
410
428
|
- tests/deprecate_test.rb
|
|
@@ -446,6 +464,7 @@ files:
|
|
|
446
464
|
- tests/sexy_singleton_test.rb
|
|
447
465
|
- tests/string_byte_order_mark_test.rb
|
|
448
466
|
- tests/string_camelize_test.rb
|
|
467
|
+
- tests/string_named_placeholders.rb
|
|
449
468
|
- tests/string_underscore_test.rb
|
|
450
469
|
- tests/string_version_test.rb
|
|
451
470
|
- tests/subhash_test.rb
|
|
@@ -455,7 +474,6 @@ files:
|
|
|
455
474
|
- tests/time_freezer_test.rb
|
|
456
475
|
- tests/to_test.rb
|
|
457
476
|
- tests/token_test.rb
|
|
458
|
-
- tests/uniq_by_test.rb
|
|
459
477
|
- tests/unit_test.rb
|
|
460
478
|
- tins.gemspec
|
|
461
479
|
homepage: https://github.com/flori/tins
|
|
@@ -473,14 +491,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
473
491
|
requirements:
|
|
474
492
|
- - ">="
|
|
475
493
|
- !ruby/object:Gem::Version
|
|
476
|
-
version: '
|
|
494
|
+
version: '3.1'
|
|
477
495
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
478
496
|
requirements:
|
|
479
497
|
- - ">="
|
|
480
498
|
- !ruby/object:Gem::Version
|
|
481
499
|
version: '0'
|
|
482
500
|
requirements: []
|
|
483
|
-
rubygems_version:
|
|
501
|
+
rubygems_version: 4.0.2
|
|
484
502
|
specification_version: 4
|
|
485
503
|
summary: Useful stuff.
|
|
486
504
|
test_files:
|
|
@@ -491,10 +509,8 @@ test_files:
|
|
|
491
509
|
- tests/blank_full_test.rb
|
|
492
510
|
- tests/case_predicate_test.rb
|
|
493
511
|
- tests/concern_test.rb
|
|
494
|
-
- tests/count_by_test.rb
|
|
495
512
|
- tests/date_dummy_test.rb
|
|
496
513
|
- tests/date_time_dummy_test.rb
|
|
497
|
-
- tests/deep_const_get_test.rb
|
|
498
514
|
- tests/deep_dup_test.rb
|
|
499
515
|
- tests/delegate_test.rb
|
|
500
516
|
- tests/deprecate_test.rb
|
|
@@ -536,6 +552,7 @@ test_files:
|
|
|
536
552
|
- tests/sexy_singleton_test.rb
|
|
537
553
|
- tests/string_byte_order_mark_test.rb
|
|
538
554
|
- tests/string_camelize_test.rb
|
|
555
|
+
- tests/string_named_placeholders.rb
|
|
539
556
|
- tests/string_underscore_test.rb
|
|
540
557
|
- tests/string_version_test.rb
|
|
541
558
|
- tests/subhash_test.rb
|
|
@@ -545,5 +562,4 @@ test_files:
|
|
|
545
562
|
- tests/time_freezer_test.rb
|
|
546
563
|
- tests/to_test.rb
|
|
547
564
|
- tests/token_test.rb
|
|
548
|
-
- tests/uniq_by_test.rb
|
|
549
565
|
- tests/unit_test.rb
|
data/lib/tins/count_by.rb
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
require 'tins/string_version'
|
|
2
|
-
|
|
3
|
-
module Tins
|
|
4
|
-
module CountBy
|
|
5
|
-
if Tins::StringVersion.compare(RUBY_VERSION, :<=, "1.8")
|
|
6
|
-
def count_by(&block)
|
|
7
|
-
block ||= lambda { |x| true }
|
|
8
|
-
inject(0) { |s, e| s += 1 if block.call(e); s }
|
|
9
|
-
end
|
|
10
|
-
else
|
|
11
|
-
require 'tins/deprecate'
|
|
12
|
-
extend Tins::Deprecate
|
|
13
|
-
|
|
14
|
-
deprecate method:
|
|
15
|
-
def count_by(&block)
|
|
16
|
-
count(&block)
|
|
17
|
-
end,
|
|
18
|
-
new_method: :count
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
data/lib/tins/deep_const_get.rb
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
require 'tins/string_version'
|
|
2
|
-
|
|
3
|
-
module Tins
|
|
4
|
-
module DeepConstGet
|
|
5
|
-
class << self
|
|
6
|
-
if ::Object.method(:const_defined?).arity == 1
|
|
7
|
-
# :nocov:
|
|
8
|
-
# We do not create coverage on 1.8
|
|
9
|
-
def const_defined_in?(modul, constant)
|
|
10
|
-
modul.const_defined?(constant)
|
|
11
|
-
end
|
|
12
|
-
# :nocov:
|
|
13
|
-
else
|
|
14
|
-
require 'tins/deprecate'
|
|
15
|
-
extend Tins::Deprecate
|
|
16
|
-
|
|
17
|
-
deprecate method:
|
|
18
|
-
def const_defined_in?(modul, constant)
|
|
19
|
-
modul.const_defined?(constant, false)
|
|
20
|
-
end,
|
|
21
|
-
new_method: :const_defined?
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
if Tins::StringVersion.compare(RUBY_VERSION, :<, '2.0')
|
|
25
|
-
def deep_const_get(path, start_module = Object)
|
|
26
|
-
path.to_s.split('::').inject(start_module) do |p, c|
|
|
27
|
-
case
|
|
28
|
-
when c.empty?
|
|
29
|
-
if start_module == Object
|
|
30
|
-
Object
|
|
31
|
-
else
|
|
32
|
-
raise ArgumentError, "top level constants cannot be reached from"\
|
|
33
|
-
" start module #{start_module.inspect}"
|
|
34
|
-
end
|
|
35
|
-
when const_defined_in?(p, c)
|
|
36
|
-
p.const_get(c)
|
|
37
|
-
else
|
|
38
|
-
begin
|
|
39
|
-
p.const_missing(c)
|
|
40
|
-
rescue NameError => e
|
|
41
|
-
raise ArgumentError, "can't get const #{path}: #{e}"
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
else
|
|
47
|
-
require 'tins/deprecate'
|
|
48
|
-
extend Tins::Deprecate
|
|
49
|
-
|
|
50
|
-
deprecate method:
|
|
51
|
-
def deep_const_get(path, start_module = Object)
|
|
52
|
-
start_module.const_get(path)
|
|
53
|
-
rescue NameError => e
|
|
54
|
-
raise ArgumentError, "can't get const #{path}: #{e}"
|
|
55
|
-
end,
|
|
56
|
-
new_method: :const_get
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def deep_const_get(path, start_module = Object)
|
|
61
|
-
::Tins::DeepConstGet.deep_const_get(path, start_module)
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
end
|
data/lib/tins/timed_cache.rb
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
class TimedCache
|
|
2
|
-
class Value < Struct.new(:value, :timestamp)
|
|
3
|
-
def self.json_create(hash)
|
|
4
|
-
new(*hash.values_at('value', 'timestamp'))
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
def as_json(*)
|
|
8
|
-
super | { JSON.create_id => self.class.name }
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def initialize(name, ttl: 60, jitter: 1..5, &block)
|
|
13
|
-
@name = name
|
|
14
|
-
@ttl = ttl
|
|
15
|
-
@jitter = jitter
|
|
16
|
-
block or raise ArgumentError, 'block is required'
|
|
17
|
-
@block = block
|
|
18
|
-
@redis = Redis.new
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def namespaced(key)
|
|
22
|
-
"timed_cache:#{key}"
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def value
|
|
26
|
-
now = Time.now
|
|
27
|
-
if stored = stored_value
|
|
28
|
-
if (now - @ttl).to_i >= stored.timestamp
|
|
29
|
-
Thread.new {
|
|
30
|
-
sleep @jitter
|
|
31
|
-
if stored_value.timestamp <= stored.timestamp
|
|
32
|
-
@redis.set namespaced(@name), new_value(now).to_json
|
|
33
|
-
end
|
|
34
|
-
}
|
|
35
|
-
end
|
|
36
|
-
stored.value
|
|
37
|
-
else
|
|
38
|
-
nv = new_value(now)
|
|
39
|
-
@redis.set namespaced(@name), nv.to_json
|
|
40
|
-
nv.value
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def new_value(now)
|
|
45
|
-
Value.new(@block.(), now.to_i)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def stored_value
|
|
49
|
-
@redis.get(namespaced(@name)).full? { |s| ::JSON.parse(s, create_additions: true) rescue nil }
|
|
50
|
-
end
|
|
51
|
-
end
|
data/lib/tins/uniq_by.rb
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
require 'tins/string_version'
|
|
2
|
-
|
|
3
|
-
module Tins
|
|
4
|
-
module UniqBy
|
|
5
|
-
if Tins::StringVersion.compare(RUBY_VERSION, :<=, "1.8")
|
|
6
|
-
def uniq_by(&block)
|
|
7
|
-
block ||= lambda { |x| x }
|
|
8
|
-
inject({}) { |h, e| h[ block.call(e) ] ||= e; h }.values
|
|
9
|
-
end
|
|
10
|
-
else
|
|
11
|
-
require 'tins/deprecate'
|
|
12
|
-
extend Tins::Deprecate
|
|
13
|
-
|
|
14
|
-
deprecate method:
|
|
15
|
-
def uniq_by(&block)
|
|
16
|
-
uniq(&block)
|
|
17
|
-
end,
|
|
18
|
-
new_method: :uniq
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
require 'tins/alias'
|
data/lib/tins/xt/count_by.rb
DELETED
data/lib/tins/xt/uniq_by.rb
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
require 'tins/string_version'
|
|
2
|
-
require 'tins/uniq_by'
|
|
3
|
-
|
|
4
|
-
module Tins
|
|
5
|
-
module ::Enumerable
|
|
6
|
-
include UniqBy
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
class ::Array
|
|
10
|
-
if Tins::StringVersion.compare(RUBY_VERSION, :<=, "1.8")
|
|
11
|
-
include UniqBy
|
|
12
|
-
|
|
13
|
-
def uniq_by!(&b)
|
|
14
|
-
replace uniq_by(&b)
|
|
15
|
-
end
|
|
16
|
-
else
|
|
17
|
-
require 'tins/deprecate'
|
|
18
|
-
extend Tins::Deprecate
|
|
19
|
-
|
|
20
|
-
deprecate method:
|
|
21
|
-
alias_method(:uniq_by!, :uniq!),
|
|
22
|
-
new_method: :uniq!
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
data/tests/count_by_test.rb
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
require 'test_helper'
|
|
2
|
-
require 'tins/xt'
|
|
3
|
-
|
|
4
|
-
module Tins
|
|
5
|
-
class CountByTest < Test::Unit::TestCase
|
|
6
|
-
|
|
7
|
-
def test_count_by
|
|
8
|
-
assert_equal 0, [].count_by { |x| x % 2 == 0 }
|
|
9
|
-
assert_equal 0, [ 1 ].count_by { |x| x % 2 == 0 }
|
|
10
|
-
assert_equal 1, [ 1 ].count_by { |x| x % 2 == 1 }
|
|
11
|
-
assert_equal 1, [ 1, 2 ].count_by { |x| x % 2 == 0 }
|
|
12
|
-
assert_equal 1, [ 1, 2 ].count_by { |x| x % 2 == 1 }
|
|
13
|
-
assert_equal 2, [ 1, 2, 3, 4, 5 ].count_by { |x| x % 2 == 0 }
|
|
14
|
-
assert_equal 3, [ 1, 2, 3, 4, 5 ].count_by { |x| x % 2 == 1 }
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
require 'test_helper'
|
|
2
|
-
require 'tins/xt/deep_const_get'
|
|
3
|
-
|
|
4
|
-
module Tins
|
|
5
|
-
class DeepConstGetTest < Test::Unit::TestCase
|
|
6
|
-
module A
|
|
7
|
-
module B
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
module C
|
|
12
|
-
module NotB
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def self.const_missing(c)
|
|
16
|
-
NotB
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def test_deep_const_get_with_start_module
|
|
21
|
-
assert_raise(ArgumentError) { deep_const_get '::B', A }
|
|
22
|
-
assert_equal A::B, deep_const_get('B', A)
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def test_deep_const_get_without_start_module
|
|
26
|
-
assert_equal Tins::DeepConstGetTest::A::B, deep_const_get('::Tins::DeepConstGetTest::A::B')
|
|
27
|
-
assert_equal Tins::DeepConstGetTest::A::B, deep_const_get('Tins::DeepConstGetTest::A::B')
|
|
28
|
-
assert_equal Array, deep_const_get('::Array')
|
|
29
|
-
assert_equal Array, deep_const_get('Array')
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def test_deep_const_get_with_const_missing
|
|
33
|
-
assert_raise(ArgumentError) { deep_const_get '::Tins::DeepConstGetTest::A::NIXDA' }
|
|
34
|
-
assert_equal Tins::DeepConstGetTest::C::NotB, deep_const_get('::Tins::DeepConstGetTest::C::B')
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
data/tests/uniq_by_test.rb
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
require 'test_helper'
|
|
2
|
-
require 'tins/xt'
|
|
3
|
-
|
|
4
|
-
module Tins
|
|
5
|
-
class UniqByTest < Test::Unit::TestCase
|
|
6
|
-
|
|
7
|
-
unless defined?(Point)
|
|
8
|
-
class Point < Struct.new :x, :y
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def test_uniq_by
|
|
13
|
-
assert_equal [ 1, 2, 3 ], [ 1, 2, 2, 3 ].uniq_by.sort
|
|
14
|
-
a = [ 1, 2, 2, 3 ]; a.uniq_by!
|
|
15
|
-
assert_equal [ 1, 2, 3 ], a.sort
|
|
16
|
-
p1 = Point.new 1, 2
|
|
17
|
-
p2 = Point.new 2, 2
|
|
18
|
-
p3 = Point.new 2, 2
|
|
19
|
-
p4 = Point.new 3, 3
|
|
20
|
-
a = [ p1, p2, p3, p4 ]
|
|
21
|
-
a_uniq = a.uniq_by { |p| p.y }
|
|
22
|
-
assert_equal 2, a_uniq.size
|
|
23
|
-
assert a_uniq.include?(p4)
|
|
24
|
-
assert [ p1, p2, p3 ].any? { |p| a_uniq.include? p }
|
|
25
|
-
a.uniq_by! { |p| p.y }
|
|
26
|
-
assert_equal 2, a.size
|
|
27
|
-
assert a.include?(p4)
|
|
28
|
-
assert [ p1, p2, p3 ].any? { |p| a.include? p }
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
/data/{COPYING → LICENSE}
RENAMED
|
File without changes
|