orthoses-rails 0.6.0 → 0.7.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 (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