quo 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 88c53b53f941762022f3b012abe6fe3e977e125c562f771aca630c28a087c13e
4
- data.tar.gz: dfdeb96c25d7a3e06fef0524b6c77be0cff1ae94368b39f17d6a3a3c8400e181
3
+ metadata.gz: 61bf7495c0092bf641ff6e85bed8dc0073ea61e15a5292f0825f50eca4348a92
4
+ data.tar.gz: c10cc10dfe8ce323e4395640604a1c6358333bb7ea26b1c109d43eee67ed2d73
5
5
  SHA512:
6
- metadata.gz: 281cad72c46e498166255f5f973fd09dfec37d309e406bccbfe27cd8ae80cfd95321f2dace615d0be36db8b9b9f38b3257e7e2acf3fd81c7f05788daa48d8e9d
7
- data.tar.gz: f09f1213677fb08bc45ac5c27262afc0692555fe24a0da0547ad37e15661019d92d9e49f7eda7651c9c518334cca2f1195a38e0c7d60b61384240f34046032d6
6
+ metadata.gz: e8e4105330e725058ca4c94f2c58229a0018e9379c38ac189cc2dbd007163468b845dd9632d727f824a35d4bc8cebbb7e40f5d24267277b0c1cbe0b580abb100
7
+ data.tar.gz: 7180ea2d74f1849628a1635c381685c5d2841c27229868280cd59a580dae759d61cc5236fba06b4044a93b667a23f670f4ba5960720165ccb1a6a103a4d06f37
data/README.md CHANGED
@@ -229,7 +229,7 @@ q.count # array size
229
229
  `Quo::EagerQuery` is a subclass of `Quo::Query` which takes a data value on instantiation and returns it on calls to `query`
230
230
 
231
231
  ```ruby
232
- q = Quo::EagerQuery.new(collection: [1, 2, 3])
232
+ q = Quo::EagerQuery.new([1, 2, 3])
233
233
  q.eager? # is it 'eager'? Yes it is!
234
234
  q.count # '3'
235
235
  ```
@@ -242,7 +242,7 @@ actually just a page of the data and not the total count.
242
242
  Example of an EagerQuery used to wrap a page of enumerable data:
243
243
 
244
244
  ```ruby
245
- Quo::EagerQuery.new(collection: my_data, total_count: 100, page: current_page)
245
+ Quo::EagerQuery.new(my_data, total_count: 100, page: current_page)
246
246
  ```
247
247
 
248
248
  ### Composition
@@ -262,7 +262,7 @@ composed.last
262
262
  composed.first
263
263
  # => #<Tag id: ...>
264
264
 
265
- Quo::EagerQuery.new([3, 4]).compose(Quo::EagerQuery.new(collection: [1, 2])).last
265
+ Quo::EagerQuery.new([3, 4]).compose(Quo::EagerQuery.new([1, 2])).last
266
266
  # => 2
267
267
  Quo::Query.compose([1, 2], [3, 4]).last
268
268
  # => 4
data/Steepfile CHANGED
@@ -31,6 +31,7 @@ target :lib do
31
31
  signature "sig"
32
32
  ignore "lib/quo/rspec/*.rb"
33
33
  ignore "lib/tasks/*"
34
+ ignore "lib/quo/railtie.rb"
34
35
 
35
36
  library "forwardable"
36
37
  end
@@ -2,9 +2,29 @@
2
2
 
3
3
  module Quo
4
4
  class EagerQuery < Quo::Query
5
- def initialize(**options)
6
- @collection = Array.wrap(options[:collection])
7
- super(**options.except(:collection))
5
+ class << self
6
+ def call(**options)
7
+ build_from_options(options).first
8
+ end
9
+
10
+ def call!(**options)
11
+ build_from_options(options).first!
12
+ end
13
+
14
+ def build_from_options(options)
15
+ collection = options[:collection]
16
+ raise ArgumentError, "EagerQuery needs a collection" unless collection
17
+ new(collection, **options.except(:collection))
18
+ end
19
+ end
20
+
21
+ def initialize(collection, **options)
22
+ @collection = Array.wrap(collection)
23
+ super(**options)
24
+ end
25
+
26
+ def copy(**options)
27
+ self.class.new(@collection, **@options.merge(options))
8
28
  end
