orthoses-rails 0.6.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
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