Skip to content

Commit 2dcdda3

Browse files
authored
Merge pull request #2044 from NuzzContribs/marknuzz/relations-compiler-group-size
Add hash return type for relation groupchain size
2 parents d13d612 + 35a13c0 commit 2dcdda3

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

lib/tapioca/dsl/compilers/active_record_relations.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ def create_group_chain_methods(klass)
372372
return_type: "T.self_type",
373373
)
374374

375-
CALCULATION_METHODS.each do |method_name|
375+
(CALCULATION_METHODS + [:size]).each do |method_name|
376376
case method_name
377377
when :average, :maximum, :minimum
378378
klass.create_method(
@@ -400,9 +400,9 @@ def create_group_chain_methods(klass)
400400
],
401401
return_type: "T::Hash[T.untyped, Integer]",
402402
)
403-
when :sum
403+
when :sum, :size
404404
klass.create_method(
405-
"sum",
405+
method_name.to_s,
406406
parameters: [
407407
create_opt_param("column_name", type: "T.nilable(T.any(String, Symbol))", default: "nil"),
408408
create_block_param("block", type: "T.nilable(T.proc.params(record: T.untyped).returns(T.untyped))"),

spec/tapioca/dsl/compilers/active_record_relations_spec.rb

+12
Original file line numberDiff line numberDiff line change
@@ -658,6 +658,9 @@ def maximum(column_name); end
658658
sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) }
659659
def minimum(column_name); end
660660
661+
sig { params(column_name: T.nilable(T.any(String, Symbol)), block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped))).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) }
662+
def size(column_name = nil, &block); end
663+
661664
sig { params(column_name: T.nilable(T.any(String, Symbol)), block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped))).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) }
662665
def sum(column_name = nil, &block); end
663666
end
@@ -760,6 +763,9 @@ def maximum(column_name); end
760763
sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) }
761764
def minimum(column_name); end
762765
766+
sig { params(column_name: T.nilable(T.any(String, Symbol)), block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped))).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) }
767+
def size(column_name = nil, &block); end
768+
763769
sig { params(column_name: T.nilable(T.any(String, Symbol)), block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped))).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) }
764770
def sum(column_name = nil, &block); end
765771
end
@@ -1376,6 +1382,9 @@ def maximum(column_name); end
13761382
sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) }
13771383
def minimum(column_name); end
13781384
1385+
sig { params(column_name: T.nilable(T.any(String, Symbol)), block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped))).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) }
1386+
def size(column_name = nil, &block); end
1387+
13791388
sig { params(column_name: T.nilable(T.any(String, Symbol)), block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped))).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) }
13801389
def sum(column_name = nil, &block); end
13811390
end
@@ -1478,6 +1487,9 @@ def maximum(column_name); end
14781487
sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) }
14791488
def minimum(column_name); end
14801489
1490+
sig { params(column_name: T.nilable(T.any(String, Symbol)), block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped))).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) }
1491+
def size(column_name = nil, &block); end
1492+
14811493
sig { params(column_name: T.nilable(T.any(String, Symbol)), block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped))).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) }
14821494
def sum(column_name = nil, &block); end
14831495
end

0 commit comments

Comments
 (0)