shale-builder 0.2.0 → 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: 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