nrser 0.3.9 → 0.3.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/lib/nrser/char/alpha_numeric_sub.rb +9 -19
  3. data/lib/nrser/char/special.rb +5 -5
  4. data/lib/nrser/core_ext/array.rb +36 -13
  5. data/lib/nrser/core_ext/enumerable.rb +1 -0
  6. data/lib/nrser/core_ext/enumerable/find_map.rb +1 -1
  7. data/lib/nrser/core_ext/hash/bury.rb +3 -0
  8. data/lib/nrser/core_ext/hash/extract_values_at.rb +2 -2
  9. data/lib/nrser/core_ext/method/full_name.rb +1 -1
  10. data/lib/nrser/core_ext/module/method_objects.rb +1 -1
  11. data/lib/nrser/core_ext/module/source_locations.rb +27 -15
  12. data/lib/nrser/core_ext/object/lazy_var.rb +1 -1
  13. data/lib/nrser/core_ext/pathname.rb +67 -12
  14. data/lib/nrser/core_ext/pathname/subpath.rb +86 -0
  15. data/lib/nrser/core_ext/string.rb +28 -1
  16. data/lib/nrser/core_ext/symbol.rb +11 -12
  17. data/lib/nrser/errors/README.md +154 -0
  18. data/lib/nrser/errors/attr_error.rb +146 -53
  19. data/lib/nrser/errors/count_error.rb +61 -12
  20. data/lib/nrser/errors/nicer_error.rb +42 -71
  21. data/lib/nrser/errors/value_error.rb +53 -58
  22. data/lib/nrser/functions.rb +0 -2
  23. data/lib/nrser/functions/enumerable.rb +5 -17
  24. data/lib/nrser/functions/enumerable/associate.rb +14 -5
  25. data/lib/nrser/functions/enumerable/find_all_map.rb +1 -1
  26. data/lib/nrser/functions/enumerable/include_slice/array_include_slice.rb +1 -1
  27. data/lib/nrser/functions/hash/bury.rb +2 -12
  28. data/lib/nrser/functions/merge_by.rb +2 -2
  29. data/lib/nrser/functions/module/method_objects.rb +2 -2
  30. data/lib/nrser/functions/path.rb +185 -165
  31. data/lib/nrser/functions/path/normalized.rb +84 -0
  32. data/lib/nrser/functions/string.rb +4 -4
  33. data/lib/nrser/functions/text/README.md +4 -0
  34. data/lib/nrser/functions/text/format.rb +53 -0
  35. data/lib/nrser/functions/text/indentation.rb +6 -6
  36. data/lib/nrser/functions/text/word_wrap.rb +2 -2
  37. data/lib/nrser/functions/tree/map_leaves.rb +3 -3
  38. data/lib/nrser/functions/tree/map_tree.rb +2 -2
  39. data/lib/nrser/functions/tree/transform.rb +1 -18
  40. data/lib/nrser/gem_ext/README.md +4 -0
  41. data/lib/nrser/labs/README.md +8 -0
  42. data/lib/nrser/labs/config.rb +163 -0
  43. data/lib/nrser/labs/i8.rb +49 -159
  44. data/lib/nrser/labs/i8/struct.rb +167 -0
  45. data/lib/nrser/labs/i8/struct/hash.rb +140 -0
  46. data/lib/nrser/labs/i8/struct/vector.rb +149 -0
  47. data/lib/nrser/labs/i8/surjection.rb +211 -0
  48. data/lib/nrser/labs/lots/consumer.rb +19 -0
  49. data/lib/nrser/labs/lots/parser.rb +21 -1
  50. data/lib/nrser/labs/stash.rb +4 -4
  51. data/lib/nrser/log.rb +25 -21
  52. data/lib/nrser/log/appender/sync.rb +15 -11
  53. data/lib/nrser/log/formatters/color.rb +0 -3
  54. data/lib/nrser/log/formatters/mixin.rb +4 -4
  55. data/lib/nrser/log/logger.rb +54 -6
  56. data/lib/nrser/log/mixin.rb +2 -1
  57. data/lib/nrser/log/plugin.rb +6 -6
  58. data/lib/nrser/log/types.rb +46 -29
  59. data/lib/nrser/mean_streak.rb +0 -8
  60. data/lib/nrser/mean_streak/document.rb +1 -4
  61. data/lib/nrser/message.rb +3 -3
  62. data/lib/nrser/meta/README.md +4 -0
  63. data/lib/nrser/meta/lazy_attr.rb +2 -2
  64. data/lib/nrser/meta/source/location.rb +1 -1
  65. data/lib/nrser/props.rb +34 -3
  66. data/lib/nrser/props/class_methods.rb +2 -1
  67. data/lib/nrser/props/instance_methods.rb +9 -9
  68. data/lib/nrser/props/metadata.rb +4 -12
  69. data/lib/nrser/props/mutable/stash.rb +5 -2
  70. data/lib/nrser/props/prop.rb +10 -19
  71. data/lib/nrser/rspex.rb +1 -20
  72. data/lib/nrser/rspex/example_group/describe_attribute.rb +3 -0
  73. data/lib/nrser/rspex/example_group/describe_called_with.rb +9 -4
  74. data/lib/nrser/rspex/example_group/describe_case.rb +1 -0
  75. data/lib/nrser/rspex/example_group/describe_class.rb +2 -0
  76. data/lib/nrser/rspex/example_group/describe_group.rb +1 -1
  77. data/lib/nrser/rspex/example_group/describe_instance.rb +3 -1
  78. data/lib/nrser/rspex/example_group/describe_message.rb +1 -1
  79. data/lib/nrser/rspex/example_group/describe_method.rb +64 -30
  80. data/lib/nrser/rspex/example_group/describe_response_to.rb +1 -1
  81. data/lib/nrser/rspex/example_group/describe_section.rb +4 -1
  82. data/lib/nrser/rspex/example_group/describe_sent_to.rb +1 -1
  83. data/lib/nrser/rspex/example_group/describe_setup.rb +1 -0
  84. data/lib/nrser/rspex/example_group/describe_source_file.rb +1 -1
  85. data/lib/nrser/rspex/example_group/describe_spec_file.rb +4 -2
  86. data/lib/nrser/rspex/example_group/describe_when.rb +2 -1
  87. data/lib/nrser/rspex/example_group/describe_x.rb +5 -5
  88. data/lib/nrser/rspex/format.rb +0 -15
  89. data/lib/nrser/sugar/method_missing_forwarder.rb +3 -3
  90. data/lib/nrser/sys/env/path.rb +2 -28
  91. data/lib/nrser/types.rb +63 -12
  92. data/lib/nrser/types/README.md +76 -0
  93. data/lib/nrser/types/arrays.rb +192 -137
  94. data/lib/nrser/types/attributes.rb +269 -0
  95. data/lib/nrser/types/booleans.rb +134 -83
  96. data/lib/nrser/types/bounded.rb +110 -47
  97. data/lib/nrser/types/collections.rb +119 -0
  98. data/lib/nrser/types/combinators.rb +283 -196
  99. data/lib/nrser/types/doc/display_table.md +66 -0
  100. data/lib/nrser/types/eqiuvalent.rb +91 -0
  101. data/lib/nrser/types/errors/check_error.rb +5 -11
  102. data/lib/nrser/types/errors/from_string_error.rb +3 -3
  103. data/lib/nrser/types/factory.rb +287 -20
  104. data/lib/nrser/types/hashes.rb +227 -179
  105. data/lib/nrser/types/in.rb +73 -36
  106. data/lib/nrser/types/is.rb +67 -60
  107. data/lib/nrser/types/is_a.rb +141 -84
  108. data/lib/nrser/types/labels.rb +45 -16
  109. data/lib/nrser/types/maybe.rb +6 -3
  110. data/lib/nrser/types/nil.rb +64 -27
  111. data/lib/nrser/types/not.rb +92 -34
  112. data/lib/nrser/types/numbers.rb +224 -169
  113. data/lib/nrser/types/pairs.rb +113 -89
  114. data/lib/nrser/types/paths.rb +250 -137
  115. data/lib/nrser/types/responds.rb +167 -89
  116. data/lib/nrser/types/selector.rb +234 -0
  117. data/lib/nrser/types/shape.rb +136 -65
  118. data/lib/nrser/types/strings.rb +189 -63
  119. data/lib/nrser/types/symbols.rb +83 -33
  120. data/lib/nrser/types/top.rb +89 -0
  121. data/lib/nrser/types/tuples.rb +134 -98
  122. data/lib/nrser/types/type.rb +617 -505
  123. data/lib/nrser/types/when.rb +123 -98
  124. data/lib/nrser/types/where.rb +182 -91
  125. data/lib/nrser/version.rb +1 -1
  126. data/spec/lib/nrser/core_ext/pathname/subpath_spec.rb +22 -0
  127. data/spec/lib/nrser/errors/attr_error_spec.rb +68 -0
  128. data/spec/lib/nrser/errors/count_error_spec.rb +69 -0
  129. data/spec/lib/nrser/functions/path/normalize_path_spec.rb +35 -0
  130. data/spec/lib/nrser/functions/tree/map_tree_spec.rb +74 -96
  131. data/spec/lib/nrser/functions/tree/transform_spec.rb +11 -11
  132. data/spec/lib/nrser/labs/config_spec.rb +22 -0
  133. data/spec/lib/nrser/labs/i8/struct_spec.rb +39 -0
  134. data/spec/lib/nrser/types/display_spec.rb +50 -0
  135. data/spec/lib/nrser/types/paths_spec.rb +16 -10
  136. data/spec/lib/nrser/types/selector_spec.rb +125 -0
  137. data/spec/spec_helper.rb +4 -5
  138. metadata +105 -22
  139. data/lib/nrser/types/any.rb +0 -41
  140. data/lib/nrser/types/attrs.rb +0 -213
  141. data/lib/nrser/types/trees.rb +0 -42
