rbs_rails 0.12.0 → 0.13.0

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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +1 -1
  3. data/.github/workflows/release.yml +27 -0
  4. data/CHANGELOG.md +64 -0
  5. data/Gemfile +9 -3
  6. data/Gemfile.lock +202 -129
  7. data/README.md +47 -1
  8. data/Rakefile +7 -2
  9. data/Steepfile +5 -0
  10. data/example/rbs_rails.rb +27 -0
  11. data/exe/rbs_rails +6 -0
  12. data/lib/generators/rbs_rails/install_generator.rb +10 -15
  13. data/lib/rbs_rails/active_record/enum.rb +81 -0
  14. data/lib/rbs_rails/active_record.rb +269 -171
  15. data/lib/rbs_rails/cli/configuration.rb +66 -0
  16. data/lib/rbs_rails/cli.rb +173 -0
  17. data/lib/rbs_rails/dependency_builder.rb +29 -8
  18. data/lib/rbs_rails/path_helpers.rb +14 -2
  19. data/lib/rbs_rails/rake_task.rb +39 -41
  20. data/lib/rbs_rails/util/file_writer.rb +22 -0
  21. data/lib/rbs_rails/util.rb +17 -15
  22. data/lib/rbs_rails/version.rb +1 -1
  23. data/lib/rbs_rails.rb +5 -2
  24. data/rbs_collection.lock.yaml +273 -45
  25. data/rbs_collection.yaml +1 -18
  26. data/rbs_rails.gemspec +2 -1
  27. data/sig/{install_generator.rbs → generators/rbs_rails/install_generator.rbs} +2 -0
  28. data/sig/rbs_rails/active_record/enum.rbs +26 -0
  29. data/sig/rbs_rails/active_record.rbs +68 -46
  30. data/sig/rbs_rails/cli/configuration.rbs +37 -0
  31. data/sig/rbs_rails/cli.rbs +35 -0
  32. data/sig/rbs_rails/dependency_builder.rbs +8 -0
  33. data/sig/rbs_rails/path_helpers.rbs +13 -6
  34. data/sig/rbs_rails/rake_task.rbs +8 -7
  35. data/sig/rbs_rails/util/file_writer.rbs +16 -0
  36. data/sig/rbs_rails/util.rbs +7 -2
  37. data/sig/rbs_rails/utils/file_writer.rbs +4 -0
  38. data/sig/rbs_rails/version.rbs +5 -1
  39. data/sig/rbs_rails.rbs +6 -3
  40. metadata +33 -14
  41. data/sig/_internal/activerecord.rbs +0 -4
  42. data/sig/_internal/fileutils.rbs +0 -4
  43. data/sig/_internal/thor.rbs +0 -5
  44. data/sig/parser.rbs +0 -14
  45. data/sig/rake.rbs +0 -6
@@ -0,0 +1,35 @@
1
+ # Generated from lib/rbs_rails/cli.rb with RBS::Inline
2
+
3
+ module RbsRails
4
+ # @rbs &block: (CLI::Configuration) -> void
5
+ def self.configure: () { (CLI::Configuration) -> void } -> void
6
+
7
+ class CLI
8
+ attr_reader config_file: String?
9
+
10
+ # @rbs argv: Array[String]
11
+ def run: (Array[String] argv) -> Integer
12
+
13
+ private
14
+
15
+ def config: () -> Configuration
16
+
17
+ def load_config: () -> void
18
+
19
+ def load_application: () -> void
20
+
21
+ def install_hooks: () -> void
22
+
23
+ def generate_models: () -> void
24
+
25
+ # Raise an error if database is not migrated to the latest version
26
+ def check_db_migrations!: () -> void
27
+
28
+ # @rbs klass: singleton(ActiveRecord::Base)
29
+ def generate_single_model: (singleton(ActiveRecord::Base) klass) -> bool
30
+
31
+ def generate_path_helpers: () -> void
32
+
33
+ def create_option_parser: () -> OptionParser
34
+ end
35
+ end
@@ -1,10 +1,18 @@
1
+ # Generated from lib/rbs_rails/dependency_builder.rb with RBS::Inline
2
+
1
3
  module RbsRails
2
4
  class DependencyBuilder
3
5
  attr_reader deps: Array[String]
6
+
4
7
  attr_reader done: Set[String]
5
8
 
6
9
  def initialize: () -> void
7
10
 
11
+ # @rbs name: String
12
+ def <<: (String name) -> Array[String]
13
+
8
14
  def build: () -> (String | nil)
15
+
16
+ private def shift: () -> (String | nil)
9
17
  end
10
18
  end
@@ -1,11 +1,18 @@
1
- class RbsRails::PathHelpers
2
- def self.generate: (?routes: untyped routes) -> untyped
1
+ # Generated from lib/rbs_rails/path_helpers.rb with RBS::Inline
3
2
 
