shale-builder 0.2.1 → 0.2.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 20d60a5e93cde01d0c61afd4c64134f950c01c8a535332fa5927321c24a40b7c
4
- data.tar.gz: 70515b9f6b1c06acb11c68e2e088a13f8191c7c356ed1016ce1363ac646c5fa5
3
+ metadata.gz: fcf37277027a3ba39d0df88fe7e7b1b974b02c71b243e33b602fafcd2559198b
4
+ data.tar.gz: 79edd9b585d523eb892befd7a0afa7ebb0721a7b614dc24b5d6849119226e8a9
5
5
  SHA512:
6
- metadata.gz: 47a9851fd6ee46bbfb3d65e19965c6599e0def339cb75549d718c3bcbb113829b1d01511e7ed3825f80c9c873670efdb3f3405c2c70cf7d8a6976ba056476520
7
- data.tar.gz: fac4f56502bfa4f6e6d91f108c9ef3787d8f9c72e2670a9af800035ad648533d3d7b30567e260029b3776116fbfd1810f0f3024ca9f9c3bed98b691dedf15746
6
+ metadata.gz: 182b5b46d26fa1d9d0a988d3d74207769da752781afa1b3583bc25abc8ae7b3de52d9b921549ee171ed8f666ea45a0d897085919d2c21b40d24c39128e30f00b
7
+ data.tar.gz: 32ada87010a6307cc1e3c7749e06624c77594cb10a280d1a4b9c8d05e2799ee291099c62e71817feabfb8de38ac8bdc025791b769aa8b6e1a67aa753c20f55f6
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- shale-builder (0.2.1)
4
+ shale-builder (0.2.2)
5
5
  booleans (>= 0.1)
6
6
  shale (< 2.0)
7
7
  sorbet-runtime (> 0.5)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Shale
4
4
  module Builder
5
- VERSION = '0.2.1'
5
+ VERSION = '0.2.2'
6
6
  end
7
7
  end
@@ -48,23 +48,7 @@ module Tapioca
48
48
  end
49
49
 
50
50
  if has_shale_builder && attribute.type < ::Shale::Mapper
51
- sigs = T.let([], T::Array[RBI::Sig])
52
- # simple getter
53
- sigs << klass.create_sig(
54
- parameters: { block: 'NilClass' },
55
- return_type: type,
56
- )
57
- # getter with block
58
- sigs << klass.create_sig(
59
- parameters: { block: "T.proc.params(arg0: #{non_nilable_type}).void" },
60
- return_type: non_nilable_type
61
- )
62
- mod.create_method_with_sigs(
63
- attribute.name,
64
- sigs: sigs,
65
- comments: comments,
66
- parameters: [RBI::BlockParam.new('block')],
67
- )
51
+ generate_mapper_getter(mod, attribute.name, type, non_nilable_type, comments)
68
52
  else
69
53
  mod.create_method(attribute.name, return_type: type, comments: comments)
70
54
  end
@@ -87,6 +71,53 @@ module Tapioca
87
71
 
88
72
  end
89
73
 
74
+ sig do
75
+ params(
76
+ mod: RBI::Scope,
77
+ method_name: String,
78
+ type: String,
79
+ non_nilable_type: String,
80
+ comments: T::Array[RBI::Comment],
81
+ ).void
82
+ end
83
+ def generate_mapper_getter(mod, method_name, type, non_nilable_type, comments)
84
+ if mod.respond_to?(:create_sig)
85
+ # for tapioca < 0.16.0
86
+ sigs = T.let([], T::Array[RBI::Sig])
87
+ # simple getter
88
+ sigs << mod.create_sig(
89
+ parameters: { block: 'NilClass' },
90
+ return_type: type,
91
+ )
92
+ # getter with block
93
+ sigs << mod.create_sig(
94
+ parameters: { block: "T.proc.params(arg0: #{non_nilable_type}).void" },
95
+ return_type: non_nilable_type
96
+ )
97
+ mod.create_method_with_sigs(
98
+ method_name,
99
+ sigs: sigs,
100
+ comments: comments,
101
+ parameters: [RBI::BlockParam.new('block')],
102
+ )
103
+ else
104
+ # for tapioca >= 0.16.0
105
+ mod.create_method(method_name, comments: comments) do |method|
106
+ method.add_block_param('block')
107
+
108
+ method.add_sig do |sig|
109
+ sig.add_param('block', 'NilClass')
110
+ sig.return_type = type
111
+ end
112
+
113
+ method.add_sig do |sig|
114
+ sig.add_param('block', "T.proc.params(arg0: #{non_nilable_type}).void")
115
+ sig.return_type = non_nilable_type
116
+ end
117
+ end
118
+ end
119
+ end
120
+
90
121
  private
91
122
 
92
123
  sig { params(klass: Class).returns(T.nilable(T::Boolean)) }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shale-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mateusz Drewniak
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-07-16 00:00:00.000000000 Z
11
+ date: 2024-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: booleans