shale-builder 0.2.0 → 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: a1194476cdc1f12fedaee4208834a474caf3397d0b4cab907f20648d5e812394
4
- data.tar.gz: ce1363ceced738925bbe89abc807daa9e7cc54099244181083e0c35364d5c76d
3
+ metadata.gz: fcf37277027a3ba39d0df88fe7e7b1b974b02c71b243e33b602fafcd2559198b
4
+ data.tar.gz: 79edd9b585d523eb892befd7a0afa7ebb0721a7b614dc24b5d6849119226e8a9
5
5
  SHA512:
6
- metadata.gz: 8fb3b29c2765d93b8cbcdd35ec04085d50bbc918bb6c5e2bec62ce80cfeb75d2af3a815956b68d31b882e7c46db8929f48039cb8a0880b4b50766581de0a811d
7
- data.tar.gz: 3e2c7f826e65b70ac6c2efca789b836ac476594bee5e93d265c56a88f9ec2921fdff7a5352baf33a2ca1a887efdb824d24b2335481fb9fb5bda64547e69c7b05
6
+ metadata.gz: 182b5b46d26fa1d9d0a988d3d74207769da752781afa1b3583bc25abc8ae7b3de52d9b921549ee171ed8f666ea45a0d897085919d2c21b40d24c39128e30f00b
7
+ data.tar.gz: 32ada87010a6307cc1e3c7749e06624c77594cb10a280d1a4b9c8d05e2799ee291099c62e71817feabfb8de38ac8bdc025791b769aa8b6e1a67aa753c20f55f6
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## [0.2.1] - 2024-07-16
2
+
3
+ - Add additional sorbet type documentation
4
+
1
5
  ## [0.2.0] - 2024-06-11
2
6
 
3
7
  - Add support for `return_type` and `setter_type` in custom primitive shale types
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- shale-builder (0.2.0)
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.0'
5
+ VERSION = '0.2.2'
6
6
  end
7
7
  end
@@ -0,0 +1,22 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class Shale::Mapper
5
+ sig { params(block: T.proc.bind(Shale::Mapping::Dict).void).void }
6
+ def json(&block); end
7
+
8
+ sig { params(block: T.proc.bind(Shale::Mapping::Dict).void).void }
9
+ def hsh(&block); end
10
+
11
+ sig { params(block: T.proc.bind(Shale::Mapping::Dict).void).void }
12
+ def yaml(&block); end
13
+
14
+ sig { params(block: T.proc.bind(Shale::Mapping::Dict).void).void }
15
+ def toml(&block); end
16
+
17
+ sig { params(block: T.proc.bind(Shale::Mapping::Dict).void).void }
18
+ def csv(&block); end
19
+
20
+ sig { params(block: T.proc.bind(Shale::Mapping::Xml).void).void }
21
+ def xml(&block); end
22
+ 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.0
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-06-11 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
@@ -71,8 +71,8 @@ files:
71
71
  - lib/shale/attribute.rb
72
72
  - lib/shale/builder.rb
73
73
  - lib/shale/builder/version.rb
74
+ - lib/shale/mapper.rbi
74
75
  - lib/tapioca/dsl/compilers/shale.rb
75
- - sig/shale/builder.rbs
76
76
  homepage: https://github.com/Verseth/ruby-shale-builder
77
77
  licenses:
78
78
  - MIT
@@ -1,6 +0,0 @@
1
- module Shale
2
- module Builder
3
- VERSION: String
4
- # See the writing guide of rbs: https://github.com/ruby/rbs#guides
5
- end
6
- end