curdle 1.0.0 → 1.2.1

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: '03619ba9f0f656e0ecb014f9e363d30489dcdf5e0ba644ca6cfcd97d07ce117f'
4
- data.tar.gz: f77085d060179a1d04ab0c1c7c7d33452d999dc076eba557a782ab16955ba339
3
+ metadata.gz: b27f36e9bd65cf14cfc619c5e7d92ac15b107a0900f3fc4275cffce065c04251
4
+ data.tar.gz: 953a301a0ddd9dee2d219824d7c6eaafb2635f6009c87b9997ffb3602d8341e7
5
5
  SHA512:
6
- metadata.gz: 822585de86c1001268f0124c8b9fb88f8b6fc7b1fcbc73ed36196fef1bdc3fe7caa1cd1ce2c5d6bc4767d3e1f47a030c55bd9e153e593891b735ce08c101252a
7
- data.tar.gz: e5f2be2f8e08e34a495965df1359f6fa25a5b9bd5c5c53866192fc6a65218bcc7a11fc1c9846cdce876c3b035f1ce6c3db6ec2485b2f6426aeca5b5186b80a19
6
+ metadata.gz: fffcaf7485ba575617da03bbf67d2decde7707527c24a894121dc34557891ba300d859cc3acfb1f7e22d1a78ee8d1e90ff7c88ab86ab2f3d1b60b7d5d33e966a
7
+ data.tar.gz: 43181b73fe13324e8f686c7ef9d970047f24096f5244059b13dbdfc4b7255922e3fca4325ecac70430dc5c80533bfde420e2389088c465721ba5a60a6be57207
data/CHANGELOG.md ADDED
@@ -0,0 +1,11 @@
1
+ ## 1.2.1
2
+ * Fix bug caused by older versions of `gem build` ignoring the `-C` flag.
3
+
4
+ ## 1.2.0
5
+ * Add support for block-based `type_member` calls.
6
+
7
+ ## 1.1.0
8
+ * Add support for removing `T::Sig::WithoutRuntime.sig` calls.
9
+
10
+ ## 1.0.0
11
+ * Birthday!
@@ -49,7 +49,9 @@ module Curdle
49
49
  def remove_sig(block_node)
50
50
  send_node, = *block_node
51
51
  receiver, name, *args = *send_node
52
- return false unless receiver.nil? && name == :sig && args.empty?
52
+
53
+ return false unless receiver.nil? || receiver.location.expression.is?('T::Sig::WithoutRuntime')
54
+ return false unless name == :sig && args.empty?
53
55
 
54
56
  comment_out_node(block_node)
55
57
 
@@ -140,12 +142,22 @@ module Curdle
140
142
 
141
143
  def remove_type_member(casgn_node)
142
144
  _, _const_name, value_node = *casgn_node
143
- return false unless value_node.type == :send
144
145
 
145
- receiver, name = *value_node
146
- return false unless receiver.nil? && name == :type_member
146
+ case value_node.type
147
+ when :send
148
+ receiver, name = *value_node
149
+ return false unless receiver.nil? && name == :type_member
147
150
 
148
- comment_out_node(casgn_node)
151
+ comment_out_node(casgn_node)
152
+ when :block
153
+ send_node, = *value_node
154
+ receiver, name, _ = *send_node
155
+ return false unless receiver.nil? && name == :type_member
156
+
157
+ comment_out_node(casgn_node)
158
+ else
159
+ return false
160
+ end
149
161
 
150
162
  true
151
163
  end
data/lib/curdle/tasks.rb CHANGED
@@ -25,11 +25,17 @@ module Curdle
25
25
  end
26
26
 
27
27
  system("gem build --silent -C #{build_dir}")
28
- artifact = Dir.glob(File.join(build_dir, "#{spec.name}*.gem")).first
28
+ artifact = Dir.glob(File.join(build_dir, "#{spec.name}-#{spec.version}.gem")).first
29
+
30
+ # some versions of Rubygems simply ignore the -C flag and build the gem in
31
+ # the current directory instead
32
+ unless artifact
33
+ artifact = Dir.glob("#{spec.name}-#{spec.version}.gem").first
34
+ end
29
35
 
30
36
  FileUtils.mkdir_p('pkg')
31
37
  artifact_dest = File.join('pkg', File.basename(artifact))
32
- FileUtils.cp(artifact, artifact_dest)
38
+ FileUtils.mv(artifact, artifact_dest)
33
39
 
34
40
  puts "#{spec.name} #{spec.version} built to #{artifact_dest}."
35
41
  end
@@ -1,3 +1,3 @@
1
1
  module Curdle
2
- VERSION = '1.0.0'
2
+ VERSION = '1.2.1'
3
3
  end
data/spec/curdle_spec.rb CHANGED
@@ -77,6 +77,26 @@ describe Curdle do
77
77
  END2
78
78
  end
79
79
 
80
+ it 'removes T::Sig::WithoutRuntime sigs' do
81
+ verify(<<~END1, <<~END2)
82
+ class Foo
83
+ T::Sig::WithoutRuntime.sig {
84
+ params(bar: String, baz: Integer).returns(String)
85
+ }
86
+ def foo(bar, baz)
87
+ end
88
+ end
89
+ END1
90
+ class Foo
91
+ # T::Sig::WithoutRuntime.sig {
92
+ # params(bar: String, baz: Integer).returns(String)
93
+ # }
94
+ def foo(bar, baz)
95
+ end
96
+ end
97
+ END2
98
+ end
99
+
80
100
  it 'removes T.let assigned to an instance variable' do
81
101
  verify(<<~END1, <<~END2)
82
102
  class Foo
@@ -137,6 +157,22 @@ describe Curdle do
137
157
  END2
138
158
  end
139
159
 
160
+ it 'removes block-based type_members' do
161
+ verify(<<~END1, <<~END2)
162
+ class Foo
163
+ extend T::Generic
164
+
165
+ Elem = type_member { { fixed: Bar } }
166
+ end
167
+ END1
168
+ class Foo
169
+ # extend T::Generic
170
+
171
+ # Elem = type_member { { fixed: Bar } }
172
+ end
173
+ END2
174
+ end
175
+
140
176
  it 'removes type_aliases' do
141
177
  verify(<<~END1, <<~END2)
142
178
  class Foo
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: curdle
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cameron Dutro
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-18 00:00:00.000000000 Z
11
+ date: 2022-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -46,6 +46,7 @@ executables:
46
46
  extensions: []
47
47
  extra_rdoc_files: []
48
48
  files:
49
+ - CHANGELOG.md
49
50
  - Gemfile
50
51
  - LICENSE
51
52
  - Rakefile