orthoses-rails 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/examples/rails/{gemfiles/Gemfile_6_0 → Gemfile} +4 -4
  3. data/examples/rails/{gemfiles/Gemfile_7_0.lock → Gemfile.lock} +80 -74
  4. data/examples/rails/Rakefile +53 -39
  5. data/examples/rails/known_sig/actionpack/7.0/action_controller/metal.rbs +4 -0
  6. data/examples/rails/known_sig/activemodel/7.0/active_model/serialization.rbs +4 -0
  7. data/examples/rails/known_sig/activemodel/7.0/active_model/validations.rbs +4 -0
  8. data/examples/rails/known_sig/activerecord/6.0/_active_record_relation.rbs +49 -0
  9. data/examples/rails/known_sig/activerecord/6.0/_active_record_relation_class_methods.rbs +45 -0
  10. data/examples/rails/known_sig/activerecord/6.0/active_record/result.rbs +5 -0
  11. data/examples/rails/known_sig/activerecord/6.1/_active_record_relation.rbs +49 -0
  12. data/examples/rails/known_sig/activerecord/6.1/_active_record_relation_class_methods.rbs +45 -0
  13. data/examples/rails/known_sig/activerecord/6.1/active_record/result.rbs +5 -0
  14. data/examples/rails/known_sig/activerecord/7.0/_active_record_relation.rbs +49 -0
  15. data/examples/rails/known_sig/activerecord/7.0/_active_record_relation_class_methods.rbs +45 -0
  16. data/examples/rails/known_sig/activerecord/7.0/active_record/encryption/context.rbs +9 -0
  17. data/examples/rails/known_sig/activerecord/7.0/active_record/result.rbs +5 -0
  18. data/examples/rails/known_sig/activesupport/7.0/active_support/callbacks/callback_chain.rbs +9 -0
  19. data/examples/rails/known_sig/activesupport/7.0/active_support/duration.rbs +4 -0
  20. data/examples/rails/known_sig/activesupport/7.0/active_support/hash_with_indifferent_access.rbs +6 -0
  21. data/examples/rails/known_sig/activesupport/7.0/active_support/multibyte/chars.rbs +7 -0
  22. data/examples/rails/known_sig/activesupport/7.0/active_support/time_with_zone.rbs +5 -0
  23. data/examples/rails/known_sig/activesupport/7.0/active_support/time_zone.rbs +3 -0
  24. data/examples/rails/known_sig/activesupport/7.0/date.rbs +6 -0
  25. data/examples/rails/known_sig/activesupport/7.0/date_and_time/zones.rbs +4 -0
  26. data/examples/rails/known_sig/activesupport/7.0/hash_with_indifferent_access.rbs +2 -0
  27. data/examples/rails/known_sig/activesupport/7.0/integer.rbs +9 -0
  28. data/examples/rails/known_sig/activesupport/7.0/numeric.rbs +15 -0
  29. data/examples/rails/known_sig/activesupport/7.0/string.rbs +4 -0
  30. data/examples/rails/known_sig/activesupport/7.0/time.rbs +76 -0
  31. data/examples/rails/tasks/action_pack.rake +141 -0
  32. data/examples/rails/tasks/action_view.rake +77 -0
  33. data/examples/rails/tasks/active_job.rake +5 -1
  34. data/examples/rails/tasks/active_model.rake +1 -1
  35. data/examples/rails/tasks/active_record.rake +7 -2
  36. data/examples/rails/tasks/active_storage.rake +1 -1
  37. data/examples/rails/tasks/active_support.rake +7 -0
  38. data/examples/rails/tasks/railties.rake +37 -0
  39. data/lib/orthoses/active_model/has_secure_password.rb +2 -10
  40. data/lib/orthoses/active_record/delegated_type.rb +2 -8
  41. data/lib/orthoses/active_record/enum.rb +2 -2
  42. data/lib/orthoses/active_record/generated_attribute_methods.rb +1 -0
  43. data/lib/orthoses/active_record/scope.rb +2 -2
  44. data/lib/orthoses/active_support/class_attribute.rb +3 -10
  45. data/lib/orthoses/active_support/configurable.rb +3 -2
  46. data/lib/orthoses/active_support/delegation.rb +6 -14
  47. data/lib/orthoses/active_support/mattr_accessor.rb +4 -12
  48. data/lib/orthoses/active_support.rb +0 -15
  49. data/lib/orthoses/rails/version.rb +1 -1
  50. data/lib/orthoses/rails.rb +1 -0
  51. data/lib/orthoses/railties/mixin.rb +107 -0
  52. data/lib/orthoses/railties.rb +3 -0
  53. data/orthoses-rails.gemspec +1 -1
  54. metadata +38 -11
  55. data/examples/rails/gemfiles/Gemfile_6_0.lock +0 -172
  56. data/examples/rails/gemfiles/Gemfile_6_1 +0 -15
  57. data/examples/rails/gemfiles/Gemfile_6_1.lock +0 -173
  58. data/examples/rails/gemfiles/Gemfile_7_0 +0 -15
