nrser 0.3.9 → 0.3.10

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 (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