tash 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.
data/sig/tash.rbs ADDED
@@ -0,0 +1,178 @@
1
+ module Tash
2
+ VERSION: String
3
+
4
+ class Tash[unchecked out K, unchecked out V] < Object
5
+ include Enumerable[[ K, V ]]
6
+
7
+ def self.[]: [U, V] (Tash[U, V]) -> Tash[U, V]
8
+ | [U, V] (_ToHash[U, V]) { (U) -> unchecked out U } -> Tash[U, V]
9
+ | [U, V] (Array[[ U, V ]]) { (U) -> unchecked out U } -> Tash[U, V]
10
+ | (*untyped) { (U) -> unchecked out U } -> Tash[untyped, untyped]
11
+
12
+ public
13
+
14
+ def <: [A, B] ((Tash | Hash)[A, B]) -> bool
15
+
16
+ def <=: [A, B] ((Tash | Hash)[A, B]) -> bool
17
+
18
+ def ==: (untyped other) -> bool
19
+
20
+ def >: [A, B] ((Tash | Hash)[A, B]) -> bool
21
+
22
+ def >=: [A, B] ((Tash | Hash)[A, B]) -> bool
23
+
24
+ def []: (K) -> V
25
+
26
+ def []=: (K, V) -> V
27
+
28
+ def assoc: (K) -> [ K, V ]?
29
+
30
+ def clear: () -> self
31
+
32
+ def compact: () -> Tash[K, V]
33
+
34
+ def compact!: () -> self?
35
+
36
+ def compare_by_identity: () -> self
37
+
38
+ def compare_by_identity?: () -> bool
39
+
40
+ def deconstruct_keys: (Array[K] | nil) -> self
41
+
42
+ def default: (?K) -> V?
43
+
44
+ def default=: (V) -> V
45
+
46
+ def default_proc: () -> (Proc | nil)
47
+
48
+ def default_proc=: (Proc | _ToProc | nil) -> (Proc | _ToProc | nil)
49
+
50
+ def delete: (K) -> V?
51
+ | [U] (K) { (K) -> U } -> (U | V)
52
+
53
+ def delete_if: () { (K, V) -> boolish } -> self
54
+ | () -> Enumerator[[ K, V ], self]
55
+
56
+ def dig: (K, *untyped) -> untyped
57
+
58
+ def each: () { ([ K, V ]) -> untyped } -> self
59
+ | () -> ::Enumerator[[ K, V ], self]
60
+
61
+ def each_key: () { (K) -> untyped } -> Tash[K, V]
62
+ | () -> Enumerator[K, self]
63
+
64
+ alias each_pair each
65
+
66
+ def each_value: () { (V) -> untyped } -> self
67
+ | () -> Enumerator[V, self]
68
+
69
+ def empty?: () -> bool
70
+
71
+ def eql?: (untyped) -> bool
72
+
73
+ def except: (*K) -> Tash[K, V]
74
+
75
+ def fetch: (K) -> V
76
+ | [X] (K, X) -> (V | X)
77
+ | [X] (K) { (K) -> X } -> (V | X)
78
+
79
+ def fetch_values: (*K) -> Array[V]
80
+ | [X] (*K) { (K) -> X } -> Array[V | X]
81
+
82
+ alias filter select
83
+
84
+ alias filter! select!
85
+
86
+ def flatten: () -> Array[K | V]
87
+ | (1 level) -> Array[K | V]
88
+ | (Integer level) -> Array[untyped]
89
+
90
+ alias has_key? key?
91
+
92
+ alias has_value? value?
93
+
94
+ def hash: () -> Integer
95
+
96
+ alias include? has_key?
97
+
98
+ def inspect: () -> String
99
+
100
+ def invert: () -> Tash[V, K]
101
+
102
+ def keep_if: () { (K, V) -> boolish } -> self
103
+ | () -> Enumerator[[ K, V ], self]
104
+
105
+ def key: (V) -> K?
106
+
107
+ def key?: (K) -> bool
108
+
109
+ def keys: () -> Array[K]
110
+
111
+ alias length size
112
+
113
+ alias member? has_key?
114
+
115
+ def merge: [A, B] (*(Tash | Hash)[A, B] other_tashes_or_hashes) -> Tash[A | K, B | V]
116
+ | [A, B, C] (*(Tash | Hash)[A, B] other_tashes_or_hashes) { (K key, V oldval, B newval) -> C } -> Tash[A | K, B | V | C]
117
+
118
+ def merge!: (*(Tash | Hash)[K, V] other_tashes_or_hashes) -> self
119
+ | (*(Tash | Hash)[K, V] other_tashes_or_hashes) { (K key, V oldval, V newval) -> V } -> self
120
+
121
+ def rassoc: (V) -> [ K, V ]?
122
+
123
+ def rehash: () -> self
124
+
125
+ def reject: () { (K, V) -> boolish } -> Tash[K, V]
126
+ | () -> Enumerator[[ K, V ], Tash[K, V]]
127
+
128
+ def reject!: () { (K, V) -> boolish } -> self?
129
+ | () -> Enumerator[[ K, V ], self?]
130
+
131
+ def replace: ((Tash | Hash)[K, V]) -> self
132
+
133
+ def select: () { (K, V) -> boolish } -> Tash[K, V]
134
+ | () -> Enumerator[[ K, V ], Tash[K, V]]
135
+
136
+ def select!: () { (K, V) -> boolish } -> self?
137
+ | () -> Enumerator[[ K, V ], self?]
138
+
139
+ def shift: () -> [ K, V ]?
140
+
141
+ def size: () -> Integer
142
+
143
+ def slice: (*K) -> Tash[K, V]
144
+
145
+ alias store []=
146
+
147
+ def to_a: () -> Array[[ K, V ]]
148
+
149
+ def to_h: () -> Hash[K, V]
150
+ | [A, B] () { (K, V) -> [ A, B ] } -> Hash[A, B]
151
+
152
+ def to_hash: () -> Hash[K, V]
153
+
154
+ def to_proc: () -> ^(K) -> V?
155
+
156
+ alias to_s inspect
157
+
158
+ def transform_proc: () -> (Proc | nil)
159
+
160
+ def transform_values: () -> Enumerator[V, Tash[K, untyped]]
161
+ | [A] () { (V) -> A } -> Tash[K, A]
162
+
163
+ def transform_values!: () -> Enumerator[V, self]
164
+ | () { (V) -> V } -> self
165
+
166
+ alias update merge!
167
+
168
+ def value?: (V) -> bool
169
+
170
+ def values: () -> Array[V]
171
+
172
+ def values_at: (*K) -> Array[V?]
173
+
174
+ private
175
+
176
+ def initialize: () { (K) -> unchecked out K } -> void
177
+ end
178
+ end
@@ -0,0 +1,31 @@
1
+ require 'tash'
2
+
3
+ RSpec.configure do |config|
4
+ config.expect_with :rspec do |expectations|
5
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
6
+ expectations.on_potential_false_positives = :nothing
7
+ end
8
+
9
+ config.mock_with :rspec do |mocks|
10
+ mocks.verify_partial_doubles = true
11
+ end
12
+
13
+ config.shared_context_metadata_behavior = :apply_to_host_groups
14
+
15
+ config.filter_run_when_matching :focus
16
+
17
+ config.example_status_persistence_file_path = 'spec/examples.txt'
18
+
19
+ config.disable_monkey_patching!
20
+
21
+ config.warnings = true
22
+
23
+ config.default_formatter = 'doc' if config.files_to_run.one?
24
+
25
+ config.order = :random
26
+ Kernel.srand config.seed
27
+ end
28
+
29
+ def when_ruby_above(version)
30
+ yield if Tash.send(:current_ruby_version) > version
31
+ end