shale-builder 0.2.1 → 0.2.2

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