functionable 1.1.0 → 1.2.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
- checksums.yaml.gz.sig +0 -0
- data/README.adoc +28 -28
- data/functionable.gemspec +1 -1
- data.tar.gz.sig +0 -0
- metadata +13 -13
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f807ef0739fd55dd07042221c1fee8271968a28de4a83f14d5af541e8e088dc0
|
|
4
|
+
data.tar.gz: ee198b56a5c30240c0c7071f71a9b1ee7f618ce94427a5529c2287c51bbb7eff
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fc6523c4b776ce2daf87bf7bc129f8d56a997ff00659431c2212c0482c70150296dc78cf0a411d02a85e2a21f350b6635d37c2aad57b773d547ae066439af75c
|
|
7
|
+
data.tar.gz: 7f065288a8a025be12970af53f6c73ed11e47212f8a34a24a831f7da008cc2906bd2a8ca7ec0daad02d79f4c775b07e6a24f1a651480d8cd1263d01e42af1d1d
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/README.adoc
CHANGED
|
@@ -408,40 +408,40 @@ end
|
|
|
408
408
|
When you run the above benchmark, you should see the following results:
|
|
409
409
|
|
|
410
410
|
----
|
|
411
|
-
ruby
|
|
411
|
+
ruby 4.0.1 (2026-01-13 revision e04267a14b) +YJIT +PRISM [arm64-darwin25.2.0]
|
|
412
412
|
Warming up --------------------------------------
|
|
413
|
-
Proc 2.
|
|
414
|
-
Lambda 2.
|
|
415
|
-
Module (function)
|
|
413
|
+
Proc 2.275M i/100ms
|
|
414
|
+
Lambda 2.212M i/100ms
|
|
415
|
+
Module (function) 4.654M i/100ms
|
|
416
416
|
Module (functionable)
|
|
417
|
-
4.
|
|
418
|
-
Module (self) 4.
|
|
419
|
-
Class (new)
|
|
420
|
-
Class (memoized) 4.
|
|
421
|
-
Method (new)
|
|
422
|
-
Method (memoized) 2.
|
|
417
|
+
4.682M i/100ms
|
|
418
|
+
Module (self) 4.567M i/100ms
|
|
419
|
+
Class (new) 2.359M i/100ms
|
|
420
|
+
Class (memoized) 4.536M i/100ms
|
|
421
|
+
Method (new) 1.176M i/100ms
|
|
422
|
+
Method (memoized) 2.173M i/100ms
|
|
423
423
|
Calculating -------------------------------------
|
|
424
|
-
Proc
|
|
425
|
-
Lambda
|
|
426
|
-
Module (function)
|
|
424
|
+
Proc 23.976M (± 0.1%) i/s (41.71 ns/i) - 120.575M in 5.029071s
|
|
425
|
+
Lambda 24.414M (± 0.2%) i/s (40.96 ns/i) - 123.885M in 5.074316s
|
|
426
|
+
Module (function) 61.028M (± 0.7%) i/s (16.39 ns/i) - 307.154M in 5.033292s
|
|
427
427
|
Module (functionable)
|
|
428
|
-
|
|
429
|
-
Module (self)
|
|
430
|
-
Class (new)
|
|
431
|
-
Class (memoized)
|
|
432
|
-
Method (new)
|
|
433
|
-
Method (memoized) 24.
|
|
428
|
+
60.864M (± 0.5%) i/s (16.43 ns/i) - 304.327M in 5.000243s
|
|
429
|
+
Module (self) 60.261M (± 0.6%) i/s (16.59 ns/i) - 301.446M in 5.002511s
|
|
430
|
+
Class (new) 28.202M (± 8.2%) i/s (35.46 ns/i) - 141.526M in 5.048420s
|
|
431
|
+
Class (memoized) 57.157M (± 1.0%) i/s (17.50 ns/i) - 285.794M in 5.000639s
|
|
432
|
+
Method (new) 13.265M (± 9.7%) i/s (75.39 ns/i) - 65.847M in 5.012654s
|
|
433
|
+
Method (memoized) 24.390M (± 0.2%) i/s (41.00 ns/i) - 123.861M in 5.078408s
|
|
434
434
|
|
|
435
435
|
Comparison:
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
Module (
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
Method (memoized):
|
|
443
|
-
|
|
444
|
-
Method (new):
|
|
436
|
+
Module (function): 61027866.3 i/s
|
|
437
|
+
Module (functionable): 60864191.4 i/s - same-ish: difference falls within error
|
|
438
|
+
Module (self): 60261194.0 i/s - same-ish: difference falls within error
|
|
439
|
+
Class (memoized): 57156588.3 i/s - 1.07x slower
|
|
440
|
+
Class (new): 28201872.3 i/s - 2.16x slower
|
|
441
|
+
Lambda: 24414262.5 i/s - 2.50x slower
|
|
442
|
+
Method (memoized): 24389728.5 i/s - 2.50x slower
|
|
443
|
+
Proc: 23975703.7 i/s - 2.55x slower
|
|
444
|
+
Method (new): 13264797.8 i/s - 4.60x slower
|
|
445
445
|
----
|
|
446
446
|
|
|
447
447
|
As you can see, a functional module is one of the fastest while everything else is much slower.
|
data/functionable.gemspec
CHANGED
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: functionable
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Brooke Kuhlmann
|
|
@@ -9,9 +9,9 @@ bindir: bin
|
|
|
9
9
|
cert_chain:
|
|
10
10
|
- |
|
|
11
11
|
-----BEGIN CERTIFICATE-----
|
|
12
|
-
|
|
12
|
+
MIIENjCCAp6gAwIBAgIBAzANBgkqhkiG9w0BAQsFADBBMQ8wDQYDVQQDDAZicm9v
|
|
13
13
|
a2UxGjAYBgoJkiaJk/IsZAEZFgphbGNoZW1pc3RzMRIwEAYKCZImiZPyLGQBGRYC
|
|
14
|
-
|
|
14
|
+
aW8wHhcNMjYwMzI1MTI0OTEyWhcNMjcwMzI1MTI0OTEyWjBBMQ8wDQYDVQQDDAZi
|
|
15
15
|
cm9va2UxGjAYBgoJkiaJk/IsZAEZFgphbGNoZW1pc3RzMRIwEAYKCZImiZPyLGQB
|
|
16
16
|
GRYCaW8wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCro8tj5/E1Hg88
|
|
17
17
|
f4qfiwPVd2zJQHvdYt4GHVvuHRRgx4HGhJuNp+4BId08RBn7V6V1MW6MY3kezRBs
|
|
@@ -23,15 +23,15 @@ cert_chain:
|
|
|
23
23
|
GUHU9MyIXbFOsnp3K3ADrAVjPWop8EZkmUR3MV/CUm00w2cZHCSGiXl1KMpiVKvk
|
|
24
24
|
Ywr1gd2ZME4QLSo+EXUtLxDUa/W3xnBS8dBOuMMz02FPWYr3PN8CAwEAAaM5MDcw
|
|
25
25
|
CQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFAFgmv0tYMZnItuPycSM
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
26
|
+
F5wykJEVMA0GCSqGSIb3DQEBCwUAA4IBgQAG+ykjp+DIXSybGEtX+/ve974mYfN6
|
|
27
|
+
8U7qcVfRM+qDSOZ+97iu30qUTbVAKIHlHCDKRn3SgOffDUB5VU2MsJBh/3TPKWBZ
|
|
28
|
+
anB/uzMcwOfru+qyA3b7ZFqZzRLWmR5FtPObFxc0gYMT3YvLNHk2Nb9Vjq/PoiGG
|
|
29
|
+
e75PXweDOokwDA5m1gMOz1rdp/dlGMXkSFQg94PPVyUKXgO4VzWTgePSDxOIL+v6
|
|
30
|
+
+OWV6AaEH9BaqxnmdA5ubi0L7bhl0gbN92FxpNO3kpTjww8kme856a+wCK3qyM5w
|
|
31
|
+
7ZLbUexynDN0Au8eSpT2Bf6ztGmB1S9ffzDJsGX1/lkpMIB51e48Xe2+gzzOgemk
|
|
32
|
+
CdZaGupj6WkarnT8kh/cPtyA5ax4rGX6GOS8meGxzkv8Uy0JSEOYAp6wLfIisYZp
|
|
33
|
+
IJBIXIOkwKKJ0eB5YHrUSJxzpP4LlcIg/eTftaXmJdYjy+2VRrCZYDjfguyLmMjR
|
|
34
|
+
KR9w4/Fjvqy87kCHmxMWa6IL2Vzt1Clm2cA=
|
|
35
35
|
-----END CERTIFICATE-----
|
|
36
36
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
37
37
|
dependencies: []
|
|
@@ -72,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
72
72
|
- !ruby/object:Gem::Version
|
|
73
73
|
version: '0'
|
|
74
74
|
requirements: []
|
|
75
|
-
rubygems_version: 4.0.
|
|
75
|
+
rubygems_version: 4.0.10
|
|
76
76
|
specification_version: 4
|
|
77
77
|
summary: Enhances modules to be functional by default.
|
|
78
78
|
test_files: []
|
metadata.gz.sig
CHANGED
|
Binary file
|