@@ -0,0 +1,22 @@
1
+ require 'nrser/labs/config'
2
+
3
+ describe_spec_file(
4
+ spec_path: __FILE__,
5
+ class: NRSER::Config,
6
+ labs: true, # run with `LABS=1 rspec ...` to include
7
+ ) do
8
+
9
+
10
+ describe_section "basic shit" do
11
+ # ========================================================================
12
+
13
+ subject { described_class.new( {x: 1, y: 2}, {y: 3, z: 4} ) }
14
+
15
+ it do
16
+ is_expected.to include x: 1, y: 3, z: 4
17
+ end
18
+
19
+ end # section basic shit
20
+ # ************************************************************************
21
+
22
+ end
@@ -0,0 +1,39 @@
1
+ require 'nrser/labs/i8/struct'
2
+
3
+ require 'nrser/refinements/types'
4
+ using NRSER::Types
5
+
6
+ SPEC_FILE(
7
+ spec_path: __FILE__,
8
+ module: I8::Struct,
9
+ ) do
10
+
11
+ CASE "Extend a {I8::Struct} and add methods" do
12
+ SETUP "Create a rectangle class based on an {I8::Struct}" do
13
+
14
+ class NRSER::TestFixtures::I8StructRectangle \
15
+ < I8::Struct.new( width: t.non_neg_int, length: t.non_neg_int )
16
+
17
+ def area
18
+ width * length
19
+ end
20
+
21
+ end # class NRSER::TestFixtures::I8StructRectangle
22
+
23
+ CLASS NRSER::TestFixtures::I8StructRectangle do
24
+
25
+ it "is a subclass of {I8::Struct::Hash}" do
26
+ expect( I8::Struct::Hash > subject ).to be true; end
27
+
28
+ it "includes {I8::Struct}" do
29
+ expect( I8::Struct > subject ).to be true; end
30
+
31
+ INSTANCE width: 2, length: 3 do
32
+ it { is_expected.
33
+ to have_attributes width: 2, length: 3, area: 6 }; end
34
+ end
35
+
36
+ end # SETUP
37
+ end # CASE
38
+
39
+ end # SPEC FILE
@@ -0,0 +1,50 @@
1
+ require 'commonmarker'
2
+
3
+ SPEC_FILE(
4
+ spec_path: __FILE__,
5
+ module: NRSER::Types,
6
+ description: "Check examples in //lib/nrser/types/doc/display_table.md",
7
+ ) do
8
+
9
+ path = NRSER::ROOT.join 'lib', 'nrser', 'types', 'doc', 'display_table.md'
10
+ source = path.read
11
+ doc = CommonMarker.render_doc source, :DEFAULT, [ :table ]
12
+
13
+ table_node = doc.walk.find { |node| node.type == :table }
14
+
15
+ table_contents = table_node.each.map do |row|
16
+ row.each.map do |col|
17
+ col.first.string_content
18
+ end
19
+ end
20
+
21
+ table_header = table_contents[0]
22
+ table_body = table_contents[1..-1]
23
+
24
+ hashes = table_body.map { |row|
25
+ row.each_with_index.map { |contents, index|
26
+ [ table_header[index], contents ]
27
+ }.to_h
28
+ }
29
+
30
+ def t
31
+ NRSER::Types
32
+ end
33
+
34
+ hashes.each do |hash|
35
+ describe hash["source"] do
36
+ subject { eval hash["source"] }
37
+
38
+ hash.each do |col_name, value|
39
+ if col_name.start_with? '#'
40
+ method_name = col_name[1..-1].to_sym
41
+
42
+ describe_attr method_name do
43
+ it { is_expected.to eq value }
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+
50
+ end # SPEC_FILE
@@ -1,10 +1,10 @@
1
- describe_spec_file(
1
+ SPEC_FILE(
2
2
  spec_path: __FILE__,
3
3
  source_file: 'nrser/types/paths.rb',
4
4
  module: NRSER::Types,
5
5
  ) do
6
6
 
7
- describe_method :dir_path do
7
+ METHOD :dir_path do
8
8
  include_examples 'make type',
9
9
  accepts: [
10
10
  '.',
@@ -20,10 +20,10 @@ describe_spec_file(
20
20
  Pathname.getwd => Pathname.getwd.to_s,
21
21
  }
22
22
 
23
- end # method .dir_path
23
+ end # METHOD .dir_path
24
24
 
25
25
 
26
- describe_method :file_path do
26
+ METHOD :file_path do
27
27
 
28
28
  include_examples 'make type',
29
29
  accepts: [
@@ -44,7 +44,7 @@ describe_spec_file(
44
44
  }
45
45
  }
46
46
 
47
- context "custom name" do
47
+ WHEN "custom name" do
48
48
  include_examples 'make type',
49
49
  args: [ name: 'CustomType' ],
50
50
 
@@ -65,12 +65,12 @@ describe_spec_file(
65
65
  }
66
66
  }
67
67
  }
