diff --git a/Gemfile b/Gemfile index cd53c9723..86e8767a5 100644 --- a/Gemfile +++ b/Gemfile @@ -8,6 +8,7 @@ gem 'ancestry', require: false gem 'railties', require: false gem 'sorbet-rails', require: false gem 'sorbet-static-and-runtime', require: false +gem 'zeitwerk', require: false group :development do gem 'appraisal', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 97212b7b8..b9dbb64d2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -304,6 +304,7 @@ DEPENDENCIES timecop unparser yard + zeitwerk BUNDLED WITH 2.2.30 diff --git a/README.md b/README.md index 05afe3fc1..d05a3066d 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ To use it, add it to your Gemfile: ### Rails >= 3 ```ruby -gem 'acts-as-messageable' +gem 'acts-as-messageable', require: 'acts_as_messageable' ``` ### Rails 2 diff --git a/VERSION b/VERSION index e6d5cb833..359a5b952 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.2 \ No newline at end of file +2.0.0 \ No newline at end of file diff --git a/acts-as-messageable.gemspec b/acts-as-messageable.gemspec index 5fb8fef17..19faa3991 100644 --- a/acts-as-messageable.gemspec +++ b/acts-as-messageable.gemspec @@ -3,11 +3,11 @@ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec' # frozen_string_literal: true -# stub: acts-as-messageable 1.0.2 ruby lib +# stub: acts-as-messageable 2.0.0 ruby lib Gem::Specification.new do |s| s.name = 'acts-as-messageable' - s.version = '1.0.2' + s.version = '2.0.0' s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version= s.metadata = { 'rubygems_mfa_required' => 'true' } if s.respond_to? :metadata= @@ -16,12 +16,14 @@ Gem::Specification.new do |s| s.email = 'piotr.nielacny@gmail.com' s.executables = ['tapioca'] s.extra_rdoc_files = [ + 'LICENSE', 'README.md' ] s.files = [ '.coveralls.yml', '.dockerignore', '.github/dependabot.yml', + '.github/workflows/rbi.yml', '.github/workflows/test.yml', '.rspec', '.rubocop.yml', @@ -31,7 +33,7 @@ Gem::Specification.new do |s| 'Dockerfile', 'Gemfile', 'Gemfile.lock', - 'MIT-LICENSE', + 'LICENSE', 'README.md', 'Rakefile', 'VERSION', @@ -44,7 +46,6 @@ Gem::Specification.new do |s| 'gemfiles/rails_6.0.gemfile', 'gemfiles/rails_7.0.gemfile', 'gemfiles/rails_master.gemfile', - 'lib/acts-as-messageable.rb', 'lib/acts_as_messageable.rb', 'lib/acts_as_messageable/message.rb', 'lib/acts_as_messageable/model.rb', @@ -60,13 +61,16 @@ Gem::Specification.new do |s| 'lib/generators/acts_as_messageable/migration/templates/migration_opened_as_datetime.rb', 'lib/generators/acts_as_messageable/migration/templates/migration_permanent.rb', 'sorbet/config', + 'sorbet/rbi/annotations/.gitattributes', 'sorbet/rbi/annotations/actionpack.rbi', 'sorbet/rbi/annotations/actionview.rbi', + 'sorbet/rbi/annotations/activemodel.rbi', 'sorbet/rbi/annotations/activerecord.rbi', 'sorbet/rbi/annotations/activesupport.rbi', 'sorbet/rbi/annotations/faraday.rbi', 'sorbet/rbi/annotations/railties.rbi', 'sorbet/rbi/annotations/rainbow.rbi', + 'sorbet/rbi/dsl/.gitattributes', 'sorbet/rbi/dsl/abstract_controller/caching.rbi', 'sorbet/rbi/dsl/abstract_controller/caching/fragments.rbi', 'sorbet/rbi/dsl/abstract_controller/callbacks.rbi', @@ -90,6 +94,7 @@ Gem::Specification.new do |s| 'sorbet/rbi/dsl/action_controller/rescue.rbi', 'sorbet/rbi/dsl/action_controller/test_case/behavior.rbi', 'sorbet/rbi/dsl/action_controller/url_for.rbi', + 'sorbet/rbi/dsl/action_dispatch/assertions.rbi', 'sorbet/rbi/dsl/action_dispatch/routing/url_for.rbi', 'sorbet/rbi/dsl/action_view/helpers.rbi', 'sorbet/rbi/dsl/action_view/helpers/form_helper.rbi', @@ -99,99 +104,118 @@ Gem::Specification.new do |s| 'sorbet/rbi/dsl/action_view/rendering.rbi', 'sorbet/rbi/dsl/active_model/attribute_methods.rbi', 'sorbet/rbi/dsl/active_model/attributes.rbi', + 'sorbet/rbi/dsl/active_model/conversion.rbi', 'sorbet/rbi/dsl/active_model/dirty.rbi', 'sorbet/rbi/dsl/active_model/serializers/json.rbi', 'sorbet/rbi/dsl/active_model/validations.rbi', 'sorbet/rbi/dsl/active_model/validations/callbacks.rbi', 'sorbet/rbi/dsl/active_record/attribute_methods.rbi', 'sorbet/rbi/dsl/active_record/attribute_methods/dirty.rbi', + 'sorbet/rbi/dsl/active_record/attribute_methods/serialization.rbi', 'sorbet/rbi/dsl/active_record/attribute_methods/time_zone_conversion.rbi', 'sorbet/rbi/dsl/active_record/attributes.rbi', 'sorbet/rbi/dsl/active_record/callbacks.rbi', 'sorbet/rbi/dsl/active_record/core.rbi', + 'sorbet/rbi/dsl/active_record/counter_cache.rbi', 'sorbet/rbi/dsl/active_record/encryption/encryptable_record.rbi', 'sorbet/rbi/dsl/active_record/inheritance.rbi', 'sorbet/rbi/dsl/active_record/integration.rbi', 'sorbet/rbi/dsl/active_record/locking/optimistic.rbi', 'sorbet/rbi/dsl/active_record/model_schema.rbi', 'sorbet/rbi/dsl/active_record/nested_attributes.rbi', + 'sorbet/rbi/dsl/active_record/normalization.rbi', 'sorbet/rbi/dsl/active_record/readonly_attributes.rbi', 'sorbet/rbi/dsl/active_record/reflection.rbi', 'sorbet/rbi/dsl/active_record/scoping.rbi', 'sorbet/rbi/dsl/active_record/scoping/default.rbi', + 'sorbet/rbi/dsl/active_record/secure_password.rbi', 'sorbet/rbi/dsl/active_record/serialization.rbi', 'sorbet/rbi/dsl/active_record/signed_id.rbi', 'sorbet/rbi/dsl/active_record/test_fixtures.rbi', 'sorbet/rbi/dsl/active_record/timestamp.rbi', + 'sorbet/rbi/dsl/active_record/token_for.rbi', 'sorbet/rbi/dsl/active_record/validations.rbi', 'sorbet/rbi/dsl/active_support/actionable_error.rbi', 'sorbet/rbi/dsl/active_support/callbacks.rbi', 'sorbet/rbi/dsl/active_support/rescuable.rbi', 'sorbet/rbi/dsl/active_support/testing/file_fixtures.rbi', - 'sorbet/rbi/gems/actionpack@7.0.4.3.rbi', - 'sorbet/rbi/gems/actionview@7.0.4.3.rbi', - 'sorbet/rbi/gems/activemodel@7.0.4.3.rbi', - 'sorbet/rbi/gems/activerecord@7.0.4.3.rbi', - 'sorbet/rbi/gems/activesupport@7.0.4.3.rbi', + 'sorbet/rbi/gems/.gitattributes', + 'sorbet/rbi/gems/actionpack@7.1.3.2.rbi', + 'sorbet/rbi/gems/actionview@7.1.3.2.rbi', + 'sorbet/rbi/gems/activemodel@7.1.3.2.rbi', + 'sorbet/rbi/gems/activerecord@7.1.3.2.rbi', + 'sorbet/rbi/gems/activesupport@7.1.3.2.rbi', 'sorbet/rbi/gems/addressable@2.4.0.rbi', - 'sorbet/rbi/gems/ancestry@4.3.2.rbi', - 'sorbet/rbi/gems/appraisal@2.4.1.rbi', + 'sorbet/rbi/gems/ancestry@4.3.3.rbi', + 'sorbet/rbi/gems/appraisal@2.5.0.rbi', 'sorbet/rbi/gems/ast@2.4.2.rbi', + 'sorbet/rbi/gems/base64@0.2.0.rbi', + 'sorbet/rbi/gems/bigdecimal@3.1.7.rbi', 'sorbet/rbi/gems/builder@3.2.4.rbi', 'sorbet/rbi/gems/coderay@1.1.3.rbi', 'sorbet/rbi/gems/commander@4.6.0.rbi', - 'sorbet/rbi/gems/concurrent-ruby@1.2.2.rbi', - 'sorbet/rbi/gems/coveralls_reborn@0.27.0.rbi', + 'sorbet/rbi/gems/concurrent-ruby@1.2.3.rbi', + 'sorbet/rbi/gems/connection_pool@2.4.1.rbi', + 'sorbet/rbi/gems/coveralls_reborn@0.28.0.rbi', 'sorbet/rbi/gems/crass@1.0.6.rbi', 'sorbet/rbi/gems/descendants_tracker@0.0.4.rbi', - 'sorbet/rbi/gems/diff-lcs@1.5.0.rbi', + 'sorbet/rbi/gems/diff-lcs@1.5.1.rbi', 'sorbet/rbi/gems/docile@1.4.0.rbi', + 'sorbet/rbi/gems/drb@2.2.1.rbi', 'sorbet/rbi/gems/erubi@1.12.0.rbi', 'sorbet/rbi/gems/faraday@0.9.2.rbi', 'sorbet/rbi/gems/git@1.11.0.rbi', 'sorbet/rbi/gems/github_api@0.16.0.rbi', 'sorbet/rbi/gems/hashie@5.0.0.rbi', 'sorbet/rbi/gems/highline@2.0.3.rbi', - 'sorbet/rbi/gems/i18n@1.12.0.rbi', + 'sorbet/rbi/gems/i18n@1.14.4.rbi', + 'sorbet/rbi/gems/io-console@0.7.2.rbi', 'sorbet/rbi/gems/jeweler@2.3.9.rbi', - 'sorbet/rbi/gems/json@2.6.3.rbi', - 'sorbet/rbi/gems/jwt@2.5.0.rbi', - 'sorbet/rbi/gems/loofah@2.19.1.rbi', + 'sorbet/rbi/gems/json@2.7.2.rbi', + 'sorbet/rbi/gems/jwt@2.7.1.rbi', + 'sorbet/rbi/gems/kramdown@2.4.0.rbi', + 'sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi', + 'sorbet/rbi/gems/loofah@2.22.0.rbi', 'sorbet/rbi/gems/method_source@1.0.0.rbi', 'sorbet/rbi/gems/mime-types@2.99.3.rbi', - 'sorbet/rbi/gems/minitest@5.18.0.rbi', + 'sorbet/rbi/gems/minitest@5.22.3.rbi', 'sorbet/rbi/gems/multi_json@1.15.0.rbi', 'sorbet/rbi/gems/multi_xml@0.6.0.rbi', - 'sorbet/rbi/gems/multipart-post@2.2.3.rbi', + 'sorbet/rbi/gems/multipart-post@2.3.0.rbi', + 'sorbet/rbi/gems/mutex_m@0.2.0.rbi', 'sorbet/rbi/gems/netrc@0.11.0.rbi', - 'sorbet/rbi/gems/nokogiri@1.14.2.rbi', + 'sorbet/rbi/gems/nokogiri@1.16.3.rbi', 'sorbet/rbi/gems/oauth2@1.4.8.rbi', - 'sorbet/rbi/gems/parallel@1.22.1.rbi', - 'sorbet/rbi/gems/parser@3.2.2.0.rbi', - 'sorbet/rbi/gems/pg@1.4.6.rbi', + 'sorbet/rbi/gems/parallel@1.24.0.rbi', + 'sorbet/rbi/gems/parser@3.3.0.5.rbi', + 'sorbet/rbi/gems/pg@1.5.6.rbi', 'sorbet/rbi/gems/polyfill@1.9.0.rbi', + 'sorbet/rbi/gems/prism@0.24.0.rbi', 'sorbet/rbi/gems/pry@0.14.2.rbi', - 'sorbet/rbi/gems/psych@4.0.6.rbi', - 'sorbet/rbi/gems/racc@1.6.2.rbi', - 'sorbet/rbi/gems/rack-test@2.0.2.rbi', - 'sorbet/rbi/gems/rack@2.2.6.4.rbi', - 'sorbet/rbi/gems/rails-dom-testing@2.0.3.rbi', - 'sorbet/rbi/gems/rails-html-sanitizer@1.5.0.rbi', - 'sorbet/rbi/gems/railties@7.0.4.3.rbi', + 'sorbet/rbi/gems/psych@5.1.2.rbi', + 'sorbet/rbi/gems/racc@1.7.3.rbi', + 'sorbet/rbi/gems/rack-session@1.0.2.rbi', + 'sorbet/rbi/gems/rack-test@2.1.0.rbi', + 'sorbet/rbi/gems/rack@2.2.9.rbi', + 'sorbet/rbi/gems/rackup@1.0.0.rbi', + 'sorbet/rbi/gems/rails-dom-testing@2.2.0.rbi', + 'sorbet/rbi/gems/rails-html-sanitizer@1.6.0.rbi', + 'sorbet/rbi/gems/railties@7.1.3.2.rbi', 'sorbet/rbi/gems/rainbow@3.1.1.rbi', - 'sorbet/rbi/gems/rake@13.0.6.rbi', - 'sorbet/rbi/gems/rbi@0.0.16.rbi', - 'sorbet/rbi/gems/rbs@2.8.0.rbi', + 'sorbet/rbi/gems/rake@13.2.1.rbi', + 'sorbet/rbi/gems/rbi@0.1.10.rbi', + 'sorbet/rbi/gems/rbs@3.2.1.rbi', 'sorbet/rbi/gems/rchardet@1.8.0.rbi', - 'sorbet/rbi/gems/rdoc@6.5.0.rbi', - 'sorbet/rbi/gems/regexp_parser@2.7.0.rbi', - 'sorbet/rbi/gems/rexml@3.2.5.rbi', - 'sorbet/rbi/gems/rspec-core@3.12.0.rbi', - 'sorbet/rbi/gems/rspec-expectations@3.12.0.rbi', - 'sorbet/rbi/gems/rspec-mocks@3.12.0.rbi', - 'sorbet/rbi/gems/rspec-support@3.12.0.rbi', - 'sorbet/rbi/gems/rspec@3.12.0.rbi', - 'sorbet/rbi/gems/rubocop-ast@1.28.0.rbi', + 'sorbet/rbi/gems/rdoc@6.6.3.1.rbi', + 'sorbet/rbi/gems/regexp_parser@2.9.0.rbi', + 'sorbet/rbi/gems/reline@0.5.0.rbi', + 'sorbet/rbi/gems/rexml@3.2.6.rbi', + 'sorbet/rbi/gems/rspec-core@3.13.0.rbi', + 'sorbet/rbi/gems/rspec-expectations@3.13.0.rbi', + 'sorbet/rbi/gems/rspec-mocks@3.13.0.rbi', + 'sorbet/rbi/gems/rspec-support@3.13.1.rbi', + 'sorbet/rbi/gems/rspec@3.13.0.rbi', + 'sorbet/rbi/gems/rubocop-ast@1.31.2.rbi', 'sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi', 'sorbet/rbi/gems/safe_type@1.1.1.rbi', 'sorbet/rbi/gems/semver2@3.4.2.rbi', @@ -199,29 +223,29 @@ Gem::Specification.new do |s| 'sorbet/rbi/gems/simplecov@0.22.0.rbi', 'sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi', 'sorbet/rbi/gems/sorbet-coerce@0.7.0.rbi', - 'sorbet/rbi/gems/spoom@1.2.1.rbi', - 'sorbet/rbi/gems/sqlite3@1.6.2.rbi', - 'sorbet/rbi/gems/stringio@3.0.2.rbi', + 'sorbet/rbi/gems/spoom@1.3.0.rbi', + 'sorbet/rbi/gems/sqlite3@1.7.3.rbi', + 'sorbet/rbi/gems/stringio@3.1.0.rbi', 'sorbet/rbi/gems/sync@0.5.0.rbi', - 'sorbet/rbi/gems/tapioca@0.11.4-a4319794491b54d9db1c06df7f3bdffcdf7bf684.rbi', + 'sorbet/rbi/gems/tapioca@0.13.1-cdc0d7c02d5291d3a72de0c0b1cb28ea53847b76.rbi', 'sorbet/rbi/gems/term-ansicolor@1.7.1.rbi', - 'sorbet/rbi/gems/thor@1.2.1.rbi', + 'sorbet/rbi/gems/thor@1.3.1.rbi', 'sorbet/rbi/gems/thread_safe@0.3.6.rbi', - 'sorbet/rbi/gems/timecop@0.9.6.rbi', + 'sorbet/rbi/gems/timecop@0.9.8.rbi', + 'sorbet/rbi/gems/timeout@0.4.1.rbi', 'sorbet/rbi/gems/tins@1.32.1.rbi', 'sorbet/rbi/gems/tzinfo@2.0.6.rbi', - 'sorbet/rbi/gems/unicode-display_width@2.4.2.rbi', - 'sorbet/rbi/gems/unparser@0.6.7.rbi', - 'sorbet/rbi/gems/webrick@1.7.0.rbi', + 'sorbet/rbi/gems/unicode-display_width@2.5.0.rbi', + 'sorbet/rbi/gems/unparser@0.6.13.rbi', + 'sorbet/rbi/gems/webrick@1.8.1.rbi', 'sorbet/rbi/gems/yard-sorbet@0.8.1.rbi', - 'sorbet/rbi/gems/yard@0.9.28.rbi', - 'sorbet/rbi/gems/zeitwerk@2.6.7.rbi', + 'sorbet/rbi/gems/yard@0.9.36.rbi', + 'sorbet/rbi/gems/zeitwerk@2.6.13.rbi', 'sorbet/rbi/models/acts-as-messageable/message.rbi', 'sorbet/rbi/models/acts-as-messageable/user.rbi', - 'sorbet/rbi/rails-rbi/active_record_base.rbi', - 'sorbet/rbi/rails-rbi/active_record_relation.rbi', 'sorbet/rbi/shims/activerecord.rbi', 'sorbet/rbi/shims/model.rbi', + 'sorbet/rbi/shims/zeitwerk.rbi', 'sorbet/tapioca/config.yml', 'sorbet/tapioca/pre_require.rb', 'sorbet/tapioca/require.rb', @@ -240,6 +264,7 @@ Gem::Specification.new do |s| 'spec/support/table_schema.rb', 'spec/support/user.rb', 'spec/support/uuid_user.rb', + 'tasks/readme.rake', 'tasks/types.rake' ] s.homepage = 'http://github.com/LTe/acts-as-messageable' @@ -251,11 +276,14 @@ Gem::Specification.new do |s| s.add_runtime_dependency('railties', ['>= 0']) s.add_runtime_dependency('sorbet-rails', ['>= 0']) s.add_runtime_dependency('sorbet-static-and-runtime', ['>= 0']) + s.add_runtime_dependency('zeitwerk', ['>= 0']) s.add_development_dependency('appraisal', ['>= 0']) s.add_development_dependency('coveralls_reborn', ['>= 0']) s.add_development_dependency('jeweler', ['>= 0']) + s.add_development_dependency('kramdown', ['>= 0']) s.add_development_dependency('pg', ['>= 0']) s.add_development_dependency('pry', ['>= 0']) + s.add_development_dependency('rake', ['>= 0']) s.add_development_dependency('rspec', ['>= 0']) s.add_development_dependency('rubocop', ['>= 0']) s.add_development_dependency('rubocop-sorbet', ['>= 0']) diff --git a/gemfiles/rails_3.2.gemfile b/gemfiles/rails_3.2.gemfile index 0fabcde9c..565103885 100644 --- a/gemfiles/rails_3.2.gemfile +++ b/gemfiles/rails_3.2.gemfile @@ -10,6 +10,7 @@ gem 'ancestry', require: false gem 'railties', '~> 3.2.22' gem 'sorbet-rails', require: false gem 'sorbet-static-and-runtime', require: false +gem 'zeitwerk', require: false group :development do gem 'appraisal', require: false diff --git a/gemfiles/rails_4.2.gemfile b/gemfiles/rails_4.2.gemfile index 8af424fac..5cd19eaa2 100644 --- a/gemfiles/rails_4.2.gemfile +++ b/gemfiles/rails_4.2.gemfile @@ -11,6 +11,7 @@ gem 'railties', '~> 4.2' gem 'rdoc', '6.2.0' gem 'sorbet-rails', require: false gem 'sorbet-static-and-runtime', require: false +gem 'zeitwerk', require: false group :development do gem 'appraisal', require: false diff --git a/gemfiles/rails_5.2.gemfile b/gemfiles/rails_5.2.gemfile index e50c90541..bb03d9ead 100644 --- a/gemfiles/rails_5.2.gemfile +++ b/gemfiles/rails_5.2.gemfile @@ -10,6 +10,7 @@ gem 'ancestry', require: false gem 'railties', '~> 5.2.0' gem 'sorbet-rails', require: false gem 'sorbet-static-and-runtime', require: false +gem 'zeitwerk', require: false group :development do gem 'appraisal', require: false diff --git a/gemfiles/rails_6.0.gemfile b/gemfiles/rails_6.0.gemfile index 9cd07fc6c..0bb4a89f2 100644 --- a/gemfiles/rails_6.0.gemfile +++ b/gemfiles/rails_6.0.gemfile @@ -10,6 +10,7 @@ gem 'ancestry', require: false gem 'railties', '~> 6' gem 'sorbet-rails', require: false gem 'sorbet-static-and-runtime', require: false +gem 'zeitwerk', require: false group :development do gem 'appraisal', require: false diff --git a/gemfiles/rails_7.0.gemfile b/gemfiles/rails_7.0.gemfile index 465614036..87939e5f1 100644 --- a/gemfiles/rails_7.0.gemfile +++ b/gemfiles/rails_7.0.gemfile @@ -10,6 +10,7 @@ gem 'ancestry', require: false gem 'railties', '~> 7' gem 'sorbet-rails', require: false gem 'sorbet-static-and-runtime', require: false +gem 'zeitwerk', require: false group :development do gem 'appraisal', require: false diff --git a/gemfiles/rails_master.gemfile b/gemfiles/rails_master.gemfile index 3d508b7cd..5d9b55b27 100644 --- a/gemfiles/rails_master.gemfile +++ b/gemfiles/rails_master.gemfile @@ -10,6 +10,7 @@ gem 'ancestry', require: false gem 'railties', git: 'https://github.com/rails/rails.git' gem 'sorbet-rails', require: false gem 'sorbet-static-and-runtime', require: false +gem 'zeitwerk', require: false group :development do gem 'appraisal', require: false diff --git a/lib/acts-as-messageable.rb b/lib/acts-as-messageable.rb deleted file mode 100644 index c71aa989a..000000000 --- a/lib/acts-as-messageable.rb +++ /dev/null @@ -1,4 +0,0 @@ -# typed: strong -# frozen_string_literal: true - -require 'acts_as_messageable' diff --git a/lib/acts_as_messageable.rb b/lib/acts_as_messageable.rb index f1d6b8895..d08863e14 100644 --- a/lib/acts_as_messageable.rb +++ b/lib/acts_as_messageable.rb @@ -1,19 +1,15 @@ # typed: strong # frozen_string_literal: true +require 'zeitwerk' require 'sorbet-runtime' require 'sorbet-rails' -require 'ancestry' -module ActsAsMessageable - autoload :Model, 'acts_as_messageable/model' - autoload :Scopes, 'acts_as_messageable/scopes' - autoload :Message, 'acts_as_messageable/message' - autoload :Relation, 'acts_as_messageable/relation' - autoload :Rails3, 'acts_as_messageable/rails3' - autoload :Rails4, 'acts_as_messageable/rails4' - autoload :Rails6, 'acts_as_messageable/rails6' +loader = Zeitwerk::Loader.for_gem(warn_on_extra_files: true) +loader.ignore("#{__dir__}/generators") +loader.setup +module ActsAsMessageable extend T::Sig # @return [Class, Class, Class] diff --git a/lib/acts_as_messageable/message.rb b/lib/acts_as_messageable/message.rb index 9343f5d03..47224340d 100644 --- a/lib/acts_as_messageable/message.rb +++ b/lib/acts_as_messageable/message.rb @@ -1,6 +1,8 @@ # typed: strict # frozen_string_literal: true +require 'ancestry' + module ActsAsMessageable class Message < ::ActiveRecord::Base extend T::Sig diff --git a/lib/generators/acts_as_messageable/migration/migration_generator.rb b/lib/generators/acts_as_messageable/migration/migration_generator.rb index 46c32168a..3851112bc 100644 --- a/lib/generators/acts_as_messageable/migration/migration_generator.rb +++ b/lib/generators/acts_as_messageable/migration/migration_generator.rb @@ -3,6 +3,7 @@ require 'rails/generators/migration' require 'rails/generators/active_record' +require 'sorbet-runtime' module ActsAsMessageable class MigrationGenerator < Rails::Generators::Base diff --git a/sorbet/rbi/shims/zeitwerk.rbi b/sorbet/rbi/shims/zeitwerk.rbi new file mode 100644 index 000000000..22215276c --- /dev/null +++ b/sorbet/rbi/shims/zeitwerk.rbi @@ -0,0 +1,9 @@ +# typed: strict + +class Zeitwerk::Loader + sig { returns(T::Boolean) } + def setup; end + + sig { params(warn_on_extra_files: T::Boolean).returns(Zeitwerk::Loader) } + def self.for_gem(warn_on_extra_files: T.unsafe(nil)); end +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 2e0441edc..803420b7c 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -21,7 +21,7 @@ Bundler.require(:default) require 'pry' -require 'acts-as-messageable' +require 'acts_as_messageable' Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].sort.each { |f| require f }