orthoses-rails 1.11.1 → 1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f6cec23b07cfba2b5d6108b3514a60bc3d9696a8667c644638f6dc31c2484cda
4
- data.tar.gz: a91ad2d16b6304fced80d26047665621066d835dc0f03839ef2b3df373b9d402
3
+ metadata.gz: 62ba6a107b7b6fcbddef1a769797ec9710fa09afd6e6585094fec64d1e7ac143
4
+ data.tar.gz: 0e7516d44a26f28dca37bb5e79dfdfa1cfdde3f8e5c389706ad96fe53ca45ad0
5
5
  SHA512:
6
- metadata.gz: d17d7086be49d59160d3117948df34ccbd1ad8a07e555cb24b7b4e0fb65725e614d551537855ac93ca7ec43f4b3bdb298fca21e390307c199c73ba4042bca665
7
- data.tar.gz: e91d596092e247486a1936bda8126e0a8378b95040ac51b859e4287814bdfbd84f488b559c5a2c38a3efb71d22f8f3fbeb219476f0a927d98e69ed312321cb6c
6
+ metadata.gz: 676cdb09c4d688e09b77e7cf4fe6d493d28afd3f1b08aebe6e220cf54b6e9cb53ffea48259c3437d2ed27bee61fdcbdfe778745140f0382c68b8f47358176148
7
+ data.tar.gz: f2be7cbbffe4ef3f44245b5ff659e95ff780cadcb13d19b3273517e0084661617d6c7e9468def3c4a2e6871891e82fc895c8b9005f5574ef7be43aaea13674e5
@@ -3,8 +3,9 @@
3
3
  module Orthoses
4
4
  module ActiveSupport
5
5
  class Concern
6
- def initialize(loader)
6
+ def initialize(loader, prototype_members: false)
7
7
  @loader = loader
8
+ @prototype_members = prototype_members
8
9
  end
9
10
 
10
11
  def call
@@ -19,15 +20,19 @@ module Orthoses
19
20
  next unless receiver_name
20
21
 
21
22
  class_methods_name = "#{receiver_name}::ClassMethods"
22
- members = members_prototype_of(class_methods_name)
23
-
24
- writer = ::RBS::Writer.new(out: StringIO.new)
25
- members.each do |member|
26
- writer.write_member(member)
23
+ if @prototype_members
24
+ members = members_prototype_of(class_methods_name)
25
+
26
+ writer = ::RBS::Writer.new(out: StringIO.new)
27
+ members.each do |member|
28
+ writer.write_member(member)
29
+ end
30
+ out = writer.out
31
+ # NOTE: Should I remove the method that is accidentally added in prototype rb?
32
+ store[class_methods_name].concat(out.string.each_line.to_a)
33
+ else
34
+ store[class_methods_name].header = "module #{class_methods_name}"
27
35
  end
28
- out = writer.out
29
- # NOTE: Should I remove the method that is accidentally added in prototype rb?
30
- store[class_methods_name].concat(out.string.each_line.to_a)
31
36
  end
32
37
 
33
38
  store
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Orthoses
4
+ module ActiveSupport
5
+ class CoreExt
6
+ class Concerning
7
+ def initialize(loader)
8
+ @loader = loader
9
+ end
10
+
11
+ def call
12
+ tracer = ::Orthoses::CallTracer::Lazy.new
13
+ tracer.trace('Module::Concerning#concern') do
14
+ @loader.call
15
+ end.tap do |store|
16
+ tracer.captures.each do |capture|
17
+ base = capture.method.receiver
18
+ base_name = ::Orthoses::Utils.module_name(base) or next
19
+ topic = capture.argument[:topic] or next
20
+ store["#{base_name}::#{topic}"].header = "module #{base_name}::#{topic}"
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+ def initialize(loader)
27
+ @loader = loader
28
+ end
29
+
30
+ def call
31
+ @loader = Concerning.new(@loader)
32
+ @loader.call
33
+ end
34
+ end
35
+ end
36
+ end
@@ -4,6 +4,7 @@ require_relative 'active_support/aliasing'
4
4
  require_relative 'active_support/class_attribute'
5
5
  require_relative 'active_support/concern'
6
6
  require_relative 'active_support/configurable'
7
+ require_relative 'active_support/core_ext'
7
8
  require_relative 'active_support/delegation'
8
9
  require_relative 'active_support/mattr_accessor'
9
10
  require_relative 'active_support/time_with_zone'
@@ -43,6 +43,11 @@ module Orthoses
43
43
  use Orthoses::ActiveSupport::Delegation
44
44
  use Orthoses::ActiveSupport::Configurable
45
45
  use Orthoses::ActiveSupport::MattrAccessor
46
+
47
+ if defined?(::Zeitwerk)
48
+ use Orthoses::Zeitwerk
49
+ end
50
+
46
51
  reset_runner loader
47
52
  end.call
48
53
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Orthoses
4
4
  module Rails
5
- VERSION = "1.11.1"
5
+ VERSION = "1.13.0"
6
6
  end
7
7
  end
@@ -9,6 +9,7 @@ require_relative 'active_record'
9
9
  require_relative 'active_storage'
10
10
  require_relative 'active_support'
11
11
  require_relative 'railties'
12
+ require_relative 'zeitwerk'
12
13
 
13
14
  require_relative "rails/application"
14
15
  require_relative "rails/version"
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Orthoses
4
+ class Zeitwerk
5
+ def initialize(loader)
6
+ @loader = loader
7
+ end
8
+
9
+ def call
10
+ tracer = Orthoses::CallTracer::Lazy.new
11
+ tracer.trace('Zeitwerk::Cref#set') do
12
+ @loader.call
13
+ end.tap do |store|
14
+ tracer.captures.each do |capture|
15
+ value = capture.argument[:value]
16
+ name = Orthoses::Utils.module_name(value) or next
17
+ next unless value.is_a?(Module)
18
+
19
+ store[name].header = "module #{name}"
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: orthoses-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.1
4
+ version: 1.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ksss
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-05-23 00:00:00.000000000 Z
10
+ date: 2025-07-17 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: orthoses
@@ -60,6 +60,7 @@ files:
60
60
  - lib/orthoses/active_support/class_attribute.rb
61
61
  - lib/orthoses/active_support/concern.rb
62
62
  - lib/orthoses/active_support/configurable.rb
63
+ - lib/orthoses/active_support/core_ext.rb
63
64
  - lib/orthoses/active_support/delegation.rb
64
65
  - lib/orthoses/active_support/mattr_accessor.rb
65
66
  - lib/orthoses/active_support/time_with_zone.rb
@@ -69,6 +70,7 @@ files:
69
70
  - lib/orthoses/railties.rb
70
71
  - lib/orthoses/railties/mixin.rb
71
72
  - lib/orthoses/shims.rb
73
+ - lib/orthoses/zeitwerk.rb
72
74
  - sig/orthoses/rails.rbs
73
75
  homepage: https://github.com/ksss/orthoses-rails
74
76
  licenses: