orthoses-rails 0.6.0 → 0.8.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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +24 -23
  3. data/examples/rails/{gemfiles/Gemfile_6_0 → Gemfile} +4 -4
  4. data/examples/rails/{gemfiles/Gemfile_7_0.lock → Gemfile.lock} +83 -76
  5. data/examples/rails/Rakefile +64 -51
  6. data/examples/rails/known_sig/actionpack/7.0/action_controller/metal.rbs +4 -0
  7. data/examples/rails/known_sig/activemodel/7.0/active_model/serialization.rbs +4 -0
  8. data/examples/rails/known_sig/activemodel/7.0/active_model/validations.rbs +4 -0
  9. data/examples/rails/known_sig/activerecord/6.0/_active_record_relation.rbs +49 -0
  10. data/examples/rails/known_sig/activerecord/6.0/_active_record_relation_class_methods.rbs +45 -0
  11. data/examples/rails/known_sig/activerecord/6.0/active_record/result.rbs +5 -0
  12. data/examples/rails/known_sig/activerecord/6.1/_active_record_relation.rbs +49 -0
  13. data/examples/rails/known_sig/activerecord/6.1/_active_record_relation_class_methods.rbs +45 -0
  14. data/examples/rails/known_sig/activerecord/6.1/active_record/result.rbs +5 -0
  15. data/examples/rails/known_sig/activerecord/7.0/_active_record_relation.rbs +49 -0
  16. data/examples/rails/known_sig/activerecord/7.0/_active_record_relation_class_methods.rbs +45 -0
  17. data/examples/rails/known_sig/activerecord/7.0/active_record/encryption/context.rbs +9 -0
  18. data/examples/rails/known_sig/activerecord/7.0/active_record/result.rbs +5 -0
  19. data/examples/rails/known_sig/activesupport/7.0/active_support/callbacks/callback_chain.rbs +9 -0
  20. data/examples/rails/known_sig/activesupport/7.0/active_support/duration.rbs +4 -0
  21. data/examples/rails/known_sig/activesupport/7.0/active_support/hash_with_indifferent_access.rbs +6 -0
  22. data/examples/rails/known_sig/activesupport/7.0/active_support/multibyte/chars.rbs +7 -0
  23. data/examples/rails/known_sig/activesupport/7.0/active_support/time_with_zone.rbs +5 -0
  24. data/examples/rails/known_sig/activesupport/7.0/active_support/time_zone.rbs +3 -0
  25. data/examples/rails/known_sig/activesupport/7.0/date.rbs +6 -0
  26. data/examples/rails/known_sig/activesupport/7.0/date_and_time/zones.rbs +4 -0
  27. data/examples/rails/known_sig/activesupport/7.0/hash_with_indifferent_access.rbs +2 -0
  28. data/examples/rails/known_sig/activesupport/7.0/integer.rbs +9 -0
  29. data/examples/rails/known_sig/activesupport/7.0/numeric.rbs +15 -0
  30. data/examples/rails/known_sig/activesupport/7.0/string.rbs +4 -0
  31. data/examples/rails/known_sig/activesupport/7.0/time.rbs +46 -0
  32. data/examples/rails/tasks/action_pack.rake +141 -0
  33. data/examples/rails/tasks/action_view.rake +77 -0
  34. data/examples/rails/tasks/active_job.rake +5 -1
  35. data/examples/rails/tasks/active_model.rake +1 -1
  36. data/examples/rails/tasks/active_record.rake +7 -2
  37. data/examples/rails/tasks/active_storage.rake +1 -1
  38. data/examples/rails/tasks/active_support.rake +7 -0
  39. data/examples/rails/tasks/railties.rake +34 -0
  40. data/lib/orthoses/active_model/has_secure_password.rb +2 -10
  41. data/lib/orthoses/active_record/delegated_type.rb +2 -8
  42. data/lib/orthoses/active_record/enum.rb +2 -2
  43. data/lib/orthoses/active_record/generated_attribute_methods.rb +1 -0
  44. data/lib/orthoses/active_record/scope.rb +2 -2
  45. data/lib/orthoses/active_support/class_attribute.rb +3 -10
  46. data/lib/orthoses/active_support/concern.rb +46 -0
  47. data/lib/orthoses/active_support/configurable.rb +3 -2
  48. data/lib/orthoses/active_support/delegation.rb +6 -14
  49. data/lib/orthoses/active_support/mattr_accessor.rb +4 -12
  50. data/lib/orthoses/active_support.rb +1 -15
  51. data/lib/orthoses/rails/version.rb +1 -1
  52. data/lib/orthoses/rails.rb +1 -0
  53. data/lib/orthoses/railties/mixin.rb +107 -0
  54. data/lib/orthoses/railties.rb +3 -0
  55. data/orthoses-rails.gemspec +1 -1
  56. metadata +40 -12
  57. data/examples/rails/gemfiles/Gemfile_6_0.lock +0 -172
  58. data/examples/rails/gemfiles/Gemfile_6_1 +0 -15
  59. data/examples/rails/gemfiles/Gemfile_6_1.lock +0 -173
  60. data/examples/rails/gemfiles/Gemfile_7_0 +0 -15