68
- end # custom name
68
+ end # WHEN custom name
69
69
 
70
- end # method .dir_path
70
+ end # METHOD .dir_path
71
71
 
72
72
 
73
- describe_method :path_seg do
73
+ METHOD :path_seg do
74
74
  include_examples 'make type',
75
75
  accepts: [
76
76
  'hey',
@@ -89,6 +89,12 @@ describe_spec_file(
89
89
  }
90
90
  }
91
91
 
92
- end # method .path_seg
92
+ end # METHOD .path_seg
93
+
94
+
95
+ METHOD :tilde_path do
96
+
97
+ end # METHOD .tilde_path Description
98
+
93
99
 
94
- end
100
+ end # SPEC_FILE
@@ -0,0 +1,125 @@
1
+ require 'nrser/core_ext/symbol'
2
+
3
+ require 'nrser/refinements/types'
4
+ using NRSER::Types
5
+
6
+
7
+ SPEC_FILE \
8
+ spec_path: __FILE__,
9
+ module: NRSER::Types,
10
+ method: :selector,
11
+ description: "Using selector types in Enumerable#select" \
12
+ do
13
+
14
+ data = [
15
+ {
16
+ item: "journal",
17
+ qty: 25,
18
+ size: { h: 14, w: 21, uom: "cm" },
19
+ status: "A",
20
+ groups: [ 'a', 'b' ]
21
+ },
22
+
23
+ {
24
+ item: "notebook",
25
+ qty: 50,
26
+ size: { h: 8.5, w: 11, uom: "in" },
27
+ status: "A",
28
+ groups: [ 'b', 'c' ],
29
+ },
30
+
31
+ {
32
+ item: "paper",
33
+ qty: 100,
34
+ size: { h: 8.5, w: 11, uom: "in" },
35
+ status: "D",
36
+ groups: [ 'a', 'c' ],
37
+ },
38
+
39
+ {
40
+ item: "planner",
41
+ qty: 75,
42
+ size: { h: 22.85, w: 30, uom: "cm" },
43
+ status: "D",
44
+ groups: [ 'd', 'e' ],
45
+ },
46
+
47
+ {
48
+ item: "postcard",
49
+ qty: 45,
50
+ size: { h: 10, w: 15.25, uom: "cm" },
51
+ status: "A",
52
+ groups: [ 'a' ],
53
+ },
54
+ ]
55
+
56
+ subject { data.select( &selector ).map( &[:item] ).to_set }
57
+
58
+ CASE "querying for group membership" do
59
+
60
+ WHEN "querying a single group",
61
+ selector: t[ groups: 'b' ] do
62
+ it { is_expected.to \
63
+ eq %w(journal notebook).to_set }; end
64
+
65
+
66
+ # This *works*, but I don't think it's totally what I want...
67
+ WHEN "querying for members of any of a list of groups",
68
+ selector: \
69
+ t[ groups: ( t.has( 'b' ) | t.has( 'c' ) ) ] do
70
+ it { is_expected.to \
71
+ eq %w(journal notebook paper).to_set }; end
72
+
73
+
74
+ # Mongo style..? hard to find docs...
75
+ #
76
+ # https://stackoverflow.com/a/34244908/
77
+ # https://docs.mongodb.com/manual/reference/operator/query/in/#use-the-in-operator-to-match-values-in-an-array
78
+ #
79
+ # How it seems you would do it there:
80
+ #
81
+ # { groups: { $in: [ 'b', 'c', ] } }
82
+ #
83
+ # but we already used "in" for the opposite thing.
84
+ # so for us how about:
85
+ #
86
+ # t[ groups: t.has_any( 'b', 'c' ) ]
87
+ #
88
+ # Another possible name:
89
+ #
90
+ # t[ groups: t.intersects( 'b', 'c' ) ]
91
+ #
92
+ # Variations:
93
+ #
94
+ # t[ groups: t.has_all( 'b', 'c' ) ]
95
+ #
96
+ # To me right now this reads to me like you're asking if `groups` is "in"
97
+ # [ 'b', 'c' ] - which it's not.
98
+ #
99
+ # t[ groups: t.in( 'b', 'c' ) ]
100
+ #
101
+ WHEN "querying for members of any of a list of groups",
102
+ selector: \
103
+ t[ groups: t.has_any( 'b', 'c' ) ] do
104
+ it { is_expected.to \
105
+ eq %w(journal notebook paper).to_set }; end
106
+
107
+ end # USE CASE *************************************************************
108
+
109
+
110
+ WHEN selector: t[ status: 'D' ] do
111
+ it { is_expected.to eq %w(paper planner).to_set }; end
112
+
113
+
114
+ WHEN selector: t[ item: /^p/ ] do
115
+ it { is_expected.to eq Set[ 'paper', 'planner', 'postcard' ] }; end
116
+
117
+
118
+ WHEN "trying out a more complicated selector",
119
+ selector: \
120
+ ( t[ status: 'A' ] | t[ size: t[ w: 11 ] ] ) do
121
+ it { is_expected.to \
122
+ eq Set[ 'notebook', 'paper', 'journal', 'postcard' ] }; end
123
+
124
+
125
+ end # SPEC FILE
data/spec/spec_helper.rb CHANGED
@@ -25,6 +25,9 @@ require 'nrser/rspex'
25
25
  require_relative './support/shared'
