tapioca 0.4.6 → 0.4.7

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: dd111409d415b9a17a11cd2d1a5d6d60fdab411934fc5bd1ade87b4bee9e27a3
4
- data.tar.gz: 6cc495adc75090725de7f8cb873672e804452c16931d5a995c543827ab6400cb
3
+ metadata.gz: a2ebe6488f101318e156ba0025de299975fce0d348f05ae9cd7bd38cf77ffe28
4
+ data.tar.gz: 3e22db95ccff12b1915f7f783e5669400cb5381078c49f370565da655459d62b
5
5
  SHA512:
6
- metadata.gz: 993e27b7960ce9830d58098a3a965214342821d87c3753e3b6a72ab8d9d33e86c1a5f454141cd2f19b73565ecfe9f3454c7c7d45825256c27c02ccd2d2396780
7
- data.tar.gz: bfeb2377b5a5b059ce4897cbe1b7e39cef0657d799479ffd75c646897236928cd7fe317fd9cf9a49597b8dd28fc7657e90d9386eb82927cc9cdbb806203c4538
6
+ metadata.gz: cb2d0ac2308cd8c44159a737e92090965dfa0ec616aaf83a6ad4b3cea69348bb12d61ecdce7f527db78d75c129fec19e765845ea475c375a74efcc240e1d2f25
7
+ data.tar.gz: d4c98b1c97946544c1032f13e920e77a1a62d61ad00e4f6522bef129690b68d2db07d7c08af74f9f7a245c3a771299534fa4a1cf2d464deaf03821e9180b73f6
data/Gemfile CHANGED
@@ -34,3 +34,5 @@ group(:development, :test) do
34
34
  gem("activeresource", "~> 5.1", require: false)
35
35
  gem("google-protobuf", "~>3.12.0", require: false)
36
36
  end
37
+
38
+ gem "rubocop-sorbet", ">= 0.4.1"
@@ -1,5 +1,5 @@
1
- # frozen_string_literal: true
2
1
  # typed: true
2
+ # frozen_string_literal: true
3
3
 
4
4
  require 'thor'
5
5
 
@@ -34,6 +34,8 @@ module Tapioca
34
34
  banner: "gem:level [gem:level ...]",
35
35
  desc: "Overrides for typed sigils for generated gem RBIs"
36
36
 
37
+ map T.unsafe(%w[--version -v] => :__print_version)
38
+
37
39
  desc "init", "initializes folder structure"
38
40
  def init
39
41
  create_file(Config::SORBET_CONFIG, skip: true) do
@@ -92,6 +94,11 @@ module Tapioca
92
94
  end
93
95
  end
94
96
 
97
+ desc "--version, -v", "show version"
98
+ def __print_version
99
+ puts "Tapioca v#{Tapioca::VERSION}"
100
+ end
101
+
95
102
  no_commands do
96
103
  def self.exit_on_failure?
97
104
  true
@@ -45,10 +45,10 @@ module Tapioca
45
45
  # sig { params(value: T.nilable(::User)).void }
46
46
  # def author=(value); end
47
47
  #
48
- # sig { params(args: T.untyped, blk: T.untyped).returns(T.nilable(::User)) }
48
+ # sig { params(args: T.untyped, blk: T.untyped).returns(::User) }
49
49
  # def build_author(*args, &blk); end
50
50
  #
51
- # sig { params(args: T.untyped, blk: T.untyped).returns(T.nilable(::Category)) }
51
+ # sig { params(args: T.untyped, blk: T.untyped).returns(::Category) }
52
52
  # def build_category(*args, &blk); end
53
53
  #
54
54
  # sig { returns(T.nilable(::Category)) }
@@ -69,16 +69,16 @@ module Tapioca
69
69
  # sig { params(value: T::Enumerable[::Comment]).void }
70
70
  # def comments=(value); end
71
71
  #
72
- # sig { params(args: T.untyped, blk: T.untyped).returns(T.nilable(::User)) }
72
+ # sig { params(args: T.untyped, blk: T.untyped).returns(::User) }
73
73
  # def create_author(*args, &blk); end
74
74
  #
75
- # sig { params(args: T.untyped, blk: T.untyped).returns(T.nilable(::User)) }
75
+ # sig { params(args: T.untyped, blk: T.untyped).returns(::User) }
76
76
  # def create_author!(*args, &blk); end
77
77
  #
78
- # sig { params(args: T.untyped, blk: T.untyped).returns(T.nilable(::Category)) }
78
+ # sig { params(args: T.untyped, blk: T.untyped).returns(::Category) }
79
79
  # def create_category(*args, &blk); end
80
80
  #
81
- # sig { params(args: T.untyped, blk: T.untyped).returns(T.nilable(::Category)) }
81
+ # sig { params(args: T.untyped, blk: T.untyped).returns(::Category) }
82
82
  # def create_category!(*args, &blk); end
83
83
  #
84
84
  # sig { returns(T.nilable(::User)) }
@@ -160,7 +160,7 @@ module Tapioca
160
160
  Parlour::RbiGenerator::Parameter.new("*args", type: "T.untyped"),
161
161
  Parlour::RbiGenerator::Parameter.new("&blk", type: "T.untyped"),
162
162
  ],
163
- return_type: association_type
163
+ return_type: association_class
164
164
  )
165
165
  create_method(
166
166
  klass,
@@ -169,7 +169,7 @@ module Tapioca
169
169
  Parlour::RbiGenerator::Parameter.new("*args", type: "T.untyped"),
170
170
  Parlour::RbiGenerator::Parameter.new("&blk", type: "T.untyped"),
171
171
  ],