@@ -0,0 +1,34 @@
1
+ stdlib_dependencies = %w[benchmark date digest json logger monitor mutex_m pathname singleton time minitest securerandom ipaddr did_you_mean forwardable openssl socket]
2
+ gem_dependencies = %w[nokogiri i18n rack rails-dom-testing]
3
+ rails_dependencies = %w[actionpack actionview activejob activemodel activerecord activestorage activesupport]
4
+
5
+ VERSIONS.each do |version|
6
+ namespace version do
7
+ namespace :railties do
8
+ export = "export/railties/#{version}"
9
+
10
+ desc "export to #{export}"
11
+ task :export do
12
+ sh "rm -fr #{export}"
13
+ sh "mkdir -p #{export}"
14
+
15
+ sh "cp -a out/#{version}/railties_mixin #{export}"
16
+ end
17
+
18
+ desc "validate version=#{version} gem=railties"
19
+ task :validate do
20
+ stdlib_opt = stdlib_dependencies.map{"-r #{_1}"}.join(" ")
21
+ gem_opt = gem_dependencies.map{"-I ../../.gem_rbs_collection/#{_1}"}.join(" ")
22
+ rails_opt = rails_dependencies.map{"-I export/#{_1}/#{version}"}.join(" ")
23
+ sh "rbs #{stdlib_opt} #{gem_opt} #{rails_opt} -I #{export} validate --silent"
24
+ end
25
+
26
+ desc "install to ../../../gems/railties/#{version}"
27
+ task :install do
28
+ install_to = File.expand_path("../../../gems/railties/#{version}", __dir__)
29
+ sh "rm -fr #{install_to}"
30
+ sh "cp -a #{export} #{install_to}"
31
+ end
32
+ end
33
+ end
34
+ end
@@ -13,17 +13,9 @@ module Orthoses
13
13
  end
14
14
 
15
15
  def call
16
- target_method = begin
17
- ::ActiveModel::SecurePassword::ClassMethods.instance_method(:has_secure_password)
18
- rescue NameError => err
19
- Orthoses.logger.warn("Run `require 'active_support/concern'; require 'active_model/secure_password'` and retry because #{err}")
20
- require 'active_support/concern'
21
- require 'active_model/secure_password'
22
- retry
23
- end
24
- call_tracer = Orthoses::CallTracer.new
16
+ call_tracer = CallTracer::Lazy.new
25
17
 
26
- store = call_tracer.trace(target_method) do
18
+ store = call_tracer.trace('ActiveModel::SecurePassword::ClassMethods#has_secure_password') do
27
19
  @loader.call
28
20
  end
29
21
 
@@ -12,14 +12,8 @@ module Orthoses
12
12
  end
13
13
 
14
14
  def call
15
- target = begin
16
- ::ActiveRecord::DelegatedType.instance_method(:delegated_type)
17
- rescue NameError
18
- Orthoses.logger.warn("[ActiveRecord::DelegatedType] Skip since `delegated_type' is not implemented")
19
- return @loader.call
20
- end
21
- delegated_type = CallTracer.new
22
- store = delegated_type.trace(target) do
15
+ delegated_type = CallTracer::Lazy.new
16
+ store = delegated_type.trace('ActiveRecord::DelegatedType#delegated_type') do
23
17
  @loader.call
24
18
  end