9
29
 
10
30
  # Optionally return the `total_count` option if it has been set.
@@ -4,18 +4,18 @@ module Quo
4
4
  class MergedQuery < Quo::Query
5
5
  class << self
6
6
  def call(**options)
7
- build_from_options(**options).first
7
+ build_from_options(options).first
8
8
  end
9
9
 
10
10
  def call!(**options)
11
- build_from_options(**options).first!
11
+ build_from_options(options).first!
12
12
  end
13
13
 
14
- def build_from_options(**options)
14
+ def build_from_options(options)
15
15
  merged_query = options[:merged_query]
16
16
  left = options[:left]
17
17
  right = options[:right]
18
- raise ArgumentError "MergedQuery needs the merged result and operands" unless merged_query && left && right
18
+ raise ArgumentError, "MergedQuery needs the merged result and operands" unless merged_query && left && right
19
19
  new(merged_query, left, right, **options)
20
20
  end
21
21
  end
data/lib/quo/query.rb CHANGED
@@ -28,7 +28,7 @@ module Quo
28
28
  def initialize(**options)
29
29
  @options = options
30
30
  @current_page = options[:page]&.to_i || options[:current_page]&.to_i
31
- @page_size = options[:page_size]&.to_i || 20
31
+ @page_size = options[:page_size]&.to_i || Quo.configuration.default_page_size || 20
32
32
  end
33
33
 
34
34
  # Returns a active record query, or a Quo::Query instance
@@ -93,57 +93,56 @@ module Quo
93
93
  delegate :model, :klass, to: :underlying_query
94
94
 
95
95
  # Get first elements
96
- def first(*args)
96
+ def first(limit = nil)
97
97
  if transform?
98
- res = query_with_logging.first(*args)
98
+ res = query_with_logging.first(limit)
99
99
  if res.is_a? Array
100
- res.map.with_index { |r, i| transformer.call(r, i) }
100
+ res.map.with_index { |r, i| transformer&.call(r, i) }
101
101
  elsif !res.nil?
102
- transformer.call(query_with_logging.first(*args))
102
+ transformer&.call(query_with_logging.first(limit))
103
103
  end
104
104
  else
105
- query_with_logging.first(*args)
105
+ query_with_logging.first(limit)
106
106
  end
107
107
  end
108
108
 
109
- def first!(*args)
110
- item = first(*args)
109
+ def first!(limit = nil)
110
+ item = first(limit)
111
111
  raise ActiveRecord::RecordNotFound, "No item could be found!" unless item
112
112
  item
113
113
  end
114
114
 
115
115
  # Get last elements
116
- def last(*args)
116
+ def last(limit = nil)
117
117
  if transform?
118
- res = query_with_logging.last(*args)
118
+ res = query_with_logging.last(limit)
119
119
  if res.is_a? Array
120
- res.map.with_index { |r, i| transformer.call(r, i) }
120
+ res.map.with_index { |r, i| transformer&.call(r, i) }
121
121
  elsif !res.nil?
122
- transformer.call(query_with_logging.last(*args))
122
+ transformer&.call(res)
123
123
  end
124
124
  else
125
- query_with_logging.last(*args)
125
+ query_with_logging.last(limit)
126
126
  end
127
127
  end
128
128
 
129
129
  # Convert to array
130
130
  def to_a
131
131
  arr = query_with_logging.to_a
132
- transform? ? arr.map.with_index { |r, i| transformer.call(r, i) } : arr
132
+ transform? ? arr.map.with_index { |r, i| transformer&.call(r, i) } : arr
133
133
  end
134
134
 
135
135
  # Convert to EagerQuery, and load all data
136
136
  def to_eager(more_opts = {})
137
- Quo::EagerQuery.new(collection: to_a, **options.merge(more_opts))
137
+ Quo::EagerQuery.new(to_a, **options.merge(more_opts))
138
138
  end
139
139
  alias_method :load, :to_eager
140
140
 
141
- # Return an enumerable
142
- def enumerator
143
- Quo::Enumerator.new(self, transformer: transformer)
141
+ def results
142
+ Quo::Results.new(self, transformer: transformer)
144
143
  end
145
144
 