26
26
 
27
27
 
28
+ NRSER::Log.setup_for_rspec!
29
+
30
+
28
31
  RSpec.configure do |config|
29
32
  unless ENV['LABS']
30
33
  config.filter_run_excluding labs: true
@@ -44,11 +47,7 @@ end
44
47
 
45
48
  # Dumping ground for classes and modules that we need to create for tests.
46
49
  #
47
- module NRSER::TestFixtures
48
-
49
- # module definition...
50
-
51
- end # module NRSER::TestFixtures
50
+ module NRSER::TestFixtures; end
52
51
 
53
52
 
54
53
  # Was a part of old {NRSER::Logger} testing, keeping for a minute to see if
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.3.9
4
+ version: 0.3.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - nrser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-20 00:00:00.000000000 Z
11
+ date: 2018-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hamster
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.17.7
75
+ version: 0.17.9
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.17.7
82
+ version: 0.17.9
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: activesupport
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -162,76 +162,126 @@ dependencies:
162
162
  requirements:
163
163
  - - "~>"
164
164
  - !ruby/object:Gem::Version
165
- version: 0.9.12
165
+ version: 0.9.15
166
166
  type: :development
167
167
  prerelease: false
168
168
  version_requirements: !ruby/object:Gem::Requirement
169
169
  requirements:
