orthoses-rails 1.5.0 → 1.6.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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be001c52b4529ffa0f6f8bcd63b6a5870e2ad0074fe7165470d30a53f2cbdae2
|
4
|
+
data.tar.gz: babc339ee1f2d25c9379c6581d51d390de18d4b62b4820f506fad8eab8906a14
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5cf6f00f7da35d259fd62cdc2a13379ccc13a7026c99602d9bb12626cf61b2082a702dc1ee53fd738a164082d62527bdc0526fdb3d01a582e156059cdaa42262
|
7
|
+
data.tar.gz: ccff6c8675c6125ce0c44f63b5e9b8727b439d33314bbafcc9c9dc736825beca6f5a1b6bb554e9f4bbaa2f5e46a8665ba403f782b139456d9d75514af90b65f0
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Orthoses
|
4
|
+
module ActiveRecord
|
5
|
+
class Persistence
|
6
|
+
def initialize(loader)
|
7
|
+
@loader = loader
|
8
|
+
end
|
9
|
+
|
10
|
+
def call
|
11
|
+
@loader.call.tap do |store|
|
12
|
+
::ActiveRecord::Base.descendants.each do |klass|
|
13
|
+
next if klass.abstract_class?
|
14
|
+
base_name = Utils.module_name(klass) or next
|
15
|
+
|
16
|
+
attributes = klass.columns_hash.map do |key, col|
|
17
|
+
req = ActiveRecord.sql_type_to_rbs(col.type)
|
18
|
+
opt = "#{req}?"
|
19
|
+
[key.to_s, col.null ? opt : req]
|
20
|
+
end.to_h
|
21
|
+
|
22
|
+
klass.attribute_aliases.each do |alias_name, column_name|
|
23
|
+
alias_value = attributes[column_name.to_s] or next
|
24
|
+
attributes[alias_name.to_s] = alias_value
|
25
|
+
end
|
26
|
+
|
27
|
+
optional_definitions = attributes.map do |name, type|
|
28
|
+
"?#{name}: #{type}"
|
29
|
+
end.join(", ")
|
30
|
+
|
31
|
+
class_methods_name = "#{base_name}::ActiveRecord_Persistence_ClassMethods"
|
32
|
+
store[base_name] << "extend #{class_methods_name}"
|
33
|
+
store[class_methods_name].header = "module #{class_methods_name}"
|
34
|
+
|
35
|
+
%i[create create! build].each do |method|
|
36
|
+
method = <<~RBS
|
37
|
+
def #{method}: (#{optional_definitions}, **untyped) ?{ (#{base_name}) -> void } -> #{base_name}
|
38
|
+
| (::Array[Hash[Symbol, untyped]]) ?{ (#{base_name}) -> void } -> ::Array[#{base_name}]
|
39
|
+
RBS
|
40
|
+
store[class_methods_name] << method
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -6,6 +6,7 @@ require_relative 'active_record/enum'
|
|
6
6
|
require_relative 'active_record/generated_attribute_methods'
|
7
7
|
require_relative 'active_record/has_many'
|
8
8
|
require_relative 'active_record/has_one'
|
9
|
+
require_relative 'active_record/persistence'
|
9
10
|
require_relative 'active_record/query_methods'
|
10
11
|
require_relative 'active_record/relation'
|
11
12
|
require_relative 'active_record/scope'
|
@@ -28,6 +28,7 @@ module Orthoses
|
|
28
28
|
use Orthoses::ActiveRecord::GeneratedAttributeMethods
|
29
29
|
use Orthoses::ActiveRecord::HasMany
|
30
30
|
use Orthoses::ActiveRecord::HasOne
|
31
|
+
use Orthoses::ActiveRecord::Persistence
|
31
32
|
use Orthoses::ActiveRecord::Relation
|
32
33
|
use Orthoses::ActiveRecord::Scope
|
33
34
|
use Orthoses::ActiveRecord::SecureToken
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: orthoses-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ksss
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-09-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: orthoses
|
@@ -49,6 +49,7 @@ files:
|
|
49
49
|
- lib/orthoses/active_record/generated_attribute_methods.rb
|
50
50
|
- lib/orthoses/active_record/has_many.rb
|
51
51
|
- lib/orthoses/active_record/has_one.rb
|
52
|
+
- lib/orthoses/active_record/persistence.rb
|
52
53
|
- lib/orthoses/active_record/query_methods.rb
|
53
54
|
- lib/orthoses/active_record/relation.rb
|
54
55
|
- lib/orthoses/active_record/scope.rb
|
@@ -91,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
91
92
|
- !ruby/object:Gem::Version
|
92
93
|
version: '0'
|
93
94
|
requirements: []
|
94
|
-
rubygems_version: 3.
|
95
|
+
rubygems_version: 3.3.26
|
95
96
|
signing_key:
|
96
97
|
specification_version: 4
|
97
98
|
summary: Orthoses middleware collection for Ruby on Rails
|