25
19
 
@@ -12,8 +12,8 @@ module Orthoses
12
12
  end
13
13
 
14
14
  def call
15
- enum = CallTracer.new
16
- store = enum.trace(::ActiveRecord::Enum.instance_method(:enum)) do
15
+ enum = CallTracer::Lazy.new
16
+ store = enum.trace('ActiveRecord::Enum#enum') do
17
17
  @loader.call
18
18
  end
19
19
 
@@ -42,6 +42,7 @@ module Orthoses
42
42
  generated_attribute_methods = "#{name}::AttributeMethods::GeneratedAttributeMethods"
43
43
  store[name] << "include #{generated_attribute_methods}"
44
44
 
45
+ store["#{name}::AttributeMethods"].header = "module #{name}::AttributeMethods"
45
46
  store[generated_attribute_methods].header = "module #{generated_attribute_methods}"
46
47
  store[generated_attribute_methods].concat(lines)
47
48
  end
@@ -9,8 +9,8 @@ module Orthoses
9
9
  end
10
10
 
11
11
  def call
12
- scope = CallTracer.new
13
- store = scope.trace(::ActiveRecord::Scoping::Named::ClassMethods.instance_method(:scope)) do
12
+ scope = CallTracer::Lazy.new
13
+ store = scope.trace('ActiveRecord::Scoping::Named::ClassMethods#scope') do
14
14
  @loader.call
15
15
  end
16
16
 
@@ -15,20 +15,13 @@ module Orthoses
15
15
  end
16
16
 
17
17
  def call
18
- target_method = begin
19
- ::Class.instance_method(:class_attribute)
20
- rescue NameError => err
21
- Orthoses.logger.warn("Run `require 'active_support/core_ext/class/attribute'` and retry because #{err}")
22
- require 'active_support/core_ext/class/attribute'
23
- retry
24
- end
25
- call_tracer = Orthoses::CallTracer.new
18
+ lazy_tracer = Orthoses::CallTracer::Lazy.new
26
19
 
27
- store = call_tracer.trace(target_method) do
20
+ store = lazy_tracer.trace('Class#class_attribute') do
28
21
  @loader.call
29
22
  end
30
23
 
31
- call_tracer.captures.each do |capture|
24
+ lazy_tracer.captures.each do |capture|
32
25
  receiver_name = Orthoses::Utils.module_name(capture.method.receiver)
33
26
  next unless receiver_name
34
27
 
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Orthoses
4
+ module ActiveSupport
5
+ class Concern
6
+ def initialize(loader)
7
+ @loader = loader
8
+ end
9
+
10
+ def call
11
+ lazy_tracer = Orthoses::CallTracer::Lazy.new
12
+
13
+ store = lazy_tracer.trace('ActiveSupport::Concern#class_methods') do
14
+ @loader.call
15
+ end
16
+
17
+ lazy_tracer.captures.each do |capture|
18
+ receiver_name = Orthoses::Utils.module_name(capture.method.receiver)
19
+ next unless receiver_name
20
+
21
+ 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)
27
+ 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
+ end
32
+
33
+ store
34
+ end
35
+
36
+ def members_prototype_of(mod_name)
37
+ mod = Object.const_get(mod_name)
38
+ runtime = ::RBS::Prototype::Runtime.new(patterns: nil, env: nil, merge: false)
39
+ type_name = runtime.to_type_name(mod_name)
40
+ [].tap do |members|
41
+ runtime.generate_methods(mod, type_name, members)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -12,8 +12,9 @@ module Orthoses
12
12
  end
13
13
 
14
14
  def call
15
- config_accessor = CallTracer.new
16
- store = config_accessor.trace(::ActiveSupport::Configurable::ClassMethods.instance_method(:config_accessor)) do
15
+ config_accessor = CallTracer::Lazy.new
16
+
17
+ store = config_accessor.trace('ActiveSupport::Configurable::ClassMethods#config_accessor') do
17
18
  @loader.call
18
19
  end
19
20
  config_accessor.captures.each do |capture|
@@ -10,15 +10,8 @@ module Orthoses
10
10
  # def delegate(*methods, to: nil, prefix: nil, allow_nil: nil, private: nil)
11
11
  # def delegate_missing_to(target, allow_nil: nil)