146
- # Some convenience methods for iterating over the results
145
+ # Some convenience methods for working with results
147
146
  delegate :each,
148
147
  :map,
149
148
  :flat_map,
@@ -151,8 +150,9 @@ module Quo
151
150
  :reject,
152
151
  :filter,
153
152
  :find,
153
+ :include?,
154
154
  :each_with_object,
155
- to: :enumerator
155
+ to: :results
156
156
 
157
157
  # Set a block used to transform data after query fetching
158
158
  def transform(&block)
@@ -226,7 +226,11 @@ module Quo
226
226
 
227
227
  def offset
228
228
  per_page = sanitised_page_size
229
- page = current_page&.positive? ? current_page : 1
229
+ page = if current_page && current_page&.positive?
230
+ current_page
231
+ else
232
+ 1
233
+ end
230
234
  per_page * (page - 1)
231
235
  end
232
236
 
@@ -238,7 +242,17 @@ module Quo
238
242
  end
239
243
 
240
244
  def sanitised_page_size
241
- (page_size.present? && page_size.positive?) ? [page_size.to_i, 200].min : 20
245
+ if page_size && page_size.positive?
246
+ given_size = page_size.to_i
247
+ max_page_size = Quo.configuration.max_page_size || 200
248
+ if given_size > max_page_size
249
+ max_page_size
250
+ else
251
+ given_size
252
+ end
253
+ else
254
+ Quo.configuration.default_page_size || 20
255
+ end
242
256
  end
243
257
 
244
258
  def query_with_logging
@@ -5,6 +5,10 @@ module Quo
5
5
  def initialize(left, right, joins = nil)
6
6
  @left = left
7
7
  @right = right
8
+ @unwrapped_left = unwrap_relation(left)
9
+ @unwrapped_right = unwrap_relation(right)
10
+ @left_relation = @unwrapped_left.is_a?(::ActiveRecord::Relation)
11
+ @right_relation = @unwrapped_right.is_a?(::ActiveRecord::Relation)
8
12
  @joins = joins
9
13
  end
10
14
 
@@ -19,22 +23,26 @@ module Quo
19
23
 
20
24
  private
21
25
 
22
- attr_reader :left, :right, :joins
26
+ attr_reader :left, :right, :joins, :unwrapped_left, :unwrapped_right
23
27
 
24
- def merge_left_and_right
25
- left_rel = unwrap_relation(left)
26
- right_rel = unwrap_relation(right)
27
- left_is_relation = relation_type?(left)
28
- right_is_relation = relation_type?(right)
28
+ def left_relation?
29
+ @left_relation
30
+ end
31
+
32
+ def right_relation?
33
+ @right_relation
34
+ end
29
35
 
30
- if left_is_relation && right_is_relation
31
- apply_joins(left_rel, joins).merge(right_rel)
32
- elsif left_is_relation && !right_is_relation
33
- left_rel.to_a + right_rel
34
- elsif !left_is_relation && right_is_relation
35
- left_rel + right_rel.to_a
36
- elsif !left_is_relation && !right_is_relation
37
- left_rel + right_rel
36
+ def merge_left_and_right
37
+ # FIXME: Skipping type checks here, as not sure how to make this type check with RBS
38
+ __skip__ = if both_relations?
39
+ apply_joins(unwrapped_left, joins).merge(unwrapped_right)
40
+ elsif left_relation_right_enumerable?
41
+ unwrapped_left.to_a + unwrapped_right
42
+ elsif left_enumerable_right_relation?
43
+ unwrapped_left + unwrapped_right.to_a
44
+ else
45
+ unwrapped_left + unwrapped_right
38
46
  end
39
47
  end
40
48
 
@@ -49,16 +57,20 @@ module Quo
49
57
  query.is_a?(Quo::Query) ? query.unwrap : query
50
58
  end
51
59
 
52
- def relation_type?(query)
53
- if query.is_a?(::Quo::Query)
54
- query.relation?
55
- else
56
- query.is_a?(::ActiveRecord::Relation)
57
- end
58
- end
59
-
60
60
  def apply_joins(left_rel, joins)
61
61
  joins.present? ? left_rel.joins(joins) : left_rel
62
62
  end
