rbs_rails 0.8.1 → 0.8.2

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: 30c59f478f8fa0cd0c41751feb468a04208e057ff318edf80717b63d2f4664b8
4
- data.tar.gz: f382afdc82aaa47b6fe14cba2cdcbb62f127dc04d95020b71ed1b6c1aa8dfd9d
3
+ metadata.gz: 2d70009e239cba7c79ad16cf1861495051952a6930205678b05fcf5ad97f0809
4
+ data.tar.gz: 20e8d58362c2222651aa10430417ac90af1b8e38e5b3bbfcfdf43f186f77eff6
5
5
  SHA512:
6
- metadata.gz: 54ca5ed84a59c4e67892f8c4e72cdc190420d457345523eb11b3dd4efe7dde5d8662afc7ace9dbee3be1aa5577b257b028ccdba20297b45332919999ac648914
7
- data.tar.gz: 61ba620c335f27ddb58ce96d4bf3d03ea61071c528b587b7fa419d93c462ba6d96e6ad4e508243a1e6aff903966bfa49e18a02ecf9eb69f053c2cdd215da20a7
6
+ metadata.gz: ef998ce7910f4169eb43716ed8ad0132338751b0c9346213cb02ddecae71fe1c0159d8eb2404877cd599dbd352fe42d3d52bd1316f6577fe2568c912ec0f402a
7
+ data.tar.gz: 846055b9290bfb250e933686a7dcd05bd52ff331cc1a83a3ddae4cd05ff480b2b43b7c164dbbbff164f25c568837b9d30353eb787464f430b08ffbed69737add
@@ -0,0 +1,8 @@
1
+ version: 1
2
+ update_configs:
3
+ - package_manager: "ruby:bundler"
4
+ directory: "/"
5
+ update_schedule: "live"
6
+ - package_manager: "ruby:bundler"
7
+ directory: "/test/app/"
8
+ update_schedule: "live"
data/.gitignore CHANGED
@@ -6,7 +6,6 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
- /Gemfile.lock
10
9
  /test/app/sig/rbs_rails
11
10
  /test/app/sig/app
12
11
  /test/app/sig/path_helpers.rbs
data/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  ## master (unreleased)
4
4
 