12
12
  def call
13
- target_method = begin
14
- ::Module.method(:delegate)
15
- rescue NameError => err
16
- Orthoses.logger.warn("Run `require 'active_support/core_ext/module/delegation'` and retry because #{err}")
17
- require 'active_support/core_ext/module/delegation'
18
- retry
19
- end
20
- delegate = CallTracer.new
21
- store = delegate.trace(target_method) do
13
+ delegate = CallTracer::Lazy.new
14
+ store = delegate.trace('Module#delegate') do
22
15
  @loader.call
23
16
  end
24
17
 
@@ -27,6 +20,7 @@ module Orthoses
27
20
  delegate.captures.each do |capture|
28
21
  receiver_name = Utils.module_name(capture.method.receiver) or next
29
22
  receiver_content = store[receiver_name]
23
+
30
24
  case capture.argument[:to]
31
25
  when Module
32
26
  to_module_name = Utils.module_name(capture.argument[:to]) or next
@@ -42,11 +36,9 @@ module Orthoses
42
36
  to_name = capture.argument[:to].to_s.to_sym
43
37
  tag, to_return_type = resource.find(receiver_name, to_name, :instance, false)
44
38
  raise "bug" if tag == :multi
45
- if to_return_type.nil?
46
- Orthoses.logger.warn("[ActiveSupport::Delegation] Ignore since missing type for #{receiver_name}##{to_name.inspect} in #{capture.argument.inspect}")
47
- next
48
- end
49
- if to_return_type.instance_of?(RBS::Types::Bases::Any)
39
+
40
+ case to_return_type
41
+ when nil, RBS::Types::Bases::Any
50
42
  capture.argument[:methods].each do |method|
51
43
  receiver_content << "# defined by `delegate` to: #{to_return_type}##{to_name}"
52
44
  receiver_content << "def #{method}: (*untyped, **untyped) -> untyped"
@@ -13,11 +13,11 @@ module Orthoses
13
13
  end
14
14
 
15
15
  def call
16
- mattr_reader = Orthoses::CallTracer.new
17
- mattr_writer = Orthoses::CallTracer.new
16
+ mattr_reader = CallTracer::Lazy.new
17
+ mattr_writer = CallTracer::Lazy.new
18
18
 
19
- store = mattr_reader.trace(target_method(:mattr_reader)) do
20
- mattr_writer.trace(target_method(:mattr_writer)) do
19
+ store = mattr_reader.trace('Module#mattr_reader') do
20
+ mattr_writer.trace('Module#mattr_writer') do
21
21
  @loader.call
22
22
  end
23
23
  end
@@ -56,14 +56,6 @@ module Orthoses
56
56
 
57
57
  store
58
58
  end
59
-
60
- def target_method(name)
61
- ::Module.instance_method(name)
62
- rescue NameError => err
63
- Orthoses.logger.warn("Run `require 'active_support/core_ext/module/attribute_accessors'` and retry because #{err}")
64
- require 'active_support/core_ext/module/attribute_accessors'
65
- retry
66
- end
67
59
  end
68
60
  end
69
61
  end
@@ -1,22 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'active_support/class_attribute'
4
+ require_relative 'active_support/concern'
4
5
  require_relative 'active_support/configurable'
5
6
  require_relative 'active_support/delegation'
6
7
  require_relative 'active_support/mattr_accessor'
7
8
  require_relative 'active_support/time_with_zone'
8
-
9
- module Orthoses
10
- module ActiveSupport
11
- # Interface for adding middleware in bulk.
12
- # Orthoses::ActiveSupport.each do |middleware, **args|
13
- # use middleware, **args
14
- # end
15
- def self.each
16
- yield ClassAttribute
17
- yield Delegation
18
- yield MattrAccessor
19
- yield TimeWithZone
20
- end
21
- end
22
- end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Orthoses
4
4
  module Rails
5
- VERSION = "0.6.0"
5
+ VERSION = "0.8.0"
6
6
  end
7
7
  end
@@ -7,3 +7,4 @@ require_relative "rails/version"
7
7
  require_relative 'active_model'
8
8
  require_relative 'active_record'
9
9
  require_relative 'active_support'