4
- def initialize: (routes: untyped routes) -> untyped
3
+ module RbsRails
4
+ class PathHelpers
5
+ def self.generate: (?routes: untyped) -> untyped
5
6
 
6
- def generate: () -> untyped
7
+ def initialize: (routes: untyped) -> untyped
7
8
 
8
- def helpers: () -> untyped
9
+ def generate: () -> untyped
9
10
 
10
- attr_reader routes: untyped
11
+ private def helpers: () -> untyped
12
+
13
+ private
14
+
15
+ # @dynamic routes
16
+ attr_reader routes: untyped
17
+ end
11
18
  end
@@ -1,26 +1,27 @@
1
+ # Generated from lib/rbs_rails/rake_task.rb with RBS::Inline
2
+
1
3
  module RbsRails
2
4
  class RakeTask < Rake::TaskLib
3
5
  interface _Filter
4
6
  def call: (Class) -> boolish
5
7
  end
8
+
6
9
  attr_accessor ignore_model_if: _Filter | nil
7
10
 
8
11
  attr_accessor name: Symbol
9
12
 
10
- attr_accessor signature_root_dir: Pathname
13
+ attr_writer signature_root_dir: Pathname?
11
14
 
12
- def initialize: (?::Symbol name) { (self) -> void } -> void
15
+ # @rbs name: ::Symbol
16
+ # @rbs &block: (RbsRails::RakeTask) -> void
17
+ def initialize: (?::Symbol name) { (RbsRails::RakeTask) -> void } -> void
13
18
 
14
19
  def def_all: () -> void
15
20
 
16
- def def_copy_signature_files: () -> void
17
-
18
21
  def def_generate_rbs_for_models: () -> void
19
22
 
20
23
  def def_generate_rbs_for_path_helpers: () -> void
21
24
 
22
- private
23
-
24
- def setup_signature_root_dir!: () -> void
25
+ private def signature_root_dir: () -> Pathname?
25
26
  end
26
27
  end
@@ -0,0 +1,16 @@
1
+ # Generated from lib/rbs_rails/util/file_writer.rb with RBS::Inline
2
+
3
+ module RbsRails
4
+ module Util
5
+ # To avoid unnecessary type reloading by type checkers and other utilities,
6
+ # FileWriter modifies the target file only if its content has been changed.
7
+ class FileWriter
8
+ attr_reader path: Pathname
9
+
10
+ # @rbs path: Pathname
11
+ def initialize: (Pathname path) -> void
12
+
13
+ def write: (untyped content) -> void
14
+ end
15
+ end
16
+ end
@@ -1,11 +1,16 @@
1
+ # Generated from lib/rbs_rails/util.rb with RBS::Inline
2
+
1
3
  module RbsRails
2
4
  module Util
3
5
  MODULE_NAME: UnboundMethod
4
6
 
5
7
  extend Util
6
8
 
7
- def module_name: (Module) -> String
9
+ # @rbs mod: Module
10
+ # @rbs abs: boolish
11
+ def module_name: (Module mod, ?abs: boolish) -> String
8
12
 
9
- def format_rbs: (String) -> String
13
+ # @rbs rbs: String
14
+ def format_rbs: (String rbs) -> String
10
15
  end
11
16
  end
@@ -0,0 +1,4 @@
1
+ # Generated from lib/rbs_rails/utils/file_writer.rb with RBS::Inline
2
+
3
+ module RbsRails
4
+ end
@@ -1 +1,5 @@
1
- RbsRails::VERSION: ::String
1
+ # Generated from lib/rbs_rails/version.rb with RBS::Inline
2
+
3
+ module RbsRails
4
+ VERSION: String
5
+ end
data/sig/rbs_rails.rbs CHANGED
@@ -1,6 +1,9 @@
1
+ # Generated from lib/rbs_rails.rb with RBS::Inline
2
+
1
3
  module RbsRails
2
- def self.copy_signatures: (to: untyped to) -> untyped
3
- end
4
+ class Error < StandardError
5
+ end
4
6
 
5
- class RbsRails::Error < StandardError
7
+ # @rbs to: untyped
8
+ def self.copy_signatures: (to: untyped) -> untyped
6
9
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbs_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masataka Pocke Kuwabara
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2023-04-27 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: parser
@@ -24,6 +23,20 @@ dependencies:
24
23
  - - ">="
25
24
  - !ruby/object:Gem::Version
26
25
  version: '0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: prism
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
27
40
  - !ruby/object:Gem::Dependency
28
41
  name: rbs
29
42
  requirement: !ruby/object:Gem::Requirement
@@ -41,12 +54,14 @@ dependencies:
41
54
  description: A RBS files generator for Rails application
42
55
  email:
43
56
  - kuwabara@pocke.me
44
- executables: []
57
+ executables:
58
+ - rbs_rails
45
59
  extensions: []
46
60
  extra_rdoc_files: []
47
61
  files:
