active_recall 1.8.6 → 2.0.1
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 +4 -4
- data/.github/workflows/tests.yml +11 -7
- data/.tool-versions +1 -1
- data/Appraisals +15 -0
- data/Gemfile.lock +169 -9
- data/README.md +14 -4
- data/active_recall.gemspec +5 -3
- data/bin/setup +1 -0
- data/bin/spec +14 -0
- data/gemfiles/rails_6_0.gemfile +7 -0
- data/gemfiles/rails_6_0.gemfile.lock +189 -0
- data/gemfiles/rails_6_1.gemfile +7 -0
- data/gemfiles/rails_6_1.gemfile.lock +189 -0
- data/gemfiles/rails_7_0.gemfile +7 -0
- data/gemfiles/rails_7_0.gemfile.lock +216 -0
- data/gemfiles/rails_7_1.gemfile +7 -0
- data/gemfiles/rails_7_1.gemfile.lock +216 -0
- data/lib/active_recall/algorithms/fibonacci_sequence.rb +9 -0
- data/lib/active_recall/algorithms/leitner_system.rb +10 -1
- data/lib/active_recall/algorithms/sm2.rb +97 -0
- data/lib/active_recall/algorithms/soft_leitner_system.rb +10 -1
- data/lib/active_recall/item_methods.rb +4 -0
- data/lib/active_recall/models/item.rb +23 -3
- data/lib/active_recall/version.rb +1 -1
- data/lib/active_recall.rb +3 -0
- data/lib/generators/active_recall/active_recall_generator.rb +1 -0
- data/lib/generators/active_recall/templates/add_active_recall_item_easiness_factor.rb +11 -0
- metadata +58 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1be7449fff68fa72825e50fd75ac16c5e66c289b8478aa6b5777492a6d15f84c
|
4
|
+
data.tar.gz: 60a2523b2e4ea54a3cceebc442be03a36bfae90a8047d77bc96df17fe3f12e2c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 04fc13601da77c775765ff7e465010a9227d367dcfe4e7dd2eac0b7faf92461d2377ce106b1b03b1c14538e36ce9ab3c63d906b46fa1885f6eec784547aa3231
|
7
|
+
data.tar.gz: 3c663fbd9f5f5d14b040eefd4ad7dbe0c8ba58fcd2b5c90445658c3512c1c80a86da8bd91601ad219eb1043764cb5d221f9a35e2f45d5d7feb53398a20f1dc00
|
data/.github/workflows/tests.yml
CHANGED
@@ -19,16 +19,12 @@ jobs:
|
|
19
19
|
- macos
|
20
20
|
- ubuntu
|
21
21
|
ruby:
|
22
|
-
- 2.7
|
23
22
|
- 3.0
|
24
23
|
- 3.1
|
25
24
|
- 3.2
|
25
|
+
- 3.3
|
26
26
|
allow_failures:
|
27
27
|
- false
|
28
|
-
include:
|
29
|
-
- os: ubuntu
|
30
|
-
ruby: ruby-head
|
31
|
-
allow_failures: false
|
32
28
|
env:
|
33
29
|
BUNDLE_GEMFILE: "${{ matrix.gemfile }}"
|
34
30
|
ALLOW_FAILURES: "${{ matrix.allow_failures }}"
|
@@ -42,5 +38,13 @@ jobs:
|
|
42
38
|
with:
|
43
39
|
ruby-version: ${{ matrix.ruby }}
|
44
40
|
bundler-cache: true
|
45
|
-
- name:
|
46
|
-
run: bundle exec
|
41
|
+
- name: Install Appraisal Dependencies
|
42
|
+
run: bundle exec appraisal install
|
43
|
+
- name: Test with Rails 6.0
|
44
|
+
run: bundle exec appraisal rails-6-0 rake spec
|
45
|
+
- name: Test with Rails 6.1
|
46
|
+
run: bundle exec appraisal rails-6-1 rake spec
|
47
|
+
- name: Test with Rails 7.0
|
48
|
+
run: bundle exec appraisal rails-7-0 rake spec
|
49
|
+
- name: Test with Rails 7.0
|
50
|
+
run: bundle exec appraisal rails-7-0 rake spec
|
data/.tool-versions
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby 3.
|
1
|
+
ruby 3.3.0
|
data/Appraisals
ADDED
data/Gemfile.lock
CHANGED
@@ -1,30 +1,180 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
active_recall (
|
5
|
-
activerecord (>=
|
6
|
-
activesupport (>=
|
4
|
+
active_recall (2.0.1)
|
5
|
+
activerecord (>= 6.0, <= 7.2)
|
6
|
+
activesupport (>= 6.0, <= 7.2)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
11
|
+
actioncable (7.1.3)
|
12
|
+
actionpack (= 7.1.3)
|
13
|
+
activesupport (= 7.1.3)
|
14
|
+
nio4r (~> 2.0)
|
15
|
+
websocket-driver (>= 0.6.1)
|
16
|
+
zeitwerk (~> 2.6)
|
17
|
+
actionmailbox (7.1.3)
|
18
|
+
actionpack (= 7.1.3)
|
19
|
+
activejob (= 7.1.3)
|
20
|
+
activerecord (= 7.1.3)
|
21
|
+
activestorage (= 7.1.3)
|
22
|
+
activesupport (= 7.1.3)
|
23
|
+
mail (>= 2.7.1)
|
24
|
+
net-imap
|
25
|
+
net-pop
|
26
|
+
net-smtp
|
27
|
+
actionmailer (7.1.3)
|
28
|
+
actionpack (= 7.1.3)
|
29
|
+
actionview (= 7.1.3)
|
30
|
+
activejob (= 7.1.3)
|
31
|
+
activesupport (= 7.1.3)
|
32
|
+
mail (~> 2.5, >= 2.5.4)
|
33
|
+
net-imap
|
34
|
+
net-pop
|
35
|
+
net-smtp
|
36
|
+
rails-dom-testing (~> 2.2)
|
37
|
+
actionpack (7.1.3)
|
38
|
+
actionview (= 7.1.3)
|
39
|
+
activesupport (= 7.1.3)
|
40
|
+
nokogiri (>= 1.8.5)
|
41
|
+
racc
|
42
|
+
rack (>= 2.2.4)
|
43
|
+
rack-session (>= 1.0.1)
|
44
|
+
rack-test (>= 0.6.3)
|
45
|
+
rails-dom-testing (~> 2.2)
|
46
|
+
rails-html-sanitizer (~> 1.6)
|
47
|
+
actiontext (7.1.3)
|
48
|
+
actionpack (= 7.1.3)
|
49
|
+
activerecord (= 7.1.3)
|
50
|
+
activestorage (= 7.1.3)
|
51
|
+
activesupport (= 7.1.3)
|
52
|
+
globalid (>= 0.6.0)
|
53
|
+
nokogiri (>= 1.8.5)
|
54
|
+
actionview (7.1.3)
|
55
|
+
activesupport (= 7.1.3)
|
56
|
+
builder (~> 3.1)
|
57
|
+
erubi (~> 1.11)
|
58
|
+
rails-dom-testing (~> 2.2)
|
59
|
+
rails-html-sanitizer (~> 1.6)
|
60
|
+
activejob (7.1.3)
|
61
|
+
activesupport (= 7.1.3)
|
62
|
+
globalid (>= 0.3.6)
|
63
|
+
activemodel (7.1.3)
|
64
|
+
activesupport (= 7.1.3)
|
65
|
+
activerecord (7.1.3)
|
66
|
+
activemodel (= 7.1.3)
|
67
|
+
activesupport (= 7.1.3)
|
68
|
+
timeout (>= 0.4.0)
|
69
|
+
activestorage (7.1.3)
|
70
|
+
actionpack (= 7.1.3)
|
71
|
+
activejob (= 7.1.3)
|
72
|
+
activerecord (= 7.1.3)
|
73
|
+
activesupport (= 7.1.3)
|
74
|
+
marcel (~> 1.0)
|
75
|
+
activesupport (7.1.3)
|
76
|
+
base64
|
77
|
+
bigdecimal
|
17
78
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
79
|
+
connection_pool (>= 2.2.5)
|
80
|
+
drb
|
18
81
|
i18n (>= 1.6, < 2)
|
19
82
|
minitest (>= 5.1)
|
83
|
+
mutex_m
|
20
84
|
tzinfo (~> 2.0)
|
85
|
+
appraisal (2.5.0)
|
86
|
+
bundler
|
87
|
+
rake
|
88
|
+
thor (>= 0.14.0)
|
89
|
+
base64 (0.2.0)
|
90
|
+
bigdecimal (3.1.6)
|
91
|
+
builder (3.2.4)
|
21
92
|
concurrent-ruby (1.2.2)
|
93
|
+
connection_pool (2.4.1)
|
94
|
+
crass (1.0.6)
|
95
|
+
date (3.3.4)
|
22
96
|
diff-lcs (1.3)
|
97
|
+
drb (2.2.0)
|
98
|
+
ruby2_keywords
|
99
|
+
erubi (1.12.0)
|
100
|
+
globalid (1.2.1)
|
101
|
+
activesupport (>= 6.1)
|
23
102
|
i18n (1.14.1)
|
24
103
|
concurrent-ruby (~> 1.0)
|
104
|
+
io-console (0.7.2)
|
105
|
+
irb (1.11.1)
|
106
|
+
rdoc
|
107
|
+
reline (>= 0.4.2)
|
108
|
+
loofah (2.22.0)
|
109
|
+
crass (~> 1.0.2)
|
110
|
+
nokogiri (>= 1.12.0)
|
111
|
+
mail (2.8.1)
|
112
|
+
mini_mime (>= 0.1.1)
|
113
|
+
net-imap
|
114
|
+
net-pop
|
115
|
+
net-smtp
|
116
|
+
marcel (1.0.2)
|
117
|
+
mini_mime (1.1.5)
|
118
|
+
mini_portile2 (2.8.5)
|
25
119
|
minitest (5.18.1)
|
120
|
+
mutex_m (0.2.0)
|
121
|
+
net-imap (0.4.9.1)
|
122
|
+
date
|
123
|
+
net-protocol
|
124
|
+
net-pop (0.1.2)
|
125
|
+
net-protocol
|
126
|
+
net-protocol (0.2.2)
|
127
|
+
timeout
|
128
|
+
net-smtp (0.4.0.1)
|
129
|
+
net-protocol
|
130
|
+
nio4r (2.7.0)
|
131
|
+
nokogiri (1.16.0)
|
132
|
+
mini_portile2 (~> 2.8.2)
|
133
|
+
racc (~> 1.4)
|
134
|
+
nokogiri (1.16.0-x86_64-linux)
|
135
|
+
racc (~> 1.4)
|
136
|
+
racc (1.7.3)
|
137
|
+
rack (3.0.8)
|
138
|
+
rack-session (2.0.0)
|
139
|
+
rack (>= 3.0.0)
|
140
|
+
rack-test (2.1.0)
|
141
|
+
rack (>= 1.3)
|
142
|
+
rackup (2.1.0)
|
143
|
+
rack (>= 3)
|
144
|
+
webrick (~> 1.8)
|
145
|
+
rails (7.1.3)
|
146
|
+
actioncable (= 7.1.3)
|
147
|
+
actionmailbox (= 7.1.3)
|
148
|
+
actionmailer (= 7.1.3)
|
149
|
+
actionpack (= 7.1.3)
|
150
|
+
actiontext (= 7.1.3)
|
151
|
+
actionview (= 7.1.3)
|
152
|
+
activejob (= 7.1.3)
|
153
|
+
activemodel (= 7.1.3)
|
154
|
+
activerecord (= 7.1.3)
|
155
|
+
activestorage (= 7.1.3)
|
156
|
+
activesupport (= 7.1.3)
|
157
|
+
bundler (>= 1.15.0)
|
158
|
+
railties (= 7.1.3)
|
159
|
+
rails-dom-testing (2.2.0)
|
160
|
+
activesupport (>= 5.0.0)
|
161
|
+
minitest
|
162
|
+
nokogiri (>= 1.6)
|
163
|
+
rails-html-sanitizer (1.6.0)
|
164
|
+
loofah (~> 2.21)
|
165
|
+
nokogiri (~> 1.14)
|
166
|
+
railties (7.1.3)
|
167
|
+
actionpack (= 7.1.3)
|
168
|
+
activesupport (= 7.1.3)
|
169
|
+
irb
|
170
|
+
rackup (>= 1.0.0)
|
171
|
+
rake (>= 12.2)
|
172
|
+
thor (~> 1.0, >= 1.2.2)
|
173
|
+
zeitwerk (~> 2.6)
|
26
174
|
rake (12.3.3)
|
27
175
|
rdoc (6.2.0)
|
176
|
+
reline (0.4.2)
|
177
|
+
io-console (~> 0.5)
|
28
178
|
rspec (3.8.0)
|
29
179
|
rspec-core (~> 3.8.0)
|
30
180
|
rspec-expectations (~> 3.8.0)
|
@@ -38,9 +188,17 @@ GEM
|
|
38
188
|
diff-lcs (>= 1.2.0, < 2.0)
|
39
189
|
rspec-support (~> 3.8.0)
|
40
190
|
rspec-support (3.8.2)
|
191
|
+
ruby2_keywords (0.0.5)
|
41
192
|
sqlite3 (1.4.2)
|
193
|
+
thor (1.3.0)
|
194
|
+
timeout (0.4.1)
|
42
195
|
tzinfo (2.0.6)
|
43
196
|
concurrent-ruby (~> 1.0)
|
197
|
+
webrick (1.8.1)
|
198
|
+
websocket-driver (0.7.6)
|
199
|
+
websocket-extensions (>= 0.1.0)
|
200
|
+
websocket-extensions (0.1.5)
|
201
|
+
zeitwerk (2.6.12)
|
44
202
|
|
45
203
|
PLATFORMS
|
46
204
|
ruby
|
@@ -48,6 +206,8 @@ PLATFORMS
|
|
48
206
|
|
49
207
|
DEPENDENCIES
|
50
208
|
active_recall!
|
209
|
+
appraisal
|
210
|
+
rails (>= 6.0, <= 7.2)
|
51
211
|
rake (>= 12.0)
|
52
212
|
rdoc
|
53
213
|
rspec (>= 3.0)
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
**ActiveRecall** is a spaced-repetition system that allows you to treat arbitrary [ActiveRecord](https://github.com/rails/rails/tree/master/activerecord) models as if they were flashcards to be learned and reviewed.
|
4
4
|
It it based on, and is intended to be backwards compatible with, the [okubo](https://github.com/rgravina/okubo) gem.
|
5
|
-
The primary differentiating features are that it lets the user specify the scheduling algorithm and is fully compatible with Rails 6+ and Ruby 3+.
|
5
|
+
The primary differentiating features are that it lets the user specify the scheduling algorithm and is fully compatible with (and requires) Rails 6+ and Ruby 3+.
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
@@ -35,7 +35,7 @@ ActiveRecall.configure do |config|
|
|
35
35
|
config.algorithm_class = ActiveRecall::FibonacciSequence
|
36
36
|
end
|
37
37
|
```
|
38
|
-
Algorithms include `FibonacciSequence`, `LeitnerSystem`, and `
|
38
|
+
Algorithms include `FibonacciSequence`, `LeitnerSystem`, `SoftLeitnerSystem`, and `SM2` (see [here](https://en.wikipedia.org/wiki/SuperMemo#Description_of_SM-2_algorithm)).
|
39
39
|
For Rails applications, try doing this from within an [initializer file](https://guides.rubyonrails.org/configuring.html#using-initializer-files).
|
40
40
|
|
41
41
|
Assume you have an application allowing your users to study words in a foreign language. Using the `has_deck` method you can set up a deck of flashcards that the user will study:
|
@@ -59,7 +59,7 @@ You can add words and record attempts to guess the word as right or wrong. Vario
|
|
59
59
|
user.words << word
|
60
60
|
user.words.untested #=> [word]
|
61
61
|
|
62
|
-
# Guessing a word correctly
|
62
|
+
# Guessing a word correctly (when using a binary algorithm)
|
63
63
|
user.right_answer_for!(word)
|
64
64
|
user.words.known #=> [word]
|
65
65
|
|
@@ -93,6 +93,16 @@ user.right_answer_for!(word)
|
|
93
93
|
user.words.expired #=> [word]
|
94
94
|
```
|
95
95
|
|
96
|
+
When using a gradable algorithm (rather than binary) such as the SM2 algorithm, you will need to supply your own grade along with the item:
|
97
|
+
```ruby
|
98
|
+
grade = 3
|
99
|
+
user.score!(grade, word)
|
100
|
+
|
101
|
+
# Using the binary-only methods will raise an error
|
102
|
+
user.right_answer_for!(word)
|
103
|
+
=> ActiveRecall::IncompatibleAlgorithmError
|
104
|
+
```
|
105
|
+
|
96
106
|
Reviewing
|
97
107
|
---------
|
98
108
|
|
@@ -118,7 +128,7 @@ user.words.next #=> nil
|
|
118
128
|
## Development
|
119
129
|
|
120
130
|
After checking out the repo, run `bin/setup` to install dependencies.
|
121
|
-
Then, run `
|
131
|
+
Then, run `bin/spec` to run the tests.
|
122
132
|
You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
123
133
|
|
124
134
|
To install this gem onto your local machine, run `bundle exec rake install`.
|
data/active_recall.gemspec
CHANGED
@@ -32,11 +32,13 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
33
33
|
spec.require_paths = ["lib"]
|
34
34
|
|
35
|
+
spec.add_development_dependency 'appraisal'
|
36
|
+
spec.add_development_dependency "rails", ">= 6.0", "<= 7.2"
|
35
37
|
spec.add_development_dependency "rake", ">= 12.0"
|
36
38
|
spec.add_development_dependency "rdoc"
|
37
39
|
spec.add_development_dependency "rspec", ">= 3.0"
|
38
40
|
spec.add_development_dependency "sqlite3"
|
39
|
-
spec.add_runtime_dependency "activerecord", ">=
|
40
|
-
spec.add_runtime_dependency "activesupport", ">=
|
41
|
-
spec.required_ruby_version = ">=
|
41
|
+
spec.add_runtime_dependency "activerecord", ">= 6.0", "<= 7.2"
|
42
|
+
spec.add_runtime_dependency "activesupport", ">= 6.0", "<= 7.2"
|
43
|
+
spec.required_ruby_version = ">= 3.0"
|
42
44
|
end
|
data/bin/setup
CHANGED
data/bin/spec
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
set -eo pipefail
|
3
|
+
IFS=$'\n\t'
|
4
|
+
set -vx
|
5
|
+
|
6
|
+
appraisal=${1:-}
|
7
|
+
|
8
|
+
if [ -z "$appraisal" ]; then
|
9
|
+
# Run tests for all appraisals if none is specified
|
10
|
+
bundle exec appraisal rake spec
|
11
|
+
else
|
12
|
+
# Run tests for a specific appraisal
|
13
|
+
bundle exec appraisal "$appraisal" rake spec
|
14
|
+
fi
|
@@ -0,0 +1,189 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ..
|
3
|
+
specs:
|
4
|
+
active_recall (2.0.1)
|
5
|
+
activerecord (>= 6.0, <= 7.2)
|
6
|
+
activesupport (>= 6.0, <= 7.2)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
actioncable (6.1.7.6)
|
12
|
+
actionpack (= 6.1.7.6)
|
13
|
+
activesupport (= 6.1.7.6)
|
14
|
+
nio4r (~> 2.0)
|
15
|
+
websocket-driver (>= 0.6.1)
|
16
|
+
actionmailbox (6.1.7.6)
|
17
|
+
actionpack (= 6.1.7.6)
|
18
|
+
activejob (= 6.1.7.6)
|
19
|
+
activerecord (= 6.1.7.6)
|
20
|
+
activestorage (= 6.1.7.6)
|
21
|
+
activesupport (= 6.1.7.6)
|
22
|
+
mail (>= 2.7.1)
|
23
|
+
actionmailer (6.1.7.6)
|
24
|
+
actionpack (= 6.1.7.6)
|
25
|
+
actionview (= 6.1.7.6)
|
26
|
+
activejob (= 6.1.7.6)
|
27
|
+
activesupport (= 6.1.7.6)
|
28
|
+
mail (~> 2.5, >= 2.5.4)
|
29
|
+
rails-dom-testing (~> 2.0)
|
30
|
+
actionpack (6.1.7.6)
|
31
|
+
actionview (= 6.1.7.6)
|
32
|
+
activesupport (= 6.1.7.6)
|
33
|
+
rack (~> 2.0, >= 2.0.9)
|
34
|
+
rack-test (>= 0.6.3)
|
35
|
+
rails-dom-testing (~> 2.0)
|
36
|
+
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
37
|
+
actiontext (6.1.7.6)
|
38
|
+
actionpack (= 6.1.7.6)
|
39
|
+
activerecord (= 6.1.7.6)
|
40
|
+
activestorage (= 6.1.7.6)
|
41
|
+
activesupport (= 6.1.7.6)
|
42
|
+
nokogiri (>= 1.8.5)
|
43
|
+
actionview (6.1.7.6)
|
44
|
+
activesupport (= 6.1.7.6)
|
45
|
+
builder (~> 3.1)
|
46
|
+
erubi (~> 1.4)
|
47
|
+
rails-dom-testing (~> 2.0)
|
48
|
+
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
49
|
+
activejob (6.1.7.6)
|
50
|
+
activesupport (= 6.1.7.6)
|
51
|
+
globalid (>= 0.3.6)
|
52
|
+
activemodel (6.1.7.6)
|
53
|
+
activesupport (= 6.1.7.6)
|
54
|
+
activerecord (6.1.7.6)
|
55
|
+
activemodel (= 6.1.7.6)
|
56
|
+
activesupport (= 6.1.7.6)
|
57
|
+
activestorage (6.1.7.6)
|
58
|
+
actionpack (= 6.1.7.6)
|
59
|
+
activejob (= 6.1.7.6)
|
60
|
+
activerecord (= 6.1.7.6)
|
61
|
+
activesupport (= 6.1.7.6)
|
62
|
+
marcel (~> 1.0)
|
63
|
+
mini_mime (>= 1.1.0)
|
64
|
+
activesupport (6.1.7.6)
|
65
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
66
|
+
i18n (>= 1.6, < 2)
|
67
|
+
minitest (>= 5.1)
|
68
|
+
tzinfo (~> 2.0)
|
69
|
+
zeitwerk (~> 2.3)
|
70
|
+
appraisal (2.5.0)
|
71
|
+
bundler
|
72
|
+
rake
|
73
|
+
thor (>= 0.14.0)
|
74
|
+
builder (3.2.4)
|
75
|
+
concurrent-ruby (1.2.3)
|
76
|
+
crass (1.0.6)
|
77
|
+
date (3.3.4)
|
78
|
+
diff-lcs (1.5.0)
|
79
|
+
erubi (1.12.0)
|
80
|
+
globalid (1.2.1)
|
81
|
+
activesupport (>= 6.1)
|
82
|
+
i18n (1.14.1)
|
83
|
+
concurrent-ruby (~> 1.0)
|
84
|
+
loofah (2.22.0)
|
85
|
+
crass (~> 1.0.2)
|
86
|
+
nokogiri (>= 1.12.0)
|
87
|
+
mail (2.8.1)
|
88
|
+
mini_mime (>= 0.1.1)
|
89
|
+
net-imap
|
90
|
+
net-pop
|
91
|
+
net-smtp
|
92
|
+
marcel (1.0.2)
|
93
|
+
method_source (1.0.0)
|
94
|
+
mini_mime (1.1.5)
|
95
|
+
minitest (5.21.2)
|
96
|
+
net-imap (0.4.9.1)
|
97
|
+
date
|
98
|
+
net-protocol
|
99
|
+
net-pop (0.1.2)
|
100
|
+
net-protocol
|
101
|
+
net-protocol (0.2.2)
|
102
|
+
timeout
|
103
|
+
net-smtp (0.4.0.1)
|
104
|
+
net-protocol
|
105
|
+
nio4r (2.7.0)
|
106
|
+
nokogiri (1.16.0-arm64-darwin)
|
107
|
+
racc (~> 1.4)
|
108
|
+
psych (5.1.2)
|
109
|
+
stringio
|
110
|
+
racc (1.7.3)
|
111
|
+
rack (2.2.8)
|
112
|
+
rack-test (2.1.0)
|
113
|
+
rack (>= 1.3)
|
114
|
+
rails (6.1.7.6)
|
115
|
+
actioncable (= 6.1.7.6)
|
116
|
+
actionmailbox (= 6.1.7.6)
|
117
|
+
actionmailer (= 6.1.7.6)
|
118
|
+
actionpack (= 6.1.7.6)
|
119
|
+
actiontext (= 6.1.7.6)
|
120
|
+
actionview (= 6.1.7.6)
|
121
|
+
activejob (= 6.1.7.6)
|
122
|
+
activemodel (= 6.1.7.6)
|
123
|
+
activerecord (= 6.1.7.6)
|
124
|
+
activestorage (= 6.1.7.6)
|
125
|
+
activesupport (= 6.1.7.6)
|
126
|
+
bundler (>= 1.15.0)
|
127
|
+
railties (= 6.1.7.6)
|
128
|
+
sprockets-rails (>= 2.0.0)
|
129
|
+
rails-dom-testing (2.2.0)
|
130
|
+
activesupport (>= 5.0.0)
|
131
|
+
minitest
|
132
|
+
nokogiri (>= 1.6)
|
133
|
+
rails-html-sanitizer (1.6.0)
|
134
|
+
loofah (~> 2.21)
|
135
|
+
nokogiri (~> 1.14)
|
136
|
+
railties (6.1.7.6)
|
137
|
+
actionpack (= 6.1.7.6)
|
138
|
+
activesupport (= 6.1.7.6)
|
139
|
+
method_source
|
140
|
+
rake (>= 12.2)
|
141
|
+
thor (~> 1.0)
|
142
|
+
rake (13.1.0)
|
143
|
+
rdoc (6.6.2)
|
144
|
+
psych (>= 4.0.0)
|
145
|
+
rspec (3.12.0)
|
146
|
+
rspec-core (~> 3.12.0)
|
147
|
+
rspec-expectations (~> 3.12.0)
|
148
|
+
rspec-mocks (~> 3.12.0)
|
149
|
+
rspec-core (3.12.2)
|
150
|
+
rspec-support (~> 3.12.0)
|
151
|
+
rspec-expectations (3.12.3)
|
152
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
153
|
+
rspec-support (~> 3.12.0)
|
154
|
+
rspec-mocks (3.12.6)
|
155
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
156
|
+
rspec-support (~> 3.12.0)
|
157
|
+
rspec-support (3.12.1)
|
158
|
+
sprockets (4.2.1)
|
159
|
+
concurrent-ruby (~> 1.0)
|
160
|
+
rack (>= 2.2.4, < 4)
|
161
|
+
sprockets-rails (3.4.2)
|
162
|
+
actionpack (>= 5.2)
|
163
|
+
activesupport (>= 5.2)
|
164
|
+
sprockets (>= 3.0.0)
|
165
|
+
sqlite3 (1.7.1-arm64-darwin)
|
166
|
+
stringio (3.1.0)
|
167
|
+
thor (1.3.0)
|
168
|
+
timeout (0.4.1)
|
169
|
+
tzinfo (2.0.6)
|
170
|
+
concurrent-ruby (~> 1.0)
|
171
|
+
websocket-driver (0.7.6)
|
172
|
+
websocket-extensions (>= 0.1.0)
|
173
|
+
websocket-extensions (0.1.5)
|
174
|
+
zeitwerk (2.6.12)
|
175
|
+
|
176
|
+
PLATFORMS
|
177
|
+
arm64-darwin-23
|
178
|
+
|
179
|
+
DEPENDENCIES
|
180
|
+
active_recall!
|
181
|
+
appraisal
|
182
|
+
rails (~> 6.0)
|
183
|
+
rake (>= 12.0)
|
184
|
+
rdoc
|
185
|
+
rspec (>= 3.0)
|
186
|
+
sqlite3
|
187
|
+
|
188
|
+
BUNDLED WITH
|
189
|
+
2.4.14
|