10
+ require_relative 'railties'
@@ -0,0 +1,107 @@
1
+ module Orthoses
2
+ module Railties
3
+ class Mixin
4
+ class MultiTracer
5
+ module Hook
6
+ def include(*mods)
7
+ super
8
+ end
9
+ def extend(*mods)
10
+ super
11
+ end
12
+ def prepend(*mods)
13
+ super
14
+ end
15
+ end
16
+
17
+ class MiniTracer
18
+ attr_reader :captures
19
+
20
+ def initialize
21
+ @depth = []
22
+ @captures = []
23
+ @tp = TracePoint.new(:call) do |tp|
24
+ if @depth.length > 0
25
+ @captures << [tp.self, tp.method_id, tp.binding.local_variable_get(:mods)]
26
+ end
27
+ end
28
+ end
29
+
30
+ def trace(target:, &block)
31
+ @tp.enable(target: target, &block)
32
+ end
33
+
34
+ def push
35
+ @depth << true
36
+ end
37
+
38
+ def pop
39
+ @depth.pop
40
+ end
41
+ end
42
+
43
+ def initialize
44
+ ::Module.prepend(Hook)
45
+ @run = LazyTracePoint.new(:call, :return) do |tp|
46
+ case tp.event
47
+ when :call
48
+ @include.push
49
+ @extend.push
50
+ @prepend.push
51
+ when :return
52
+ @include.pop
53
+ @extend.pop
54
+ @prepend.pop
55
+ end
56
+ end
57
+ @include = MiniTracer.new
58
+ @extend = MiniTracer.new
59
+ @prepend = MiniTracer.new
60
+ end
61
+
62
+ def trace
63
+ @run.enable(target: 'ActiveSupport::LazyLoadHooks#execute_hook') do
64
+ @include.trace(target: Hook.instance_method(:include)) do
65
+ @extend.trace(target: Hook.instance_method(:extend)) do
66
+ @prepend.trace(target: Hook.instance_method(:prepend)) do
67
+ yield
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
73
+
74
+ def captures
75
+ @include.captures.concat(@extend.captures).concat(@prepend.captures)
76
+ end
77
+ end # MultiTracer
78
+
79
+ def initialize(loader, callback:)
80
+ @loader = loader
81
+ @callback = callback
82
+ end
83
+
84
+ def call
85
+ multi_tracer = MultiTracer.new
86
+ store = multi_tracer.trace do
87
+ @loader.call
88
+ end
89
+
90
+ railties_mixin = Utils.new_store
91
+
92
+ multi_tracer.captures.each do |base_mod, how, mods|
93
+ base_mod_name = Utils.module_name(base_mod) or next
94
+ mod_names = mods.map { |mod| Utils.module_name(mod) }.compact
95
+ mod_names.each do |mod_name|
96
+ store[base_mod_name].delete("#{how} #{mod_name}")
97
+ railties_mixin[base_mod_name] << "#{how} #{mod_name}"
98
+ end
99
+ end
100
+
101
+ @callback.call(railties_mixin)
102
+
103
+ store
104
+ end
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'railties/mixin'
@@ -32,5 +32,5 @@ Gem::Specification.new do |spec|
32
32
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
33
33
  spec.require_paths = ["lib"]
34
34
 
35
- spec.add_dependency "orthoses", ">= 0.10"
35
+ spec.add_dependency "orthoses", "~> 1.0"
36
36
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: orthoses-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ksss
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-07-01 00:00:00.000000000 Z
11
+ date: 2022-10-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: orthoses
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.10'
19
+ version: '1.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.10'
26
+ version: '1.0'
27
27
  description: Orthoses middleware collection for Ruby on Rails
28
28
  email:
29
29
  - co000ri@gmail.com
@@ -34,20 +34,45 @@ files:
34
34
  - CODE_OF_CONDUCT.md
35
35
  - LICENSE.txt
36
36
  - README.md
37
+ - examples/rails/Gemfile
38
+ - examples/rails/Gemfile.lock
37
39
  - examples/rails/Rakefile
38
40
  - examples/rails/config/database.yml
39
41
  - examples/rails/config/storage.yml
40
- - examples/rails/gemfiles/Gemfile_6_0
41
- - examples/rails/gemfiles/Gemfile_6_0.lock
42
- - examples/rails/gemfiles/Gemfile_6_1
43
- - examples/rails/gemfiles/Gemfile_6_1.lock
44
- - examples/rails/gemfiles/Gemfile_7_0
45
- - examples/rails/gemfiles/Gemfile_7_0.lock
42
+ - examples/rails/known_sig/actionpack/7.0/action_controller/metal.rbs
43
+ - examples/rails/known_sig/activemodel/7.0/active_model/serialization.rbs
44
+ - examples/rails/known_sig/activemodel/7.0/active_model/validations.rbs
45
+ - examples/rails/known_sig/activerecord/6.0/_active_record_relation.rbs
46
+ - examples/rails/known_sig/activerecord/6.0/_active_record_relation_class_methods.rbs
47
+ - examples/rails/known_sig/activerecord/6.0/active_record/result.rbs
48
+ - examples/rails/known_sig/activerecord/6.1/_active_record_relation.rbs
49
+ - examples/rails/known_sig/activerecord/6.1/_active_record_relation_class_methods.rbs
50
+ - examples/rails/known_sig/activerecord/6.1/active_record/result.rbs
51
+ - examples/rails/known_sig/activerecord/7.0/_active_record_relation.rbs
52
+ - examples/rails/known_sig/activerecord/7.0/_active_record_relation_class_methods.rbs
53
+ - examples/rails/known_sig/activerecord/7.0/active_record/encryption/context.rbs
54
+ - examples/rails/known_sig/activerecord/7.0/active_record/result.rbs
55
+ - examples/rails/known_sig/activesupport/7.0/active_support/callbacks/callback_chain.rbs
56
+ - examples/rails/known_sig/activesupport/7.0/active_support/duration.rbs
57
+ - examples/rails/known_sig/activesupport/7.0/active_support/hash_with_indifferent_access.rbs
58
+ - examples/rails/known_sig/activesupport/7.0/active_support/multibyte/chars.rbs
59
+ - examples/rails/known_sig/activesupport/7.0/active_support/time_with_zone.rbs
60
+ - examples/rails/known_sig/activesupport/7.0/active_support/time_zone.rbs
61
+ - examples/rails/known_sig/activesupport/7.0/date.rbs
62
+ - examples/rails/known_sig/activesupport/7.0/date_and_time/zones.rbs
63
+ - examples/rails/known_sig/activesupport/7.0/hash_with_indifferent_access.rbs
64
+ - examples/rails/known_sig/activesupport/7.0/integer.rbs
65
+ - examples/rails/known_sig/activesupport/7.0/numeric.rbs
66
+ - examples/rails/known_sig/activesupport/7.0/string.rbs
67
+ - examples/rails/known_sig/activesupport/7.0/time.rbs
68
+ - examples/rails/tasks/action_pack.rake
69
+ - examples/rails/tasks/action_view.rake
46
70
  - examples/rails/tasks/active_job.rake
47
71
  - examples/rails/tasks/active_model.rake
48
72
  - examples/rails/tasks/active_record.rake
49
73
  - examples/rails/tasks/active_storage.rake
50
74
  - examples/rails/tasks/active_support.rake
75
+ - examples/rails/tasks/railties.rake
51
76
  - lib/orthoses-rails.rb
52
77
  - lib/orthoses/active_model.rb
53
78
  - lib/orthoses/active_model/has_secure_password.rb
@@ -62,12 +87,15 @@ files:
62
87
  - lib/orthoses/active_record/scope.rb
63
88
  - lib/orthoses/active_support.rb
64
89
  - lib/orthoses/active_support/class_attribute.rb
90
+ - lib/orthoses/active_support/concern.rb
65
91
  - lib/orthoses/active_support/configurable.rb
66
92
  - lib/orthoses/active_support/delegation.rb
67
93
  - lib/orthoses/active_support/mattr_accessor.rb
68
94
  - lib/orthoses/active_support/time_with_zone.rb
69
95
  - lib/orthoses/rails.rb
70
96
  - lib/orthoses/rails/version.rb
97
+ - lib/orthoses/railties.rb
98
+ - lib/orthoses/railties/mixin.rb
71
99
  - orthoses-rails.gemspec
72
100
  - sig/orthoses/rails.rbs
73
101
  homepage: https://github.com/ksss/orthoses-rails