async-enumerable 0.1.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.
Files changed (70) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.standard.yml +5 -0
  4. data/CHANGELOG.md +5 -0
  5. data/CODE_OF_CONDUCT.md +132 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +416 -0
  8. data/Rakefile +127 -0
  9. data/benchmark/async_all.yaml +38 -0
  10. data/benchmark/async_any.yaml +39 -0
  11. data/benchmark/async_each.yaml +51 -0
  12. data/benchmark/async_find.yaml +37 -0
  13. data/benchmark/async_map.yaml +50 -0
  14. data/benchmark/async_select.yaml +31 -0
  15. data/benchmark/early_termination/any_early.yaml +17 -0
  16. data/benchmark/early_termination/any_late.yaml +17 -0
  17. data/benchmark/early_termination/find_middle.yaml +17 -0
  18. data/benchmark/size_comparison/map_10.yaml +17 -0
  19. data/benchmark/size_comparison/map_100.yaml +17 -0
  20. data/benchmark/size_comparison/map_1000.yaml +20 -0
  21. data/benchmark/size_comparison/map_10000.yaml +23 -0
  22. data/docs/reference/README.md +43 -0
  23. data/docs/reference/concurrency_bounder.md +234 -0
  24. data/docs/reference/enumerable.md +258 -0
  25. data/docs/reference/enumerator.md +221 -0
  26. data/docs/reference/methods/converters.md +97 -0
  27. data/docs/reference/methods/predicates.md +254 -0
  28. data/docs/reference/methods/transformers.md +104 -0
  29. data/lib/async/enumerable/comparable.rb +26 -0
  30. data/lib/async/enumerable/concurrency_bounder.rb +37 -0
  31. data/lib/async/enumerable/configurable.rb +140 -0
  32. data/lib/async/enumerable/methods/aggregators.rb +40 -0
  33. data/lib/async/enumerable/methods/converters.rb +21 -0
  34. data/lib/async/enumerable/methods/each.rb +39 -0
  35. data/lib/async/enumerable/methods/iterators.rb +27 -0
  36. data/lib/async/enumerable/methods/predicates/all.rb +47 -0
  37. data/lib/async/enumerable/methods/predicates/any.rb +47 -0
  38. data/lib/async/enumerable/methods/predicates/find.rb +55 -0
  39. data/lib/async/enumerable/methods/predicates/find_index.rb +50 -0
  40. data/lib/async/enumerable/methods/predicates/include.rb +23 -0
  41. data/lib/async/enumerable/methods/predicates/none.rb +27 -0
  42. data/lib/async/enumerable/methods/predicates/one.rb +48 -0
  43. data/lib/async/enumerable/methods/predicates.rb +29 -0
  44. data/lib/async/enumerable/methods/slicers.rb +34 -0
  45. data/lib/async/enumerable/methods/transformers/compact.rb +18 -0
  46. data/lib/async/enumerable/methods/transformers/filter_map.rb +19 -0
  47. data/lib/async/enumerable/methods/transformers/flat_map.rb +20 -0
  48. data/lib/async/enumerable/methods/transformers/map.rb +22 -0
  49. data/lib/async/enumerable/methods/transformers/reject.rb +19 -0
  50. data/lib/async/enumerable/methods/transformers/select.rb +21 -0
  51. data/lib/async/enumerable/methods/transformers/sort.rb +18 -0
  52. data/lib/async/enumerable/methods/transformers/sort_by.rb +19 -0
  53. data/lib/async/enumerable/methods/transformers/uniq.rb +18 -0
  54. data/lib/async/enumerable/methods/transformers.rb +35 -0
  55. data/lib/async/enumerable/methods.rb +26 -0
  56. data/lib/async/enumerable/version.rb +10 -0
  57. data/lib/async/enumerable.rb +72 -0
  58. data/lib/async/enumerator.rb +33 -0
  59. data/lib/enumerable/async.rb +38 -0
  60. data/scripts/debug_config.rb +26 -0
  61. data/scripts/debug_config2.rb +34 -0
  62. data/scripts/sketch.rb +30 -0
  63. data/scripts/test_aggregators.rb +66 -0
  64. data/scripts/test_ancestors.rb +12 -0
  65. data/scripts/test_async_chaining.rb +30 -0
  66. data/scripts/test_direct_method_calls.rb +53 -0
  67. data/scripts/test_example.rb +37 -0
  68. data/scripts/test_issue_7.rb +69 -0
  69. data/scripts/test_method_source.rb +15 -0
  70. metadata +145 -0