63
+
64
+ def both_relations?
65
+ left_relation? && right_relation?
66
+ end
67
+
68
+ def left_relation_right_enumerable?
69
+ left_relation? && !right_relation?
70
+ end
71
+
72
+ def left_enumerable_right_relation?
73
+ !left_relation? && right_relation?
74
+ end
63
75
  end
64
76
  end
@@ -4,7 +4,7 @@ require "forwardable"
4
4
  require_relative "./utilities/callstack"
5
5
 
6
6
  module Quo
7
- class Enumerator
7
+ class Results
8
8
  extend Forwardable
9
9
  include Quo::Utilities::Callstack
10
10
 
@@ -28,7 +28,7 @@ module Quo
28
28
  grouped = unwrapped.group_by do |*block_args|
29
29
  x = block_args.first
30
30
  transformed = transformer ? transformer.call(x) : x
31
- block.call(transformed, *block_args[1..])
31
+ block ? block.call(transformed, *(block_args[1..] || [])) : transformed
32
32
  end
33
33
 
34
34
  grouped.tap do |groups|
@@ -51,7 +51,8 @@ module Quo
51
51
  end
52
52
  else
53
53
  raw = unwrapped.send(method, *args, **kwargs)
54
- return raw if raw.is_a?(Quo::Enumerator) || raw.is_a?(::Enumerator)
54
+ # FIXME: consider how to handle applying a transformer to a Enumerator...
55
+ return raw if raw.is_a?(Quo::Results) || raw.is_a?(::Enumerator)
55
56
  transform_results(raw)
56
57
  end
57
58
  else
@@ -9,10 +9,10 @@ module Quo
9
9
  unless with.nil?
10
10
  return(
11
11
  allow(query_class).to receive(:new)
12
- .with(with) { ::Quo::EagerQuery.new(collection: results) }
12
+ .with(with) { ::Quo::EagerQuery.new(results) }
13
13
  )
14
14
  end
15
- allow(query_class).to receive(:new) { ::Quo::EagerQuery.new(collection: results) }
15
+ allow(query_class).to receive(:new) { ::Quo::EagerQuery.new(results) }
16
16
  end
17
17
  end
18
18
  end
@@ -12,7 +12,7 @@ module Quo
12
12
  stack = Kernel.caller.grep_v(exclude).map { |l| l.gsub(working_dir + "/", "") }
13
13
  stack_to_display = stack[0..callstack_size]
14
14
  message = "\n[Query stack]: -> #{stack_to_display&.join("\n &> ")}\n"
15
- message += " (truncated to #{callstack_size} most recent)" if stack.size > callstack_size
15
+ message += " (truncated to #{callstack_size} most recent)" if callstack_size && stack.size > callstack_size
16
16
  Quo.configuration.logger&.info(message)
17
17
  end
18
18
  end
@@ -15,7 +15,7 @@ module Quo
15
15
  if query_rel_or_data.is_a? ActiveRecord::Relation
16
16
  Quo::WrappedQuery.new(query_rel_or_data, **options)
17
17
  else
18
- Quo::EagerQuery.new(**options.merge(collection: query_rel_or_data))
18
+ Quo::EagerQuery.new(query_rel_or_data, **options)
19
19
  end
20
20
  end
21
21
  end
data/lib/quo/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Quo
4
- VERSION = "0.3.1"
4
+ VERSION = "0.4.0"
5
5
  end
@@ -13,7 +13,7 @@ module Quo
13
13
 
14
14
  def build_from_options(**options)
15
15
  query = options[:wrapped_query]
16
- raise ArgumentError "WrappedQuery needs a scope" unless query
16
+ raise ArgumentError, "WrappedQuery needs a scope" unless query
17
17
  new(query, **options)
18
18
  end
19
19
  end
data/lib/quo.rb CHANGED
@@ -7,7 +7,7 @@ require_relative "quo/eager_query"
7
7
  require_relative "quo/merged_query"
8
8
  require_relative "quo/wrapped_query"
9
9
  require_relative "quo/query_composer"
10
- require_relative "quo/enumerator"
10
+ require_relative "quo/results"
11
11
 
12
12
  module Quo
13
13
  class << self
@@ -22,12 +22,18 @@ module Quo
22
22
  end
23
23
 
24
24
  class Configuration