170
170
  - - "~>"
171
171
  - !ruby/object:Gem::Version
172
- version: 0.9.12
172
+ version: 0.9.15
173
173
  - !ruby/object:Gem::Dependency
174
174
  name: github-markup
175
175
  requirement: !ruby/object:Gem::Requirement
176
176
  requirements:
177
177
  - - "~>"
178
178
  - !ruby/object:Gem::Version
179
- version: '1.6'
179
+ version: 2.0.1
180
180
  type: :development
181
181
  prerelease: false
182
182
  version_requirements: !ruby/object:Gem::Requirement
183
183
  requirements:
184
184
  - - "~>"
185
185
  - !ruby/object:Gem::Version
186
- version: '1.6'
186
+ version: 2.0.1
187
187
  - !ruby/object:Gem::Dependency
188
188
  name: yard-commonmarker
189
189
  requirement: !ruby/object:Gem::Requirement
190
190
  requirements:
191
191
  - - "~>"
192
192
  - !ruby/object:Gem::Version
193
- version: 0.3.0
193
+ version: 0.5.0
194
194
  type: :development
195
195
  prerelease: false
196
196
  version_requirements: !ruby/object:Gem::Requirement
197
197
  requirements:
198
198
  - - "~>"
199
199
  - !ruby/object:Gem::Version
200
- version: 0.3.0
200
+ version: 0.5.0
201
201
  - !ruby/object:Gem::Dependency
202
202
  name: pry
203
203
  requirement: !ruby/object:Gem::Requirement
204
204
  requirements:
205
205
  - - "~>"
206
206
  - !ruby/object:Gem::Version
207
- version: 0.10.4
207
+ version: 0.11.3
208
208
  type: :development
209
209
  prerelease: false
210
210
  version_requirements: !ruby/object:Gem::Requirement
211
211
  requirements:
212
212
  - - "~>"
213
213
  - !ruby/object:Gem::Version