172
- return_type: association_type
172
+ return_type: association_class
173
173
  )
174
174
  create_method(
175
175
  klass,
@@ -178,7 +178,7 @@ module Tapioca
178
178
  Parlour::RbiGenerator::Parameter.new("*args", type: "T.untyped"),
179
179
  Parlour::RbiGenerator::Parameter.new("&blk", type: "T.untyped"),
180
180
  ],
181
- return_type: association_type
181
+ return_type: association_class
182
182
  )
183
183
  end
184
184
  end
@@ -1,5 +1,5 @@
1
+ # typed: strict
1
2
  # frozen_string_literal: true
2
- # typed: true
3
3
 
4
4
  require "tapioca/compilers/dsl/base"
5
5
 
@@ -30,7 +30,7 @@ module Tapioca
30
30
  T::Enumerable[Dsl::Base]
31
31
  )
32
32
  @requested_constants = requested_constants
33
- @error_handler = error_handler || $stderr.method(:puts)
33
+ @error_handler = T.let(error_handler || $stderr.method(:puts), T.proc.params(error: String).void)
34
34
  end
35
35
 
36
36
  sig { params(blk: T.proc.params(constant: Module, rbi: String).void).void }
@@ -54,9 +54,9 @@ module Tapioca
54
54
 
55
55
  private
56
56
 
57
- sig { params(requested_generators: T::Array[String]).returns(Proc) }
57
+ sig { params(requested_generators: T::Array[String]).returns(T.proc.params(klass: Class).returns(T::Boolean)) }
58
58
  def generator_filter(requested_generators)
59
- return proc { true } if requested_generators.empty?
59
+ return ->(_klass) { true } if requested_generators.empty?
60
60
 
61
61
  generators = requested_generators.map(&:downcase)
62
62
 
@@ -70,7 +70,7 @@ module Tapioca
70
70
  def gather_generators(requested_generators)
71
71
  generator_filter = generator_filter(requested_generators)
72
72
 
73
- Dsl::Base.descendants.select(&generator_filter).map(&:new)
73
+ T.cast(Dsl::Base.descendants.select(&generator_filter).map(&:new), T::Enumerable[Dsl::Base])
74
74
  end
75
75
 
76
76
  sig { params(requested_constants: T::Array[Module]).returns(T::Set[Module]) }
@@ -1,5 +1,5 @@
1
- # frozen_string_literal: true
2
1
  # typed: strict
2
+ # frozen_string_literal: true
3
3
 
4
4
  require 'spoom'
5
5
 
@@ -1,5 +1,5 @@
1
- # frozen_string_literal: true
2
1
  # typed: true
2
+ # frozen_string_literal: true
3
3
 
4
4
  require 'pathname'
5
5
  require 'shellwords'
@@ -1,5 +1,5 @@
1
- # frozen_string_literal: true
2
1
  # typed: true
2
+ # frozen_string_literal: true
3
3
 
4
4
  require 'pathname'
5
5
 
@@ -1,5 +1,5 @@
1
- # frozen_string_literal: true
2
1
  # typed: true
2
+ # frozen_string_literal: true
3
3
 
4
4
  require 'json'
5
5
  require 'tempfile'
@@ -1,5 +1,5 @@
1
- # frozen_string_literal: true
2
1
  # typed: strong
2
+ # frozen_string_literal: true
3
3
 
4
4
  module Tapioca
5
5
  module Compilers
@@ -1,5 +1,5 @@
1
- # frozen_string_literal: true
2
1
  # typed: strong
2
+ # frozen_string_literal: true
3
3
 
4
4
  module Tapioca
5
5
  module Compilers
@@ -1,7 +1,9 @@
1
- # typed: false
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  class Class
5
+ extend T::Sig
6
+
5
7
  # Returns an array with all classes that are < than its receiver.
6
8
  #
7
9
  # class C; end
@@ -15,9 +17,12 @@ class Class
15
17
  #
16
18
  # class D < C; end
17
19
  # C.descendants # => [B, A, D]
20
+ sig { returns(T::Array[Class]) }
18
21
  def descendants
19
- ObjectSpace.each_object(singleton_class).reject do |k|
20
- k.singleton_class? || k == self
22
+ result = ObjectSpace.each_object(singleton_class).reject do |k|
23
+ T.cast(k, Module).singleton_class? || k == self
21
24
  end
25
+
26
+ T.cast(result, T::Array[Class])
22
27
  end
23
28
  end
@@ -1,5 +1,5 @@
1
- # frozen_string_literal: true
2
1
  # typed: strict
2
+ # frozen_string_literal: true
3
3
 
4
4
  require "bundler"
5
5
 
@@ -1,5 +1,5 @@
1
- # frozen_string_literal: true
2
1
  # typed: strict
2
+ # frozen_string_literal: true
3
3
 
4
4
  require 'pathname'
5
5
  require 'thor'
@@ -1,5 +1,5 @@
1
- # frozen_string_literal: true
2
1
  # typed: strict
2
+ # frozen_string_literal: true
3
3
 
4
4
  module Tapioca
5
5
  class Loader
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Tapioca
5
- VERSION = "0.4.6"
5
+ VERSION = "0.4.7"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tapioca
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 0.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ufuk Kayserilioglu
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2020-09-15 00:00:00.000000000 Z
14
+ date: 2020-10-07 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: pry