25
- attr_accessor :formatted_query_log, :query_show_callstack_size, :logger
25
+ attr_accessor :formatted_query_log,
26
+ :query_show_callstack_size,
27
+ :logger,
28
+ :max_page_size,
29
+ :default_page_size
26
30
 
27
31
  def initialize
28
32
  @formatted_query_log = true
29
33
  @query_show_callstack_size = 10
30
34
  @logger = nil
35
+ @max_page_size = 200
36
+ @default_page_size = 20
31
37
  end
32
38
  end
33
39
  end
@@ -1,13 +1,18 @@
1
1
  module Quo
2
2
  class EagerQuery < Quo::Query
3
- def initialize: (**untyped options) -> void
3
+ def self.call: (**untyped) -> untyped
4
+ def self.call!: (**untyped) -> untyped
5
+ def self.build_from_options: (queryOptions) -> EagerQuery
6
+
7
+ def initialize: (enumerable, **untyped options) -> void
4
8
  def query: () -> enumerable
5
9
  def relation?: () -> false
6
10
  def eager?: () -> true
7
- attr_reader collection: enumerable
8
11
 
9
12
  private
10
13
 
14
+ attr_reader collection: enumerable
15
+
11
16
  def preload_includes: (untyped records, ?untyped? preload) -> untyped
12
17
  end
13
18
  end
@@ -1,10 +1,12 @@
1
1
  module Quo
2
2
  class MergedQuery < Quo::Query
3
+ def self.build_from_options: (queryOptions) -> MergedQuery
4
+
3
5
  def initialize: (relOrEnumerable merged, composable left, composable right, **untyped options) -> void
4
6
 
5
7
  @merged_query: relOrEnumerable
6
8
 
7
- def query: () -> composable
9
+ def query: () -> relOrEnumerable
8
10
 
9
11
  def to_s: () -> ::String
10
12
 
data/sig/quo/query.rbs CHANGED
@@ -40,13 +40,13 @@ module Quo
40
40
 
41
41
  alias size count
42
42
  def page_count: () -> Integer
43
- def first: (*untyped args) -> untyped
44
- def first!: (*untyped args) -> untyped
45
- def last: (*untyped args) -> untyped
43
+ def first: (?Integer? limit) -> untyped
44
+ def first!: (?Integer? limit) -> untyped
45
+ def last: (?Integer? limit) -> untyped
46
46
  def to_a: () -> Array[untyped]
47
47
  def to_eager: (?::Hash[untyped, untyped] more_opts) -> Quo::EagerQuery
48
48
  alias load to_eager
49
- def enumerator: () -> Quo::Enumerator
49
+ def results: () -> Quo::Results
50
50
 
51
51
  # Set a block used to transform data after query fetching
52
52
  def transform: () ?{ () -> untyped } -> self
@@ -70,7 +70,7 @@ module Quo
70
70
  def formatted_queries?: () -> bool
71
71
  def trim_query: (String sql) -> String
72
72
  def format_query: (String sql_str) -> String
73
- def transformer: () -> (nil | ^(untyped) -> untyped)
73
+ def transformer: () -> (nil | ^(untyped, ?Integer) -> untyped)
74
74
  def offset: () -> Integer
75
75
  def configured_query: () -> ActiveRecord::Relation
76
76
  def sanitised_page_size: () -> Integer
@@ -1,5 +1,8 @@
1
1
  module Quo
2
2
  class QueryComposer
3
+ @left_relation: bool
4
+ @right_relation: bool
5
+
3
6
  def initialize: (composable left, composable right, ?untyped? joins) -> void
4
7
  def compose: () -> Quo::MergedQuery
5
8
 
@@ -9,10 +12,21 @@ module Quo
9
12
  attr_reader right: composable
10
13
  attr_reader joins: untyped
11
14
 
12
- def merge_left_and_right: () -> (ActiveRecord::Relation | Array[untyped])
15
+ attr_reader unwrapped_left: relOrEnumerable
16
+ attr_reader unwrapped_right: relOrEnumerable
17
+
18
+ def left_relation?: -> bool
19
+
20
+ def merge_left_and_right: () -> relOrEnumerable
13
21
  def merged_options: () -> ::Hash[untyped, untyped]
22
+
23
+ def right_relation?: -> bool
24
+
14
25
  def unwrap_relation: (composable) -> relOrEnumerable