214
- version: 0.10.4
214
+ version: 0.11.3
215
+ - !ruby/object:Gem::Dependency
216
+ name: pry-rescue
217
+ requirement: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - "~>"
220
+ - !ruby/object:Gem::Version
221
+ version: 1.4.5
222
+ type: :development
223
+ prerelease: false
224
+ version_requirements: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - "~>"
227
+ - !ruby/object:Gem::Version
228
+ version: 1.4.5
229
+ - !ruby/object:Gem::Dependency
230
+ name: pry-stack_explorer
231
+ requirement: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - "~>"
234
+ - !ruby/object:Gem::Version
235
+ version: 0.4.9
236
+ type: :development
237
+ prerelease: false
238
+ version_requirements: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - "~>"
241
+ - !ruby/object:Gem::Version
242
+ version: 0.4.9
215
243
  - !ruby/object:Gem::Dependency
216
244
  name: cmds
217
245
  requirement: !ruby/object:Gem::Requirement
218
246
  requirements:
219
247
  - - "~>"
220
248
  - !ruby/object:Gem::Version
221
- version: '0.0'
222
- - - ">="
249
+ version: 0.2.11
250
+ type: :development
251
+ prerelease: false
252
+ version_requirements: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - "~>"
255
+ - !ruby/object:Gem::Version
256
+ version: 0.2.11
257
+ - !ruby/object:Gem::Dependency
258
+ name: nokogiri
259
+ requirement: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - "~>"
223
262
  - !ruby/object:Gem::Version
224
- version: 0.2.4
263
+ version: 1.8.4
225
264
  type: :development
226
265
  prerelease: false
227
266
  version_requirements: !ruby/object:Gem::Requirement
228
267
  requirements:
229
268
  - - "~>"
230
269
  - !ruby/object:Gem::Version
231
- version: '0.0'
232
- - - ">="
270
+ version: 1.8.4
271
+ - !ruby/object:Gem::Dependency
272
+ name: mongo
273
+ requirement: !ruby/object:Gem::Requirement
274
+ requirements:
275
+ - - "~>"
276
+ - !ruby/object:Gem::Version
277
+ version: 2.6.1
278
+ type: :development
279
+ prerelease: false
280
+ version_requirements: !ruby/object:Gem::Requirement
281
+ requirements:
282
+ - - "~>"
233
283
  - !ruby/object:Gem::Version
234
- version: 0.2.4
284
+ version: 2.6.1
235
285
  description:
236
286
  email:
237
287
  - neil@neilsouza.com
@@ -266,11 +316,13 @@ files:
266
316
  - lib/nrser/core_ext/object/lazy_var.rb
267
317
  - lib/nrser/core_ext/open_struct.rb
268
318
  - lib/nrser/core_ext/pathname.rb
319
+ - lib/nrser/core_ext/pathname/subpath.rb
269
320
  - lib/nrser/core_ext/string.rb
270
321
  - lib/nrser/core_ext/symbol.rb
271
322
  - lib/nrser/core_ext/time.rb
272
323
  - lib/nrser/core_ext/unbound_method/full_name.rb
273
324
  - lib/nrser/errors.rb
325
+ - lib/nrser/errors/README.md
274
326
  - lib/nrser/errors/abstract_method_error.rb
275
327
  - lib/nrser/errors/argument_error.rb
276
328
  - lib/nrser/errors/attr_error.rb
@@ -301,11 +353,14 @@ files:
301
353
  - lib/nrser/functions/object/truthy.rb
302
354
  - lib/nrser/functions/open_struct.rb
303
355
  - lib/nrser/functions/path.rb
356
+ - lib/nrser/functions/path/normalized.rb
304
357
  - lib/nrser/functions/proc.rb
305
358
  - lib/nrser/functions/string.rb
306
359
  - lib/nrser/functions/string/looks_like.rb
307
360
  - lib/nrser/functions/string/style.rb
308
361
  - lib/nrser/functions/text.rb
362
+ - lib/nrser/functions/text/README.md
363
+ - lib/nrser/functions/text/format.rb
309
364
  - lib/nrser/functions/text/indentation.rb
310
365
  - lib/nrser/functions/text/lines.rb
311
366
  - lib/nrser/functions/text/word_wrap.rb
@@ -317,6 +372,7 @@ files:
317
372
  - lib/nrser/functions/tree/map_leaves.rb
318
373
  - lib/nrser/functions/tree/map_tree.rb
319
374
  - lib/nrser/functions/tree/transform.rb
375
+ - lib/nrser/gem_ext/README.md
320
376
  - lib/nrser/gem_ext/hamster.rb
321
377
  - lib/nrser/gem_ext/hamster/hash.rb
322
378
  - lib/nrser/gem_ext/hamster/set.rb