48
62
  - ".dependabot/config.yml"
49
63
  - ".github/workflows/ci.yml"
64
+ - ".github/workflows/release.yml"
50
65
  - ".gitignore"
51
66
  - ".gitmodules"
52
67
  - CHANGELOG.md
@@ -63,29 +78,35 @@ files:
63
78
  - bin/rbs-prototype-rb.rb
64
79
  - bin/setup
65
80
  - bin/to-ascii.rb
81
+ - example/rbs_rails.rb
82
+ - exe/rbs_rails
66
83
  - lib/generators/rbs_rails/install_generator.rb
67
84
  - lib/rbs_rails.rb
68
85
  - lib/rbs_rails/active_record.rb
86
+ - lib/rbs_rails/active_record/enum.rb
87
+ - lib/rbs_rails/cli.rb
88
+ - lib/rbs_rails/cli/configuration.rb
69
89
  - lib/rbs_rails/dependency_builder.rb
70
90
  - lib/rbs_rails/path_helpers.rb
71
91
  - lib/rbs_rails/rake_task.rb
72
92
  - lib/rbs_rails/util.rb
93
+ - lib/rbs_rails/util/file_writer.rb
73
94
  - lib/rbs_rails/version.rb
74
95
  - rbs_collection.lock.yaml
75
96
  - rbs_collection.yaml
76
97
  - rbs_rails.gemspec
77
- - sig/_internal/activerecord.rbs
78
- - sig/_internal/fileutils.rbs
79
- - sig/_internal/thor.rbs
80
- - sig/install_generator.rbs
81
- - sig/parser.rbs
82
- - sig/rake.rbs
98
+ - sig/generators/rbs_rails/install_generator.rbs
83
99
  - sig/rbs_rails.rbs
84
100
  - sig/rbs_rails/active_record.rbs
101
+ - sig/rbs_rails/active_record/enum.rbs
102
+ - sig/rbs_rails/cli.rbs
103
+ - sig/rbs_rails/cli/configuration.rbs
85
104
  - sig/rbs_rails/dependency_builder.rbs
86
105
  - sig/rbs_rails/path_helpers.rbs
87
106
  - sig/rbs_rails/rake_task.rbs
88
107
  - sig/rbs_rails/util.rbs
108
+ - sig/rbs_rails/util/file_writer.rbs
109
+ - sig/rbs_rails/utils/file_writer.rbs
89
110
  - sig/rbs_rails/version.rbs
90
111
  homepage: https://github.com/pocke/rbs_rails
91
112
  licenses:
@@ -94,7 +115,6 @@ metadata:
94
115
  homepage_uri: https://github.com/pocke/rbs_rails
95
116
  source_code_uri: https://github.com/pocke/rbs_rails
96
117
  changelog_uri: https://github.com/pocke/rbs_rails/blob/master/CHANGELOG.md
97
- post_install_message:
98
118
  rdoc_options: []
99
119
  require_paths:
100
120
  - lib
@@ -102,15 +122,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
102
122
  requirements:
103
123
  - - ">="
104
124
  - !ruby/object:Gem::Version
105
- version: 2.3.0
125
+ version: '3.2'
106
126
  required_rubygems_version: !ruby/object:Gem::Requirement
107
127
  requirements:
108
128
  - - ">="
109
129
  - !ruby/object:Gem::Version
110
130
  version: '0'
111
131
  requirements: []
112
- rubygems_version: 3.5.0.dev
113
- signing_key:
132
+ rubygems_version: 4.0.3
114
133
  specification_version: 4
115
134
  summary: A RBS files generator for Rails application
116
135
  test_files: []
@@ -1,4 +0,0 @@
1
- # TODO: Define it in gem_rbs_collection repository
2
- class ActiveRecord::Base
3
- def self.primary_key: () -> String
4
- end
@@ -1,4 +0,0 @@
1
- module FileUtils
2
- def self.cp_r: (Pathname, Pathname) -> untyped
3
- def self.mkdir_p: (String | Array[String], ?untyped) -> Array[String]
4
- end
@@ -1,5 +0,0 @@
1
- class Thor
2
- module Actions
3
- def create_file: (String, String) -> void
4
- end
5
- end
data/sig/parser.rbs DELETED
@@ -1,14 +0,0 @@
1
- module Parser
2
- end
3
-
4
- class Parser::CurrentRuby
5
- def self.parse: (String) -> Parser::AST::Node
6
- end
7
-
8
- module Parser::AST
9
- end
10
-
11
- class Parser::AST::Node
12
- def type: () -> Symbol
13
- def children: () -> Array[untyped]
14
- end
data/sig/rake.rbs DELETED
@@ -1,6 +0,0 @@
1
- module Rake
2
- class TaskLib
3
- def desc: (String) -> void
4
- def task: (Hash[Symbol, Symbol | Array[Symbol]]) ?{ () -> void } -> void
5
- end
6
- end