15
- def relation_type?: (composable) -> bool
26
+ def relation_type?: (relOrEnumerable) -> bool
16
27
  def apply_joins: (ActiveRecord::Relation left_rel, untyped joins) -> ActiveRecord::Relation
28
+ def both_relations?: () -> bool
29
+ def left_relation_right_enumerable?: () -> bool
30
+ def left_enumerable_right_relation?: () -> bool
17
31
  end
18
32
  end
@@ -1,5 +1,5 @@
1
1
  module Quo
2
- class Enumerator
2
+ class Results
3
3
  extend Forwardable
4
4
 
5
5
  include Quo::Utilities::Callstack
@@ -8,7 +8,7 @@ module Quo
8
8
 
9
9
  @query: Quo::Query
10
10
 
11
- def group_by: -> Hash[untyped, Array[untyped]]
11
+ def group_by: () { (untyped, *untyped) -> untyped } -> Hash[untyped, Array[untyped]]
12
12
 
13
13
  def respond_to_missing?: (Symbol name, ?bool include_private) -> bool
14
14
 
@@ -1,9 +1,9 @@
1
1
  module Quo
2
2
  class WrappedQuery < Quo::Query
3
- @wrapped_query: ActiveRecord::Relation
4
-
5
3
  def self.build_from_options: (**untyped options) -> WrappedQuery
6
4
 
5
+ @wrapped_query: ActiveRecord::Relation
6
+
7
7
  def initialize: (ActiveRecord::Relation query, **untyped options) -> void
8
8
 
9
9
  def query: () -> ActiveRecord::Relation
data/sig/quo.rbs CHANGED
@@ -11,11 +11,14 @@ module Quo
11
11
 
12
12
  type query = Quo::Query
13
13
  type queryOrRel = query | ActiveRecord::Relation
14
- # FIXME: anything that is Enumerable should be composable, but I don't know how to express that
15
- type enumerable = Array[untyped] | Set[untyped]
14
+ type enumerable = Object & Enumerable[untyped]
16
15
  type relOrEnumerable = ActiveRecord::Relation | enumerable
17
16
  type composable = query | relOrEnumerable
18
17
 
18
+ # TODO: how can we do the known options, eg `page` and then allow anything else?
19
+ # Maybe we should separate out the known options from the unknown options
20
+ type queryOptions = Hash[Symbol, untyped]
21
+
19
22
  interface _Logger
20
23
  def info: (String) -> void
21
24
  def error: (String) -> void
@@ -26,6 +29,8 @@ module Quo
26
29
  attr_accessor formatted_query_log: bool?
27
30
  attr_accessor query_show_callstack_size: Integer?
28
31
  attr_accessor logger: _Logger?
32
+ attr_accessor max_page_size: Integer?
33
+ attr_accessor default_page_size: Integer?
29
34
 
30
35
  def initialize: () -> void
31
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen Ierodiaconou
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-12-22 00:00:00.000000000 Z
11
+ date: 2022-12-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -66,11 +66,11 @@ files:
66
66
  - Steepfile
67
67
  - lib/quo.rb
68
68
  - lib/quo/eager_query.rb
69
- - lib/quo/enumerator.rb
70
69
  - lib/quo/merged_query.rb
71
70
  - lib/quo/query.rb
72
71
  - lib/quo/query_composer.rb
73
72
  - lib/quo/railtie.rb
73
+ - lib/quo/results.rb
74
74
  - lib/quo/rspec/helpers.rb
75
75
  - lib/quo/utilities/callstack.rb
76
76
  - lib/quo/utilities/compose.rb
@@ -82,10 +82,10 @@ files:
82
82
  - rbs_collection.yaml
83
83
  - sig/quo.rbs
84
84
  - sig/quo/eager_query.rbs
85
- - sig/quo/enumerator.rbs
86
85
  - sig/quo/merged_query.rbs
87
86
  - sig/quo/query.rbs
88
87
  - sig/quo/query_composer.rbs
88
+ - sig/quo/results.rbs
89
89
  - sig/quo/utilities/callstack.rbs
90
90
  - sig/quo/utilities/compose.rbs
91
91
  - sig/quo/utilities/sanitize.rbs