sorbet-runtime-stub 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/README.md +57 -0
  4. data/Rakefile +2 -0
  5. data/lib/sorbet-runtime-stub.rb +140 -0
  6. metadata +48 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 28842eac1f246fb87f48035e1b8744a39ac2b617ae9ce0368343fe1372bad270
4
+ data.tar.gz: 24d7ac572b3486b5c0b5972318dd2d0dc9edde21928be92d87ee1a7fa3ac93c9
5
+ SHA512:
6
+ metadata.gz: eb1f59083dbc03b89c703d1f7c50bb34c2bfebd61f274e9a03405cb8d69af9e47fc02be89285300f799b9787aee25d5d3907c3e287099a1e18ff643e59114b4a
7
+ data.tar.gz: a8ef5a270bb6a77187b177bb5f361b9b57ce68a1d874346c61158ea89b3c5b3532a8e321c1480ae08a0bdf200b9af7569a9693a302df1e4f2767cffdf48b086b
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ source("https://rubygems.org")
4
+
5
+ gemspec
6
+
7
+ group(:deployment, :development) do
8
+ gem("rake", "~> 12.3")
9
+ end
data/README.md ADDED
@@ -0,0 +1,57 @@
1
+ # sorbet-runtime-stub
2
+
3
+ This gem provides stub definitions for all the `T` namespace that Sorbet type signatures need for runtime. This is appropriate for people who want nothing to do with `sorbet-runtime` when their code is being run.
4
+
5
+ **Disclaimer**: This gem is being used in our applications but there are some still features missing and it may have some sharp edges.
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'sorbet-runtime-stub'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle install
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install sorbet-runtime-stub
22
+
23
+ ## Usage
24
+
25
+ Your code should decide to switch between requiring `sorbet-runtime` or `sorbet-runtime-stub`.
26
+
27
+ For example, if you don't want to load `sorbet-runtime` in a production environment in a Rails app, you can use:
28
+ ```ruby
29
+ if ENV['RAILS_ENV'] == 'production'
30
+ require 'sorbet-runtime-stub'
31
+ else
32
+ require 'sorbet-runtime'
33
+ end
34
+ ```
35
+
36
+ ## Missing features
37
+
38
+ Some feature from sorbet-runtime like `T::Enum` and `T::Struct` as still not supported.
39
+
40
+ ## Development
41
+
42
+ After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
43
+
44
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
45
+
46
+ ## Contributing
47
+
48
+ Bug reports and pull requests are welcome on GitHub at https://github.com/Shopify/sorbet-runtime-stub. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/Shopify/sorbet-runtime-stub/blob/master/CODE_OF_CONDUCT.md).
49
+
50
+
51
+ ## License
52
+
53
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
54
+
55
+ ## Code of Conduct
56
+
57
+ Everyone interacting in the Sorbet::Runtime::Stub project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/Shopify/sorbet-runtime-stub/blob/master/CODE_OF_CONDUCT.md).
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+ task :default => :spec
@@ -0,0 +1,140 @@
1
+ # typed: ignore
2
+
3
+ module T
4
+ class << self
5
+ def absurd(value); end
6
+ def all(type_a, type_b, *types); end
7
+ def any(type_a, type_b, *types); end
8
+ def attached_class; end
9
+ def class_of(klass); end
10
+ def enum(values); end
11
+ def nilable(type); end
12
+ def noreturn; end
13
+ def self_type; end
14
+ def type_alias(type=nil, &_blk); end
15
+ def type_parameter(name); end
16
+ def untyped; end
17
+
18
+ def assert_type!(value, _type, _checked: true)
19
+ value
20
+ end
21
+
22
+ def cast(value, _type, _checked: true)
23
+ value
24
+ end
25
+
26
+ def let(value, _type, _checked: true)
27
+ value
28
+ end
29
+
30
+ def must(arg, _msg = nil)
31
+ arg
32
+ end
33
+
34
+ def proc
35
+ T::Proc.new
36
+ end
37
+
38
+ def reveal_type(value)
39
+ value
40
+ end
41
+
42
+ def unsafe(value)
43
+ value
44
+ end
45
+ end
46
+
47
+ module Sig
48
+ def sig(&blk); end
49
+ end
50
+
51
+ module Helpers
52
+ def abstract!; end
53
+ def interface!; end
54
+ def final!; end
55
+ def sealed!; end
56
+ def mixes_in_class_methods(mod); end
57
+ end
58
+
59
+ module Generic
60
+ include T::Helpers
61
+
62
+ def type_parameters(*params); end
63
+ def type_member(variance=:invariant, fixed: nil, lower: nil, upper: BasicObject); end
64
+ def type_template(variance=:invariant, fixed: nil, lower: nil, upper: BasicObject); end
65
+
66
+ def [](*types)
67
+ self
68
+ end
69
+ end
70
+
71
+ module Array
72
+ def self.[](type); end
73
+ end
74
+
75
+ Boolean = Object.new.freeze
76
+
77
+ module Configuration
78
+ def self.call_validation_error_handler(signature, opts); end
79
+ def self.call_validation_error_handler=(value); end
80
+ def self.default_checked_level=(default_checked_level); end
81
+ def self.enable_checking_for_sigs_marked_checked_tests; end
82
+ def self.enable_final_checks_on_hooks; end
83
+ def self.enable_legacy_t_enum_migration_mode; end
84
+ def self.reset_final_checks_on_hooks; end
85
+ def self.hard_assert_handler(str, extra); end
86
+ def self.hard_assert_handler=(value); end
87
+ def self.inline_type_error_handler(error); end
88
+ def self.inline_type_error_handler=(value); end
89
+ def self.log_info_handler(str, extra); end
90
+ def self.log_info_handler=(value); end
91
+ def self.scalar_types; end
92
+ def self.scalar_types=(values); end
93
+ def self.sealed_violation_whitelist; end
94
+ def self.sealed_violation_whitelist=(sealed_violation_whitelist); end
95
+ def self.sig_builder_error_handler(error, location); end
96
+ def self.sig_builder_error_handler=(value); end
97
+ def self.sig_validation_error_handler(error, opts); end
98
+ def self.sig_validation_error_handler=(value); end
99
+ def self.soft_assert_handler(str, extra); end
100
+ def self.soft_assert_handler=(value); end
101
+ end
102
+
103
+ module Enumerable
104
+ def self.[](type); end
105
+ end
106
+
107
+ module Enumerator
108
+ def self.[](type); end
109
+ end
110
+
111
+ module Hash
112
+ def self.[](keys, values); end
113
+ end
114
+
115
+ class Proc
116
+ def bind(*_)
117
+ self
118
+ end
119
+
120
+ def params(*_param)
121
+ self
122
+ end
123
+
124
+ def void
125
+ self
126
+ end
127
+
128
+ def returns(_type)
129
+ self
130
+ end
131
+ end
132
+
133
+ module Range
134
+ def self.[](type); end
135
+ end
136
+
137
+ module Set
138
+ def self.[](type); end
139
+ end
140
+ end
metadata ADDED
@@ -0,0 +1,48 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sorbet-runtime-stub
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.4
5
+ platform: ruby
6
+ authors:
7
+ - Shopify
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2020-05-05 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description:
14
+ email:
15
+ - ruby@shopify.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - Gemfile
21
+ - README.md
22
+ - Rakefile
23
+ - lib/sorbet-runtime-stub.rb
24
+ homepage: https://github.com/Shopify/sorbet-runtime-stub
25
+ licenses:
26
+ - MIT
27
+ metadata:
28
+ allowed_push_host: https://rubygems.org
29
+ post_install_message:
30
+ rdoc_options: []
31
+ require_paths:
32
+ - lib
33
+ required_ruby_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ required_rubygems_version: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ requirements: []
44
+ rubygems_version: 3.0.3
45
+ signing_key:
46
+ specification_version: 4
47
+ summary: A stub definition provider for Sorbet runtime dependencies
48
+ test_files: []