@@ -324,9 +380,15 @@ files:
324
380
  - lib/nrser/gem_ext/hamster/vector.rb
325
381
  - lib/nrser/graph/tsorter.rb
326
382
  - lib/nrser/labs.rb
383
+ - lib/nrser/labs/README.md
384
+ - lib/nrser/labs/config.rb
327
385
  - lib/nrser/labs/core_ext/binding.rb
328
386
  - lib/nrser/labs/globlin.rb
329
387
  - lib/nrser/labs/i8.rb
388
+ - lib/nrser/labs/i8/struct.rb
389
+ - lib/nrser/labs/i8/struct/hash.rb
390
+ - lib/nrser/labs/i8/struct/vector.rb
391
+ - lib/nrser/labs/i8/surjection.rb
330
392
  - lib/nrser/labs/index.rb
331
393
  - lib/nrser/labs/lots/consumer.rb
332
394
  - lib/nrser/labs/lots/parser.rb
@@ -345,6 +407,7 @@ files:
345
407
  - lib/nrser/mean_streak/document.rb
346
408
  - lib/nrser/message.rb
347
409
  - lib/nrser/meta.rb
410
+ - lib/nrser/meta/README.md
348
411
  - lib/nrser/meta/class_attrs.rb
349
412
  - lib/nrser/meta/lazy_attr.rb
350
413
  - lib/nrser/meta/source/location.rb
@@ -395,12 +458,15 @@ files:
395
458
  - lib/nrser/sys/env.rb
396
459
  - lib/nrser/sys/env/path.rb
397
460
  - lib/nrser/types.rb
398
- - lib/nrser/types/any.rb
461
+ - lib/nrser/types/README.md
399
462
  - lib/nrser/types/arrays.rb
400
- - lib/nrser/types/attrs.rb
463
+ - lib/nrser/types/attributes.rb
401
464
  - lib/nrser/types/booleans.rb
402
465
  - lib/nrser/types/bounded.rb
466
+ - lib/nrser/types/collections.rb
403
467
  - lib/nrser/types/combinators.rb
468
+ - lib/nrser/types/doc/display_table.md
469
+ - lib/nrser/types/eqiuvalent.rb
404
470
  - lib/nrser/types/errors/check_error.rb
405
471
  - lib/nrser/types/errors/from_string_error.rb
406
472
  - lib/nrser/types/factory.rb
@@ -416,10 +482,11 @@ files:
416
482
  - lib/nrser/types/pairs.rb
417
483
  - lib/nrser/types/paths.rb
418
484
  - lib/nrser/types/responds.rb
485
+ - lib/nrser/types/selector.rb
419
486
  - lib/nrser/types/shape.rb
420
487
  - lib/nrser/types/strings.rb
421
488
  - lib/nrser/types/symbols.rb
422
- - lib/nrser/types/trees.rb
489
+ - lib/nrser/types/top.rb
423
490
  - lib/nrser/types/tuples.rb
424
491
  - lib/nrser/types/type.rb
425
492
  - lib/nrser/types/when.rb
@@ -432,7 +499,10 @@ files:
432
499
  - spec/lib/nrser/core_ext/hash/short_transform_keys_spec.rb
433
500
  - spec/lib/nrser/core_ext/hash_spec.rb
434
501
  - spec/lib/nrser/core_ext/method/full_name_spec.rb
502
+ - spec/lib/nrser/core_ext/pathname/subpath_spec.rb
435
503
  - spec/lib/nrser/errors/abstract_method_error_spec.rb
504
+ - spec/lib/nrser/errors/attr_error_spec.rb
505
+ - spec/lib/nrser/errors/count_error_spec.rb
436
506
  - spec/lib/nrser/functions/enumerable/associate_spec.rb
437
507
  - spec/lib/nrser/functions/enumerable/find_all_map_spec.rb
438
508
  - spec/lib/nrser/functions/enumerable/find_bounded_spec.rb
@@ -444,6 +514,7 @@ files:
444
514
  - spec/lib/nrser/functions/merge_by_spec.rb
445
515
  - spec/lib/nrser/functions/object/truthy_spec.rb
446
516
  - spec/lib/nrser/functions/open_struct_spec.rb
517
+ - spec/lib/nrser/functions/path/normalize_path_spec.rb
447
518
  - spec/lib/nrser/functions/string/common_prefix_spec.rb
448
519
  - spec/lib/nrser/functions/string/looks_like_spec.rb
449
520
  - spec/lib/nrser/functions/text/dedent/gotchas_spec.rb
@@ -458,7 +529,9 @@ files:
458
529
  - spec/lib/nrser/functions/tree/transformer_spec.rb
459
530
  - spec/lib/nrser/gem_ext/hamster/json_spec.rb
