nrser 0.0.25 → 0.0.26
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +39 -11
- data/lib/nrser.rb +5 -1
- data/lib/nrser/array.rb +10 -53
- data/lib/nrser/enumerable.rb +21 -0
- data/lib/nrser/hash.rb +13 -476
- data/lib/nrser/hash/bury.rb +154 -0
- data/lib/nrser/hash/deep_merge.rb +57 -0
- data/lib/nrser/hash/except_keys.rb +42 -0
- data/lib/nrser/hash/guess_label_key_type.rb +37 -0
- data/lib/nrser/hash/slice_keys.rb +41 -0
- data/lib/nrser/hash/stringify_keys.rb +37 -0
- data/lib/nrser/hash/symbolize_keys.rb +41 -0
- data/lib/nrser/hash/transform_keys.rb +45 -0
- data/lib/nrser/merge_by.rb +26 -0
- data/lib/nrser/message.rb +125 -0
- data/lib/nrser/meta/props.rb +2 -2
- data/lib/nrser/meta/props/prop.rb +5 -2
- data/lib/nrser/object.rb +5 -0
- data/lib/nrser/object/as_array.rb +37 -0
- data/lib/nrser/object/as_hash.rb +101 -0
- data/lib/nrser/{truthy.rb → object/truthy.rb} +0 -0
- data/lib/nrser/proc.rb +132 -0
- data/lib/nrser/refinements.rb +1 -2
- data/lib/nrser/refinements/array.rb +94 -5
- data/lib/nrser/refinements/enumerable.rb +5 -0
- data/lib/nrser/refinements/hash.rb +43 -6
- data/lib/nrser/refinements/object.rb +22 -2
- data/lib/nrser/refinements/symbol.rb +12 -0
- data/lib/nrser/refinements/tree.rb +41 -0
- data/lib/nrser/rspex.rb +329 -0
- data/lib/nrser/string.rb +3 -0
- data/lib/nrser/string/looks_like.rb +51 -0
- data/lib/nrser/temp/where.rb +52 -0
- data/lib/nrser/tree.rb +86 -0
- data/lib/nrser/tree/leaves.rb +92 -0
- data/lib/nrser/tree/map_leaves.rb +63 -0
- data/lib/nrser/tree/transform.rb +30 -0
- data/lib/nrser/types.rb +9 -4
- data/lib/nrser/types/any.rb +1 -1
- data/lib/nrser/types/array.rb +167 -25
- data/lib/nrser/types/{hash.rb → hashes.rb} +19 -5
- data/lib/nrser/types/in.rb +47 -0
- data/lib/nrser/types/is_a.rb +2 -2
- data/lib/nrser/types/labels.rb +49 -0
- data/lib/nrser/types/numbers.rb +63 -27
- data/lib/nrser/types/pairs.rb +109 -0
- data/lib/nrser/types/responds.rb +2 -3
- data/lib/nrser/types/strings.rb +17 -18
- data/lib/nrser/types/symbols.rb +39 -0
- data/lib/nrser/types/trees.rb +93 -0
- data/lib/nrser/types/tuples.rb +116 -0
- data/lib/nrser/types/type.rb +26 -2
- data/lib/nrser/version.rb +1 -1
- data/spec/nrser/hash/{guess_name_type_spec.rb → guess_label_key_type_spec.rb} +3 -3
- data/spec/nrser/hash_spec.rb +0 -20
- data/spec/nrser/merge_by_spec.rb +73 -0
- data/spec/nrser/meta/props_spec.rb +136 -43
- data/spec/nrser/op/message_spec.rb +62 -0
- data/spec/nrser/refinements/array_spec.rb +36 -0
- data/spec/nrser/refinements/hash_spec.rb +34 -0
- data/spec/nrser/string/looks_like_spec.rb +31 -0
- data/spec/nrser/tree/each_branch_spec.rb +82 -0
- data/spec/nrser/tree/leaves_spec.rb +112 -0
- data/spec/nrser/tree/transform_spec.rb +165 -0
- data/spec/nrser/types/array_spec.rb +82 -0
- data/spec/nrser/types/attrs_spec.rb +4 -4
- data/spec/nrser/types/pairs_spec.rb +41 -0
- data/spec/nrser/types/paths_spec.rb +3 -3
- data/spec/nrser/types/strings_spec.rb +66 -0
- data/spec/nrser/types/symbols_spec.rb +38 -0
- data/spec/nrser/types/tuples_spec.rb +37 -0
- data/spec/nrser/types_spec.rb +0 -13
- data/spec/spec_helper.rb +71 -22
- metadata +58 -10
- data/lib/nrser/spex.rb +0 -68
- data/lib/nrser/types/symbol.rb +0 -23
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nrser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.26
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- nrser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-11-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -139,14 +139,29 @@ files:
|
|
139
139
|
- lib/nrser/errors.rb
|
140
140
|
- lib/nrser/exception.rb
|
141
141
|
- lib/nrser/hash.rb
|
142
|
+
- lib/nrser/hash/bury.rb
|
143
|
+
- lib/nrser/hash/deep_merge.rb
|
144
|
+
- lib/nrser/hash/except_keys.rb
|
145
|
+
- lib/nrser/hash/guess_label_key_type.rb
|
146
|
+
- lib/nrser/hash/slice_keys.rb
|
147
|
+
- lib/nrser/hash/stringify_keys.rb
|
148
|
+
- lib/nrser/hash/symbolize_keys.rb
|
149
|
+
- lib/nrser/hash/transform_keys.rb
|
142
150
|
- lib/nrser/logger.rb
|
151
|
+
- lib/nrser/merge_by.rb
|
152
|
+
- lib/nrser/message.rb
|
143
153
|
- lib/nrser/meta.rb
|
144
154
|
- lib/nrser/meta/class_attrs.rb
|
145
155
|
- lib/nrser/meta/props.rb
|
146
156
|
- lib/nrser/meta/props/base.rb
|
147
157
|
- lib/nrser/meta/props/prop.rb
|
148
158
|
- lib/nrser/no_arg.rb
|
159
|
+
- lib/nrser/object.rb
|
160
|
+
- lib/nrser/object/as_array.rb
|
161
|
+
- lib/nrser/object/as_hash.rb
|
162
|
+
- lib/nrser/object/truthy.rb
|
149
163
|
- lib/nrser/open_struct.rb
|
164
|
+
- lib/nrser/proc.rb
|
150
165
|
- lib/nrser/refinements.rb
|
151
166
|
- lib/nrser/refinements/array.rb
|
152
167
|
- lib/nrser/refinements/binding.rb
|
@@ -159,10 +174,17 @@ files:
|
|
159
174
|
- lib/nrser/refinements/pathname.rb
|
160
175
|
- lib/nrser/refinements/set.rb
|
161
176
|
- lib/nrser/refinements/string.rb
|
177
|
+
- lib/nrser/refinements/symbol.rb
|
178
|
+
- lib/nrser/refinements/tree.rb
|
162
179
|
- lib/nrser/refinements/types.rb
|
163
|
-
- lib/nrser/
|
180
|
+
- lib/nrser/rspex.rb
|
164
181
|
- lib/nrser/string.rb
|
165
|
-
- lib/nrser/
|
182
|
+
- lib/nrser/string/looks_like.rb
|
183
|
+
- lib/nrser/temp/where.rb
|
184
|
+
- lib/nrser/tree.rb
|
185
|
+
- lib/nrser/tree/leaves.rb
|
186
|
+
- lib/nrser/tree/map_leaves.rb
|
187
|
+
- lib/nrser/tree/transform.rb
|
166
188
|
- lib/nrser/types.rb
|
167
189
|
- lib/nrser/types/any.rb
|
168
190
|
- lib/nrser/types/array.rb
|
@@ -170,15 +192,20 @@ files:
|
|
170
192
|
- lib/nrser/types/booleans.rb
|
171
193
|
- lib/nrser/types/bounded.rb
|
172
194
|
- lib/nrser/types/combinators.rb
|
173
|
-
- lib/nrser/types/
|
195
|
+
- lib/nrser/types/hashes.rb
|
196
|
+
- lib/nrser/types/in.rb
|
174
197
|
- lib/nrser/types/is.rb
|
175
198
|
- lib/nrser/types/is_a.rb
|
199
|
+
- lib/nrser/types/labels.rb
|
176
200
|
- lib/nrser/types/maybe.rb
|
177
201
|
- lib/nrser/types/numbers.rb
|
202
|
+
- lib/nrser/types/pairs.rb
|
178
203
|
- lib/nrser/types/paths.rb
|
179
204
|
- lib/nrser/types/responds.rb
|
180
205
|
- lib/nrser/types/strings.rb
|
181
|
-
- lib/nrser/types/
|
206
|
+
- lib/nrser/types/symbols.rb
|
207
|
+
- lib/nrser/types/trees.rb
|
208
|
+
- lib/nrser/types/tuples.rb
|
182
209
|
- lib/nrser/types/type.rb
|
183
210
|
- lib/nrser/types/where.rb
|
184
211
|
- lib/nrser/version.rb
|
@@ -189,7 +216,7 @@ files:
|
|
189
216
|
- spec/nrser/enumerable_spec.rb
|
190
217
|
- spec/nrser/format_exception_spec.rb
|
191
218
|
- spec/nrser/hash/bury_spec.rb
|
192
|
-
- spec/nrser/hash/
|
219
|
+
- spec/nrser/hash/guess_label_key_type_spec.rb
|
193
220
|
- spec/nrser/hash_spec.rb
|
194
221
|
- spec/nrser/indent_spec.rb
|
195
222
|
- spec/nrser/logger/dest_spec.rb
|
@@ -200,8 +227,10 @@ files:
|
|
200
227
|
- spec/nrser/logger/level_sym_spec.rb
|
201
228
|
- spec/nrser/logger/send_log_spec.rb
|
202
229
|
- spec/nrser/logger/use_spec.rb
|
230
|
+
- spec/nrser/merge_by_spec.rb
|
203
231
|
- spec/nrser/meta/class_attrs_spec.rb
|
204
232
|
- spec/nrser/meta/props_spec.rb
|
233
|
+
- spec/nrser/op/message_spec.rb
|
205
234
|
- spec/nrser/open_struct_spec.rb
|
206
235
|
- spec/nrser/refinements/array_spec.rb
|
207
236
|
- spec/nrser/refinements/erb_spec.rb
|
@@ -212,13 +241,22 @@ files:
|
|
212
241
|
- spec/nrser/refinements/pathname_spec.rb
|
213
242
|
- spec/nrser/refinements/set_spec.rb
|
214
243
|
- spec/nrser/refinements/truncate_spec.rb
|
244
|
+
- spec/nrser/string/looks_like_spec.rb
|
215
245
|
- spec/nrser/template_spec.rb
|
246
|
+
- spec/nrser/tree/each_branch_spec.rb
|
247
|
+
- spec/nrser/tree/leaves_spec.rb
|
248
|
+
- spec/nrser/tree/transform_spec.rb
|
216
249
|
- spec/nrser/truncate_spec.rb
|
217
250
|
- spec/nrser/truthy_spec.rb
|
251
|
+
- spec/nrser/types/array_spec.rb
|
218
252
|
- spec/nrser/types/attrs_spec.rb
|
219
253
|
- spec/nrser/types/combinators_spec.rb
|
220
254
|
- spec/nrser/types/is_spec.rb
|
255
|
+
- spec/nrser/types/pairs_spec.rb
|
221
256
|
- spec/nrser/types/paths_spec.rb
|
257
|
+
- spec/nrser/types/strings_spec.rb
|
258
|
+
- spec/nrser/types/symbols_spec.rb
|
259
|
+
- spec/nrser/types/tuples_spec.rb
|
222
260
|
- spec/nrser/types_spec.rb
|
223
261
|
- spec/nrser_spec.rb
|
224
262
|
- spec/spec_helper.rb
|
@@ -242,7 +280,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
242
280
|
version: '0'
|
243
281
|
requirements: []
|
244
282
|
rubyforge_project:
|
245
|
-
rubygems_version: 2.
|
283
|
+
rubygems_version: 2.5.2
|
246
284
|
signing_key:
|
247
285
|
specification_version: 4
|
248
286
|
summary: basic ruby utils i use in a lot of stuff.
|
@@ -254,7 +292,7 @@ test_files:
|
|
254
292
|
- spec/nrser/enumerable_spec.rb
|
255
293
|
- spec/nrser/format_exception_spec.rb
|
256
294
|
- spec/nrser/hash/bury_spec.rb
|
257
|
-
- spec/nrser/hash/
|
295
|
+
- spec/nrser/hash/guess_label_key_type_spec.rb
|
258
296
|
- spec/nrser/hash_spec.rb
|
259
297
|
- spec/nrser/indent_spec.rb
|
260
298
|
- spec/nrser/logger/dest_spec.rb
|
@@ -265,8 +303,10 @@ test_files:
|
|
265
303
|
- spec/nrser/logger/level_sym_spec.rb
|
266
304
|
- spec/nrser/logger/send_log_spec.rb
|
267
305
|
- spec/nrser/logger/use_spec.rb
|
306
|
+
- spec/nrser/merge_by_spec.rb
|
268
307
|
- spec/nrser/meta/class_attrs_spec.rb
|
269
308
|
- spec/nrser/meta/props_spec.rb
|
309
|
+
- spec/nrser/op/message_spec.rb
|
270
310
|
- spec/nrser/open_struct_spec.rb
|
271
311
|
- spec/nrser/refinements/array_spec.rb
|
272
312
|
- spec/nrser/refinements/erb_spec.rb
|
@@ -277,14 +317,22 @@ test_files:
|
|
277
317
|
- spec/nrser/refinements/pathname_spec.rb
|
278
318
|
- spec/nrser/refinements/set_spec.rb
|
279
319
|
- spec/nrser/refinements/truncate_spec.rb
|
320
|
+
- spec/nrser/string/looks_like_spec.rb
|
280
321
|
- spec/nrser/template_spec.rb
|
322
|
+
- spec/nrser/tree/each_branch_spec.rb
|
323
|
+
- spec/nrser/tree/leaves_spec.rb
|
324
|
+
- spec/nrser/tree/transform_spec.rb
|
281
325
|
- spec/nrser/truncate_spec.rb
|
282
326
|
- spec/nrser/truthy_spec.rb
|
327
|
+
- spec/nrser/types/array_spec.rb
|
283
328
|
- spec/nrser/types/attrs_spec.rb
|
284
329
|
- spec/nrser/types/combinators_spec.rb
|
285
330
|
- spec/nrser/types/is_spec.rb
|
331
|
+
- spec/nrser/types/pairs_spec.rb
|
286
332
|
- spec/nrser/types/paths_spec.rb
|
333
|
+
- spec/nrser/types/strings_spec.rb
|
334
|
+
- spec/nrser/types/symbols_spec.rb
|
335
|
+
- spec/nrser/types/tuples_spec.rb
|
287
336
|
- spec/nrser/types_spec.rb
|
288
337
|
- spec/nrser_spec.rb
|
289
338
|
- spec/spec_helper.rb
|
290
|
-
has_rdoc:
|
data/lib/nrser/spex.rb
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
##############################################################################
|
2
|
-
# RSpec helpers, shared examples, and other goodies.
|
3
|
-
#
|
4
|
-
# This file is *not* required by default when `nrser` is since it **defines
|
5
|
-
# global methods** and is not needed unless you're in [Rspec][].
|
6
|
-
#
|
7
|
-
# [Rspec]: http://rspec.info/
|
8
|
-
#
|
9
|
-
##############################################################################
|
10
|
-
|
11
|
-
|
12
|
-
# Helpers
|
13
|
-
# =====================================================================
|
14
|
-
|
15
|
-
# Merge "expectation" hashes by appending all clauses for each state.
|
16
|
-
#
|
17
|
-
# @example
|
18
|
-
#
|
19
|
-
#
|
20
|
-
# @param [Array<Hash>] *expectations
|
21
|
-
# Splat of "expectation" hashes - see the examples.
|
22
|
-
#
|
23
|
-
def merge_expectations *expectations
|
24
|
-
Hash.new { |result, state|
|
25
|
-
result[state] = []
|
26
|
-
}.tap { |result|
|
27
|
-
expectations.each { |ex|
|
28
|
-
ex.each { |state, clauses|
|
29
|
-
result[state] += clauses.to_a
|
30
|
-
}
|
31
|
-
}
|
32
|
-
}
|
33
|
-
end
|
34
|
-
|
35
|
-
|
36
|
-
# Refine the subject of the parent scope by `#send`ing it a message and setting
|
37
|
-
# the result as the new subject.
|
38
|
-
#
|
39
|
-
# @param [Symbol | String] method_name
|
40
|
-
# Name of the method to send to.
|
41
|
-
#
|
42
|
-
# @param [Array] args*
|
43
|
-
# Arguments to send to the method.
|
44
|
-
#
|
45
|
-
# @return [void]
|
46
|
-
# Seems to be what RSpec's `subject` method returns.
|
47
|
-
#
|
48
|
-
def refine_subject method_name, *args
|
49
|
-
subject {
|
50
|
-
super().send method_name, *args
|
51
|
-
}
|
52
|
-
end # #refine_subject
|
53
|
-
|
54
|
-
|
55
|
-
# Shared Examples
|
56
|
-
# =====================================================================
|
57
|
-
|
58
|
-
shared_examples "expect subject" do |*expectations|
|
59
|
-
merge_expectations( *expectations ).each { |state, specs|
|
60
|
-
specs.each { |verb, noun|
|
61
|
-
it {
|
62
|
-
# like: is_expected.to(include(noun))
|
63
|
-
is_expected.send state, self.send(verb, noun)
|
64
|
-
}
|
65
|
-
}
|
66
|
-
}
|
67
|
-
end # is expected
|
68
|
-
|
data/lib/nrser/types/symbol.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'nrser/refinements'
|
2
|
-
require 'nrser/types/is'
|
3
|
-
require 'nrser/types/is_a'
|
4
|
-
|
5
|
-
using NRSER
|
6
|
-
|
7
|
-
module NRSER::Types
|
8
|
-
SYM = IsA.new Symbol, name: 'Sym', from_s: ->(s) { s.to_sym }
|
9
|
-
|
10
|
-
def self.sym **options
|
11
|
-
if options.empty?
|
12
|
-
# if there are no options can point to the constant for efficiency
|
13
|
-
SYM
|
14
|
-
else
|
15
|
-
raise "Not Implemented"
|
16
|
-
end
|
17
|
-
end # string
|
18
|
-
|
19
|
-
def self.symbol *args
|
20
|
-
sym *args
|
21
|
-
end
|
22
|
-
|
23
|
-
end # NRSER::Types
|