metadata ADDED
@@ -0,0 +1,145 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: async-enumerable
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Eric Bart Jacobs
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: async
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '2.27'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '2.27'
26
+ - !ruby/object:Gem::Dependency
27
+ name: concurrent-ruby
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '1.3'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.3'
40
+ description: |
41
+ Implementation of a subset of Ruby's Enumerable, using socketry/async to
42
+ perform operations in parallel wherever possible, while deferring to
43
+ Enumerable's implementation where not.
44
+
45
+ Async::Enumerable is in the same category as LazyEnumerable, but making a
46
+ different set of changes to how Enumerable works.
47
+ email:
48
+ - eric@ebj.dev
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - ".rspec"
54
+ - ".standard.yml"
55
+ - CHANGELOG.md
56
+ - CODE_OF_CONDUCT.md
57
+ - LICENSE.txt
58
+ - README.md
59
+ - Rakefile
60
+ - benchmark/async_all.yaml
61
+ - benchmark/async_any.yaml
62
+ - benchmark/async_each.yaml
63
+ - benchmark/async_find.yaml
64
+ - benchmark/async_map.yaml
65
+ - benchmark/async_select.yaml
66
+ - benchmark/early_termination/any_early.yaml
67
+ - benchmark/early_termination/any_late.yaml
68
+ - benchmark/early_termination/find_middle.yaml
69
+ - benchmark/size_comparison/map_10.yaml
70
+ - benchmark/size_comparison/map_100.yaml
71
+ - benchmark/size_comparison/map_1000.yaml
72
+ - benchmark/size_comparison/map_10000.yaml
73
+ - docs/reference/README.md
74
+ - docs/reference/concurrency_bounder.md
75
+ - docs/reference/enumerable.md
76
+ - docs/reference/enumerator.md
77
+ - docs/reference/methods/converters.md
78
+ - docs/reference/methods/predicates.md
79
+ - docs/reference/methods/transformers.md
80
+ - lib/async/enumerable.rb
81
+ - lib/async/enumerable/comparable.rb
82
+ - lib/async/enumerable/concurrency_bounder.rb
83
+ - lib/async/enumerable/configurable.rb
84
+ - lib/async/enumerable/methods.rb
85
+ - lib/async/enumerable/methods/aggregators.rb
86
+ - lib/async/enumerable/methods/converters.rb
87
+ - lib/async/enumerable/methods/each.rb
88
+ - lib/async/enumerable/methods/iterators.rb
89
+ - lib/async/enumerable/methods/predicates.rb
90
+ - lib/async/enumerable/methods/predicates/all.rb
91
+ - lib/async/enumerable/methods/predicates/any.rb
92
+ - lib/async/enumerable/methods/predicates/find.rb
93
+ - lib/async/enumerable/methods/predicates/find_index.rb
94
+ - lib/async/enumerable/methods/predicates/include.rb
95
+ - lib/async/enumerable/methods/predicates/none.rb
96
+ - lib/async/enumerable/methods/predicates/one.rb
97
+ - lib/async/enumerable/methods/slicers.rb
98
+ - lib/async/enumerable/methods/transformers.rb
99
+ - lib/async/enumerable/methods/transformers/compact.rb
100
+ - lib/async/enumerable/methods/transformers/filter_map.rb
101
+ - lib/async/enumerable/methods/transformers/flat_map.rb
102
+ - lib/async/enumerable/methods/transformers/map.rb
103
+ - lib/async/enumerable/methods/transformers/reject.rb
104
+ - lib/async/enumerable/methods/transformers/select.rb
105
+ - lib/async/enumerable/methods/transformers/sort.rb
106
+ - lib/async/enumerable/methods/transformers/sort_by.rb
107
+ - lib/async/enumerable/methods/transformers/uniq.rb
108
+ - lib/async/enumerable/version.rb
109
+ - lib/async/enumerator.rb
110
+ - lib/enumerable/async.rb
111
+ - scripts/debug_config.rb
112
+ - scripts/debug_config2.rb
113
+ - scripts/sketch.rb
114
+ - scripts/test_aggregators.rb
115
+ - scripts/test_ancestors.rb
116
+ - scripts/test_async_chaining.rb
117
+ - scripts/test_direct_method_calls.rb
118
+ - scripts/test_example.rb
119
+ - scripts/test_issue_7.rb
120
+ - scripts/test_method_source.rb
121
+ homepage: https://github.com/jetpks/async-enumerable
122
+ licenses:
123
+ - MIT
124
+ metadata:
125
+ homepage_uri: https://github.com/jetpks/async-enumerable
126
+ source_code_uri: https://github.com/jetpks/async-enumerable
127
+ changelog_uri: https://github.com/jetpks/async-enumerable/blob/main/changelog.md
128
+ rdoc_options: []
129
+ require_paths:
130
+ - lib
131
+ required_ruby_version: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: 3.1.0
136
+ required_rubygems_version: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ version: '0'
141
+ requirements: []
142
+ rubygems_version: 3.6.9
143
+ specification_version: 4
144
+ summary: Enumerable but rub some async on it
145
+ test_files: []