460
531
  - spec/lib/nrser/gem_ext/hamster/to_mutable_spec.rb
532
+ - spec/lib/nrser/labs/config_spec.rb
461
533
  - spec/lib/nrser/labs/globlin_spec.rb
534
+ - spec/lib/nrser/labs/i8/struct_spec.rb
462
535
  - spec/lib/nrser/labs/index_spec.rb
463
536
  - spec/lib/nrser/mean_streak/design_spec.rb
464
537
  - spec/lib/nrser/mean_streak/identity_instance_spec.rb
@@ -482,9 +555,11 @@ files:
482
555
  - spec/lib/nrser/types/array_spec.rb
483
556
  - spec/lib/nrser/types/attrs_spec.rb
484
557
  - spec/lib/nrser/types/combinators_spec.rb
558
+ - spec/lib/nrser/types/display_spec.rb
485
559
  - spec/lib/nrser/types/is_spec.rb
486
560
  - spec/lib/nrser/types/pairs_spec.rb
487
561
  - spec/lib/nrser/types/paths_spec.rb
562
+ - spec/lib/nrser/types/selector_spec.rb
488
563
  - spec/lib/nrser/types/strings_spec.rb
489
564
  - spec/lib/nrser/types/symbols_spec.rb
490
565
  - spec/lib/nrser/types/tuples_spec.rb
@@ -513,7 +588,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
513
588
  version: '0'
514
589
  requirements: []
515
590
  rubyforge_project:
516
- rubygems_version: 2.5.2.2
591
+ rubygems_version: 2.5.2.3
517
592
  signing_key:
518
593
  specification_version: 4
519
594
  summary: basic ruby utils i use in a lot of stuff.
@@ -525,7 +600,10 @@ test_files:
525
600
  - spec/lib/nrser/core_ext/hash/short_transform_keys_spec.rb
526
601
  - spec/lib/nrser/core_ext/hash_spec.rb
527
602
  - spec/lib/nrser/core_ext/method/full_name_spec.rb
603
+ - spec/lib/nrser/core_ext/pathname/subpath_spec.rb
528
604
  - spec/lib/nrser/errors/abstract_method_error_spec.rb
605
+ - spec/lib/nrser/errors/attr_error_spec.rb
606
+ - spec/lib/nrser/errors/count_error_spec.rb
529
607
  - spec/lib/nrser/functions/enumerable/associate_spec.rb
530
608
  - spec/lib/nrser/functions/enumerable/find_all_map_spec.rb
531
609
  - spec/lib/nrser/functions/enumerable/find_bounded_spec.rb
@@ -537,6 +615,7 @@ test_files:
537
615
  - spec/lib/nrser/functions/merge_by_spec.rb
538
616
  - spec/lib/nrser/functions/object/truthy_spec.rb
539
617
  - spec/lib/nrser/functions/open_struct_spec.rb
618
+ - spec/lib/nrser/functions/path/normalize_path_spec.rb
540
619
  - spec/lib/nrser/functions/string/common_prefix_spec.rb
541
620
  - spec/lib/nrser/functions/string/looks_like_spec.rb
542
621
  - spec/lib/nrser/functions/text/dedent/gotchas_spec.rb
@@ -551,7 +630,9 @@ test_files:
551
630
  - spec/lib/nrser/functions/tree/transformer_spec.rb
552
631
  - spec/lib/nrser/gem_ext/hamster/json_spec.rb
553
632
  - spec/lib/nrser/gem_ext/hamster/to_mutable_spec.rb
633
+ - spec/lib/nrser/labs/config_spec.rb
554
634
  - spec/lib/nrser/labs/globlin_spec.rb
635
+ - spec/lib/nrser/labs/i8/struct_spec.rb
555
636
  - spec/lib/nrser/labs/index_spec.rb
556
637
  - spec/lib/nrser/mean_streak/design_spec.rb
557
638
  - spec/lib/nrser/mean_streak/identity_instance_spec.rb
@@ -575,9 +656,11 @@ test_files:
575
656
  - spec/lib/nrser/types/array_spec.rb
576
657
  - spec/lib/nrser/types/attrs_spec.rb
577
658
  - spec/lib/nrser/types/combinators_spec.rb
659
+ - spec/lib/nrser/types/display_spec.rb
578
660
  - spec/lib/nrser/types/is_spec.rb
579
661
  - spec/lib/nrser/types/pairs_spec.rb
580
662
  - spec/lib/nrser/types/paths_spec.rb
663
+ - spec/lib/nrser/types/selector_spec.rb
581
664
  - spec/lib/nrser/types/strings_spec.rb
582
665
  - spec/lib/nrser/types/symbols_spec.rb
583
666
  - spec/lib/nrser/types/tuples_spec.rb