@@ -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
 
@@ -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
@@ -5,18 +5,3 @@ require_relative 'active_support/configurable'
5
5
  require_relative 'active_support/delegation'
6
6
  require_relative 'active_support/mattr_accessor'
7
7
  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.7.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", ">= 0.11"
36
36
  end
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: 0.6.0
4
+ version: 0.7.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-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: orthoses
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0.10'
19
+ version: '0.11'
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: '0.11'
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
@@ -68,6 +93,8 @@ files:
68
93
  - lib/orthoses/active_support/time_with_zone.rb
69
94
  - lib/orthoses/rails.rb
70
95
  - lib/orthoses/rails/version.rb
96
+ - lib/orthoses/railties.rb
97
+ - lib/orthoses/railties/mixin.rb
71
98
  - orthoses-rails.gemspec
72
99
  - sig/orthoses/rails.rbs
73
100
  homepage: https://github.com/ksss/orthoses-rails
@@ -92,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
119
  - !ruby/object:Gem::Version
93
120
  version: '0'
94
121
  requirements: []
95
- rubygems_version: 3.3.16
122
+ rubygems_version: 3.4.0.dev
96
123
  signing_key:
97
124
  specification_version: 4
98
125
  summary: Orthoses middleware collection for Ruby on Rails
@@ -1,172 +0,0 @@
1
- PATH
2
- remote: ../../..
3
- specs:
4
- orthoses-rails (0.4.0)
5
- orthoses (>= 0.10)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- actioncable (6.0.5)
11
- actionpack (= 6.0.5)
12
- nio4r (~> 2.0)
13
- websocket-driver (>= 0.6.1)
14
- actionmailbox (6.0.5)
15
- actionpack (= 6.0.5)
16
- activejob (= 6.0.5)
17
- activerecord (= 6.0.5)
18
- activestorage (= 6.0.5)
19
- activesupport (= 6.0.5)
20
- mail (>= 2.7.1)
21
- actionmailer (6.0.5)
22
- actionpack (= 6.0.5)
23
- actionview (= 6.0.5)
24
- activejob (= 6.0.5)
25
- mail (~> 2.5, >= 2.5.4)
26
- rails-dom-testing (~> 2.0)
27
- actionpack (6.0.5)
28
- actionview (= 6.0.5)
29
- activesupport (= 6.0.5)
30
- rack (~> 2.0, >= 2.0.8)
31
- rack-test (>= 0.6.3)
32
- rails-dom-testing (~> 2.0)
33
- rails-html-sanitizer (~> 1.0, >= 1.2.0)
34
- actiontext (6.0.5)
35
- actionpack (= 6.0.5)
36
- activerecord (= 6.0.5)
37
- activestorage (= 6.0.5)
38
- activesupport (= 6.0.5)
39
- nokogiri (>= 1.8.5)
40
- actionview (6.0.5)
41
- activesupport (= 6.0.5)
42
- builder (~> 3.1)
43
- erubi (~> 1.4)
44
- rails-dom-testing (~> 2.0)
45
- rails-html-sanitizer (~> 1.1, >= 1.2.0)
46
- activejob (6.0.5)
47
- activesupport (= 6.0.5)
48
- globalid (>= 0.3.6)
49
- activemodel (6.0.5)
50
- activesupport (= 6.0.5)
51
- activerecord (6.0.5)
52
- activemodel (= 6.0.5)
53
- activesupport (= 6.0.5)
54
- activestorage (6.0.5)
55
- actionpack (= 6.0.5)
56
- activejob (= 6.0.5)
57
- activerecord (= 6.0.5)
58
- marcel (~> 1.0)
59
- activesupport (6.0.5)
60
- concurrent-ruby (~> 1.0, >= 1.0.2)
61
- i18n (>= 0.7, < 2)
62
- minitest (~> 5.1)
63
- tzinfo (~> 1.1)
64
- zeitwerk (~> 2.2, >= 2.2.2)
65
- builder (3.2.4)
66
- concurrent-ruby (1.1.10)
67
- crass (1.0.6)
68
- digest (3.1.0)
69
- erubi (1.10.0)
70
- globalid (1.0.0)
71
- activesupport (>= 5.0)
72
- i18n (1.10.0)
73
- concurrent-ruby (~> 1.0)
74
- loofah (2.18.0)
75
- crass (~> 1.0.2)
76
- nokogiri (>= 1.5.9)
77
- mail (2.7.1)
78
- mini_mime (>= 0.1.1)
79
- marcel (1.0.2)
80
- method_source (1.0.0)
81
- mini_mime (1.1.2)
82
- mini_portile2 (2.8.0)
83
- minitest (5.16.1)
84
- net-imap (0.2.3)
85
- digest
86
- net-protocol
87
- strscan
88
- net-pop (0.1.1)
89
- digest
90
- net-protocol
91
- timeout
92
- net-protocol (0.1.3)
93
- timeout
94
- net-smtp (0.3.1)
95
- digest
96
- net-protocol
97
- timeout
98
- nio4r (2.5.8)
99
- nokogiri (1.13.6)
100
- mini_portile2 (~> 2.8.0)
101
- racc (~> 1.4)
102
- orthoses (0.10.0)
103
- rbs (~> 2.0)
104
- psych (3.3.2)
105
- racc (1.6.0)
106
- rack (2.2.3.1)
107
- rack-test (2.0.0)
108
- rack (>= 1.3)
109
- rails (6.0.5)
110
- actioncable (= 6.0.5)
111
- actionmailbox (= 6.0.5)
112
- actionmailer (= 6.0.5)
113
- actionpack (= 6.0.5)
114
- actiontext (= 6.0.5)
115
- actionview (= 6.0.5)
116
- activejob (= 6.0.5)
117
- activemodel (= 6.0.5)
118
- activerecord (= 6.0.5)
119
- activestorage (= 6.0.5)
120
- activesupport (= 6.0.5)
121
- bundler (>= 1.3.0)
122
- railties (= 6.0.5)
123
- sprockets-rails (>= 2.0.0)
124
- rails-dom-testing (2.0.3)
125
- activesupport (>= 4.2.0)
126
- nokogiri (>= 1.6)
127
- rails-html-sanitizer (1.4.3)
128
- loofah (~> 2.3)
129
- railties (6.0.5)
130
- actionpack (= 6.0.5)
131
- activesupport (= 6.0.5)
132
- method_source
133
- rake (>= 0.8.7)
134
- thor (>= 0.20.3, < 2.0)
135
- rake (13.0.6)
136
- rbs (2.6.0)
137
- sprockets (4.1.0)
138
- concurrent-ruby (~> 1.0)
139
- rack (> 1, < 3)
140
- sprockets-rails (3.4.2)
141
- actionpack (>= 5.2)
142
- activesupport (>= 5.2)
143
- sprockets (>= 3.0.0)
144
- sqlite3 (1.4.4)
145
- strscan (3.0.3)
146
- thor (1.2.1)
147
- thread_safe (0.3.6)
148
- timeout (0.3.0)
149
- tzinfo (1.2.9)
150
- thread_safe (~> 0.1)
151
- websocket-driver (0.7.5)
152
- websocket-extensions (>= 0.1.0)
153
- websocket-extensions (0.1.5)
154
- zeitwerk (2.6.0)
155
-
156
- PLATFORMS
157
- ruby
158
-
159
- DEPENDENCIES
160
- net-imap
161
- net-pop
162
- net-smtp
163
- orthoses-rails!
164
- psych (~> 3)
165
- rails (>= 6.0, < 6.1)
166
- sqlite3
167
-
168
- RUBY VERSION
169
- ruby 3.1.1p18
170
-
171
- BUNDLED WITH
172
- 2.3.9
@@ -1,15 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- ruby "~> 3.1.0"
4
-
5
- gemspec path: '../../../'
6
-
7
- gem "rails", ">= 6.1", "< 7"
8
- gem "sqlite3"
9
- # gem "orthoses", path: "../../../../orthoses"
10
-
11
- if RUBY_VERSION >= "3.1"
12
- gem "net-smtp", require: false
13
- gem "net-imap", require: false
14
- gem "net-pop", require: false
15
- end