5
+ ## 0.8.2 (2021-02-20)
6
+
7
+ * Add ActiveRecord::AttributeMethods::Dirty methods [#104](https://github.com/pocke/rbs_rails/pull/104)
8
+ * Define find method based on primary key [#105](https://github.com/pocke/rbs_rails/pull/105)
9
+
5
10
  ## 0.8.1 (2021-01-09)
6
11
 
7
12
  * Skip generation RBS fro class that doesn't have table in DB. [#95](https://github.com/pocke/rbs_rails/pull/95)
data/Gemfile CHANGED
@@ -3,7 +3,7 @@ source "https://rubygems.org"
3
3
  # Specify your gem's dependencies in rbs_rails.gemspec
4
4
  gemspec
5
5
 
6
- gem "rake", "~> 12.0"
7
- gem 'rbs', '1.0.0'
8
- gem 'steep', '>= 0.34.0', git: 'https://github.com/soutaro/steep.git'
6
+ gem "rake", "~> 13.0"
7
+ gem 'rbs', '>= 1.0.0'
8
+ gem 'steep', '>= 0.34.0'
9
9
  gem 'minitest'
data/Gemfile.lock ADDED
@@ -0,0 +1,61 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rbs_rails (0.8.2)
5
+ parser
6
+ rbs (>= 1)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ activesupport (6.1.2.1)
12
+ concurrent-ruby (~> 1.0, >= 1.0.2)
13
+ i18n (>= 1.6, < 2)
14
+ minitest (>= 5.1)
15
+ tzinfo (~> 2.0)
16
+ zeitwerk (~> 2.3)
17
+ ast (2.4.2)
18
+ ast_utils (0.4.0)
19
+ parser (>= 2.7.0)
20
+ concurrent-ruby (1.1.8)
21
+ ffi (1.14.2)
22
+ i18n (1.8.9)
23
+ concurrent-ruby (~> 1.0)
24
+ language_server-protocol (3.15.0.1)
25
+ listen (3.4.1)
26
+ rb-fsevent (~> 0.10, >= 0.10.3)
27
+ rb-inotify (~> 0.9, >= 0.9.10)
28
+ minitest (5.14.3)
29
+ parser (3.0.0.0)
30
+ ast (~> 2.4.1)
31
+ rainbow (3.0.0)
32
+ rake (13.0.3)
33
+ rb-fsevent (0.10.4)
34
+ rb-inotify (0.10.1)
35
+ ffi (~> 1.0)
36
+ rbs (1.0.6)
37
+ steep (0.41.0)
38
+ activesupport (>= 5.1)
39
+ ast_utils (>= 0.4.0)
40
+ language_server-protocol (~> 3.15.0.1)
41
+ listen (~> 3.0)
42
+ parser (>= 2.7)
43
+ rainbow (>= 2.2.2, < 4.0)
44
+ rbs (~> 1.0.3)
45
+ tzinfo (2.0.4)
46
+ concurrent-ruby (~> 1.0)
47
+ zeitwerk (2.4.2)
48
+
49
+ PLATFORMS
50
+ ruby
51
+ x86_64-linux
52
+
53
+ DEPENDENCIES
54
+ minitest
55
+ rake (~> 13.0)
56
+ rbs (>= 1.0.0)
57
+ rbs_rails!
58
+ steep (>= 0.34.0)
59
+
60
+ BUNDLED WITH
61
+ 2.2.4
data/bin/gem_rbs CHANGED
@@ -56,7 +56,7 @@ builder = QueryBuilder.new
56
56
  gems.each do |gem|
57
57
  path = "main:gems/#{gem}/#{VERSION}"
58
58
  builder.add(<<~GRAPHQL, { 'path' => path })
59
- #{gem}:repository(owner: "ruby", name: "gem_rbs") {
59
+ #{gem}:repository(owner: "ruby", name: "gem_rbs_collection") {
60
60
  object(expression: $path) {
61
61
  ... on Tree {
62
62
  entries {
@@ -82,7 +82,7 @@ resp[:data].each do |gem_name, gem_value|
82
82
  if fname.end_with?('.rbs')
83
83
  content =
84
84
  if entry.dig(:object, :isTruncated)
85
- `curl -H 'Accept: application/vnd.github.v3.raw' -H Authorization: token #{TOKEN} https://api.github.com/repos/ruby/gem_rbs/contents/gems/#{gem_name}/#{VERSION}/#{fname}`
85
+ `curl -H 'Accept: application/vnd.github.v3.raw' -H Authorization: token #{TOKEN} https://api.github.com/repos/ruby/gem_rbs_collection/contents/gems/#{gem_name}/#{VERSION}/#{fname}`
86
86
  else
87
87
  entry.dig(:object, :text)
88
88
  end
@@ -28,7 +28,7 @@ module RbsRails
28
28
  private def klass_decl
29
29
  <<~RBS
30
30
  #{header}
31
- extend _ActiveRecord_Relation_ClassMethods[#{klass_name}, #{relation_class_name}]
31
+ extend _ActiveRecord_Relation_ClassMethods[#{klass_name}, #{relation_class_name}, #{pk_type}]
32
32
 
33
33
  #{columns}
34
34
  #{associations}
@@ -44,11 +44,18 @@ module RbsRails
44
44
  RBS
45
45
  end
46
46
 
47
+ private def pk_type
48
+ pk = klass.primary_key
49
+ col = klass.columns.find {|col| col.name == pk }
50
+ sql_type_to_class(col.type)
51
+ end
52
+
47
53
  private def relation_decl
48
54
  <<~RBS
49
55
  class #{relation_class_name} < ActiveRecord::Relation
50
- include _ActiveRecord_Relation[#{klass_name}]
56
+ include _ActiveRecord_Relation[#{klass_name}, #{pk_type}]
51
57
  include Enumerable[#{klass_name}]
58
+
52
59
  #{enum_scope_methods(singleton: false)}
53
60
  #{scopes(singleton: false)}
54
61
  end
@@ -316,6 +323,12 @@ module RbsRails
316
323
  def #{col.name}_previously_changed?: () -> bool
317
324
  def #{col.name}_previous_change: () -> Array[#{class_name_opt}]?
318
325
  def #{col.name}_previously_was: () -> #{class_name_opt}
326
+ def #{col.name}_before_last_save: () -> #{class_name_opt}
327
+ def #{col.name}_change_to_be_saved: () -> Array[#{class_name_opt}]?
328
+ def #{col.name}_in_database: () -> #{class_name_opt}
329
+ def saved_change_to_#{col.name}: () -> Array[#{class_name_opt}]?
330
+ def saved_change_to_#{col.name}?: () -> bool
331
+ def will_save_change_to_#{col.name}?: () -> bool
319
332
  def restore_#{col.name}!: () -> void
320
333
  def clear_#{col.name}_change: () -> void
321
334
  EOS
@@ -2,5 +2,5 @@ module RbsRails
2
2
  # Because of copy_signatures is defined by lib/rbs_rails.rb
3
3
  # @dynamic self.copy_signatures
4
4
 
5
- VERSION = "0.8.1"
5
+ VERSION = "0.8.2"
6
6
  end
@@ -0,0 +1,4 @@
1
+ # TODO: Define it in gem_rbs_collection repository
2
+ class ActiveRecord::Base
3
+ def self.primary_key: () -> String
4
+ end
@@ -12,6 +12,8 @@ class RbsRails::ActiveRecord::Generator
12
12
 
13
13
  def klass_decl: () -> String
14
14
 
15
+ def pk_type: () -> String
16
+
15
17
  def relation_decl: () -> String
16
18
 
17
19
  def collection_proxy_decl: () -> String
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbs_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masataka Pocke Kuwabara
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-08 00:00:00.000000000 Z
11
+ date: 2021-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -45,11 +45,13 @@ executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
+ - ".dependabot/config.yml"
48
49
  - ".github/workflows/ci.yml"
49
50
  - ".gitignore"
50
51
  - ".gitmodules"
51
52
  - CHANGELOG.md
52
53
  - Gemfile
54
+ - Gemfile.lock
53
55
  - LICENSE
54
56
  - README.md
55
57
  - Rakefile
@@ -70,6 +72,7 @@ files:
70
72
  - lib/rbs_rails/util.rb
71
73
  - lib/rbs_rails/version.rb
72
74
  - rbs_rails.gemspec
75
+ - sig/activerecord.rbs
73
76
  - sig/fileutils.rbs
74
77
  - sig/parser.rbs
75
78
  - sig/rake.rbs
@@ -102,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
105
  - !ruby/object:Gem::Version
103
106
  version: '0'
104
107
  requirements: []
105
- rubygems_version: 3.3.0.dev
108
+ rubygems_version: 3.2.3
106
109
  signing_key:
107
110
  specification_version: 4
108
111
  summary: A RBS files generator for Rails application