active_recall 2.0.2 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8709001a31591b453227c504d7f96684f924ac267d6c380ab8c5e6b86913b24c
4
- data.tar.gz: 5efe33c2262b0b4549ff9f59c24ce504f65a798f5b2af1068bb10a419a7c182a
3
+ metadata.gz: 1145dd0124d31f1cd1d200170e3956b20818e73bd2d1fedb4ceacf4f82a8f4ba
4
+ data.tar.gz: b4b8e2c1d1edd66cc0c756200b525aec806468c7f95626c257bd95f369d56037
5
5
  SHA512:
6
- metadata.gz: f430431bf3ee4fd729c39a94915ad6b29750277631f5e85700684a464a71f633872033f69fcb763b01f3f2376afb0fbac7051b382ddc4843fe149502e2a9119a
7
- data.tar.gz: '06837043f0e1290b99fea84f6ed317263f2155d10619e9ab08dac06bd6c9807703863848b1311216d08a23e3254176a03e76cc3c045fdd96f4e0de00db8d09bd'
6
+ metadata.gz: e94584e1041b5f695ab3ec0d24a87a7c3a4abf200fb11c7951917f98cbd84f9e24225b52a6c45d393fe31beb76e08a9ac683266cd191f7ec5cacd78644b8ed68
7
+ data.tar.gz: 6979b3ac85b8cd12751566161bfa2d55ca5832fc82693a92469f3844ec481d86c4bda05fc709fcbb2ea8f3dbc84959a8d342a683ce6e936a05ab235c278a66df
@@ -19,8 +19,6 @@ jobs:
19
19
  - macos
20
20
  - ubuntu
21
21
  ruby:
22
- - 3.0
23
- - 3.1
24
22
  - 3.2
25
23
  - 3.3
26
24
  allow_failures:
@@ -40,11 +38,9 @@ jobs:
40
38
  bundler-cache: true
41
39
  - name: Install Appraisal Dependencies
42
40
  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
41
  - name: Test with Rails 7.0
50
42
  run: bundle exec appraisal rails-7-0 rake spec
43
+ - name: Test with Rails 7.1
44
+ run: bundle exec appraisal rails-7-1 rake spec
45
+ - name: Test with Rails 8.0
46
+ run: bundle exec appraisal rails-8-0 rake spec
data/.gitignore CHANGED
@@ -13,6 +13,6 @@ rdoc
13
13
  spec/reports
14
14
  test/tmp
15
15
  test/version_tmp
16
- tmp
17
16
  .idea/
18
17
  .DS_Store
18
+ tmp
data/Appraisals CHANGED
@@ -1,15 +1,14 @@
1
- appraise "rails-6-0" do
2
- gem "rails", "~> 6.0"
3
- end
4
-
5
- appraise "rails-6-1" do
6
- gem "rails", "~> 6.1"
7
- end
8
-
9
1
  appraise "rails-7-0" do
10
2
  gem "rails", "~> 7.0"
3
+ gem "sqlite3", "~> 1.4"
11
4
  end
12
5
 
13
6
  appraise "rails-7-1" do
14
7
  gem "rails", "~> 7.1"
8
+ gem "sqlite3", "~> 1.4"
9
+ end
10
+
11
+ appraise "rails-8-0" do
12
+ gem "rails", "~> 8.0"
13
+ gem "sqlite3", ">= 2.1"
15
14
  end
data/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- active_recall (2.0.2)
5
- activerecord (>= 6.0, <= 7.2)
6
- activesupport (>= 6.0, <= 7.2)
4
+ active_recall (2.1.0)
5
+ activerecord (>= 7.0, < 9.0)
6
+ activesupport (>= 7.0, < 9.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
@@ -217,7 +217,9 @@ GEM
217
217
  rubocop-ast (>= 1.30.0, < 2.0)
218
218
  ruby-progressbar (1.13.0)
219
219
  ruby2_keywords (0.0.5)
220
- sqlite3 (1.4.2)
220
+ sqlite3 (2.5.0)
221
+ mini_portile2 (~> 2.8.0)
222
+ sqlite3 (2.5.0-x86_64-linux-gnu)
221
223
  standard (1.35.1)
222
224
  language_server-protocol (~> 3.17.0.2)
223
225
  lint_roller (~> 1.0)
@@ -248,11 +250,11 @@ PLATFORMS
248
250
  DEPENDENCIES
249
251
  active_recall!
250
252
  appraisal
251
- rails (>= 6.0, <= 7.2)
253
+ rails (>= 7.0, < 9.0)
252
254
  rake (>= 12.0)
253
255
  rdoc
254
256
  rspec (>= 3.0)
255
- sqlite3
257
+ sqlite3 (~> 2.1)
256
258
  standard
257
259
 
258
260
  BUNDLED WITH
@@ -33,13 +33,13 @@ Gem::Specification.new do |spec|
33
33
  spec.require_paths = ["lib"]
34
34
 
35
35
  spec.add_development_dependency "appraisal"
36
- spec.add_development_dependency "rails", ">= 6.0", "<= 7.2"
36
+ spec.add_development_dependency "rails", ">= 7.0", "< 9.0"
37
37
  spec.add_development_dependency "rake", ">= 12.0"
38
38
  spec.add_development_dependency "rdoc"
39
39
  spec.add_development_dependency "rspec", ">= 3.0"
40
- spec.add_development_dependency "sqlite3"
40
+ spec.add_development_dependency "sqlite3", "~> 2.1"
41
41
  spec.add_development_dependency "standard"
42
- spec.add_runtime_dependency "activerecord", ">= 6.0", "<= 7.2"
43
- spec.add_runtime_dependency "activesupport", ">= 6.0", "<= 7.2"
44
- spec.required_ruby_version = ">= 3.0"
42
+ spec.add_runtime_dependency "activerecord", ">= 7.0", "< 9.0"
43
+ spec.add_runtime_dependency "activesupport", ">= 7.0", "< 9.0"
44
+ spec.required_ruby_version = ">= 3.2"
45
45
  end
data/bin/flatten ADDED
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'fileutils'
4
+
5
+ app_root = Dir.pwd
6
+ app_name = File.basename(app_root)
7
+
8
+ # Create tmp directory
9
+ tmp_dir = File.join(app_root, 'tmp')
10
+ FileUtils.mkdir_p(tmp_dir)
11
+
12
+ # Define directories and file patterns to include in the search, excluding specific files and directories
13
+ include_patterns = [
14
+ File.join(app_root, 'bin', '**', '*'),
15
+ File.join(app_root, 'lib', '**', '*'),
16
+ File.join(app_root, 'spec', '**', '*'),
17
+ File.join(app_root, '.github', '**', '*'),
18
+ File.join(app_root, '*.{md,rss,json,rb,gemspec,lock,yml,gitignore,rspec,tool-versions,Appraisals,Rakefile}')
19
+ ]
20
+
21
+ # Find all matching files
22
+ files = include_patterns.flat_map { |pattern| Dir.glob(pattern, File::FNM_DOTMATCH) }
23
+ files.select! { |f| File.file?(f) }
24
+
25
+ # Exclude the gemfiles directory and the top-level Gemfile.lock
26
+ files.reject! do |file|
27
+ file.start_with?(File.join(app_root, 'gemfiles')) || file == File.join(app_root, 'Gemfile.lock')
28
+ end
29
+
30
+ # Output file
31
+ output_file = File.join(tmp_dir, "#{app_name}_flat_file.txt")
32
+
33
+ File.open(output_file, 'w') do |file|
34
+ files.each do |file_path|
35
+ relative_path = file_path.sub("#{app_root}/", '')
36
+ extension = File.extname(file_path).delete_prefix('.')
37
+
38
+ file.puts "#{relative_path}:"
39
+
40
+ content = File.read(file_path)
41
+ if extension == 'md'
42
+ file.puts content
43
+ else
44
+ file.puts "```#{extension}"
45
+ file.puts content
46
+ file.puts "```"
47
+ end
48
+
49
+ file.puts ""
50
+ end
51
+ end
52
+
53
+ # Print the path to the generated flat file
54
+ puts "Flat file created at: #{output_file}"
@@ -3,5 +3,6 @@
3
3
  source "https://rubygems.org"
4
4
 
5
5
  gem "rails", "~> 7.0"
6
+ gem "sqlite3", "~> 1.4"
6
7
 
7
8
  gemspec path: "../"
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- active_recall (2.0.2)
5
- activerecord (>= 6.0, <= 7.2)
6
- activesupport (>= 6.0, <= 7.2)
4
+ active_recall (2.1.0)
5
+ activerecord (>= 7.0, < 9.0)
6
+ activesupport (>= 7.0, < 9.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
@@ -216,7 +216,7 @@ GEM
216
216
  rubocop-ast (>= 1.30.0, < 2.0)
217
217
  ruby-progressbar (1.13.0)
218
218
  ruby2_keywords (0.0.5)
219
- sqlite3 (1.7.1-arm64-darwin)
219
+ sqlite3 (1.7.3-arm64-darwin)
220
220
  standard (1.35.1)
221
221
  language_server-protocol (~> 3.17.0.2)
222
222
  lint_roller (~> 1.0)
@@ -251,7 +251,7 @@ DEPENDENCIES
251
251
  rake (>= 12.0)
252
252
  rdoc
253
253
  rspec (>= 3.0)
254
- sqlite3
254
+ sqlite3 (~> 1.4)
255
255
  standard
256
256
 
257
257
  BUNDLED WITH
@@ -3,5 +3,6 @@
3
3
  source "https://rubygems.org"
4
4
 
5
5
  gem "rails", "~> 7.1"
6
+ gem "sqlite3", "~> 1.4"
6
7
 
7
8
  gemspec path: "../"
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- active_recall (2.0.2)
5
- activerecord (>= 6.0, <= 7.2)
6
- activesupport (>= 6.0, <= 7.2)
4
+ active_recall (2.1.0)
5
+ activerecord (>= 7.0, < 9.0)
6
+ activesupport (>= 7.0, < 9.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
@@ -216,7 +216,7 @@ GEM
216
216
  rubocop-ast (>= 1.30.0, < 2.0)
217
217
  ruby-progressbar (1.13.0)
218
218
  ruby2_keywords (0.0.5)
219
- sqlite3 (1.7.1-arm64-darwin)
219
+ sqlite3 (1.7.3-arm64-darwin)
220
220
  standard (1.35.1)
221
221
  language_server-protocol (~> 3.17.0.2)
222
222
  lint_roller (~> 1.0)
@@ -251,7 +251,7 @@ DEPENDENCIES
251
251
  rake (>= 12.0)
252
252
  rdoc
253
253
  rspec (>= 3.0)
254
- sqlite3
254
+ sqlite3 (~> 1.4)
255
255
  standard
256
256
 
257
257
  BUNDLED WITH
@@ -2,6 +2,7 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rails", "~> 6.0"
5
+ gem "rails", "~> 8.0"
6
+ gem "sqlite3", ">= 2.1"
6
7
 
7
8
  gemspec path: "../"
@@ -0,0 +1,258 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ active_recall (2.1.0)
5
+ activerecord (>= 7.0, < 9.0)
6
+ activesupport (>= 7.0, < 9.0)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ actioncable (8.0.1)
12
+ actionpack (= 8.0.1)
13
+ activesupport (= 8.0.1)
14
+ nio4r (~> 2.0)
15
+ websocket-driver (>= 0.6.1)
16
+ zeitwerk (~> 2.6)
17
+ actionmailbox (8.0.1)
18
+ actionpack (= 8.0.1)
19
+ activejob (= 8.0.1)
20
+ activerecord (= 8.0.1)
21
+ activestorage (= 8.0.1)
22
+ activesupport (= 8.0.1)
23
+ mail (>= 2.8.0)
24
+ actionmailer (8.0.1)
25
+ actionpack (= 8.0.1)
26
+ actionview (= 8.0.1)
27
+ activejob (= 8.0.1)
28
+ activesupport (= 8.0.1)
29
+ mail (>= 2.8.0)
30
+ rails-dom-testing (~> 2.2)
31
+ actionpack (8.0.1)
32
+ actionview (= 8.0.1)
33
+ activesupport (= 8.0.1)
34
+ nokogiri (>= 1.8.5)
35
+ rack (>= 2.2.4)
36
+ rack-session (>= 1.0.1)
37
+ rack-test (>= 0.6.3)
38
+ rails-dom-testing (~> 2.2)
39
+ rails-html-sanitizer (~> 1.6)
40
+ useragent (~> 0.16)
41
+ actiontext (8.0.1)
42
+ actionpack (= 8.0.1)
43
+ activerecord (= 8.0.1)
44
+ activestorage (= 8.0.1)
45
+ activesupport (= 8.0.1)
46
+ globalid (>= 0.6.0)
47
+ nokogiri (>= 1.8.5)
48
+ actionview (8.0.1)
49
+ activesupport (= 8.0.1)
50
+ builder (~> 3.1)
51
+ erubi (~> 1.11)
52
+ rails-dom-testing (~> 2.2)
53
+ rails-html-sanitizer (~> 1.6)
54
+ activejob (8.0.1)
55
+ activesupport (= 8.0.1)
56
+ globalid (>= 0.3.6)
57
+ activemodel (8.0.1)
58
+ activesupport (= 8.0.1)
59
+ activerecord (8.0.1)
60
+ activemodel (= 8.0.1)
61
+ activesupport (= 8.0.1)
62
+ timeout (>= 0.4.0)
63
+ activestorage (8.0.1)
64
+ actionpack (= 8.0.1)
65
+ activejob (= 8.0.1)
66
+ activerecord (= 8.0.1)
67
+ activesupport (= 8.0.1)
68
+ marcel (~> 1.0)
69
+ activesupport (8.0.1)
70
+ base64
71
+ benchmark (>= 0.3)
72
+ bigdecimal
73
+ concurrent-ruby (~> 1.0, >= 1.3.1)
74
+ connection_pool (>= 2.2.5)
75
+ drb
76
+ i18n (>= 1.6, < 2)
77
+ logger (>= 1.4.2)
78
+ minitest (>= 5.1)
79
+ securerandom (>= 0.3)
80
+ tzinfo (~> 2.0, >= 2.0.5)
81
+ uri (>= 0.13.1)
82
+ appraisal (2.5.0)
83
+ bundler
84
+ rake
85
+ thor (>= 0.14.0)
86
+ ast (2.4.2)
87
+ base64 (0.2.0)
88
+ benchmark (0.4.0)
89
+ bigdecimal (3.1.9)
90
+ builder (3.3.0)
91
+ concurrent-ruby (1.3.4)
92
+ connection_pool (2.4.1)
93
+ crass (1.0.6)
94
+ date (3.4.1)
95
+ diff-lcs (1.5.1)
96
+ drb (2.2.1)
97
+ erubi (1.13.1)
98
+ globalid (1.2.1)
99
+ activesupport (>= 6.1)
100
+ i18n (1.14.6)
101
+ concurrent-ruby (~> 1.0)
102
+ io-console (0.8.0)
103
+ irb (1.14.3)
104
+ rdoc (>= 4.0.0)
105
+ reline (>= 0.4.2)
106
+ json (2.9.1)
107
+ language_server-protocol (3.17.0.3)
108
+ lint_roller (1.1.0)
109
+ logger (1.6.4)
110
+ loofah (2.23.1)
111
+ crass (~> 1.0.2)
112
+ nokogiri (>= 1.12.0)
113
+ mail (2.8.1)
114
+ mini_mime (>= 0.1.1)
115
+ net-imap
116
+ net-pop
117
+ net-smtp
118
+ marcel (1.0.4)
119
+ mini_mime (1.1.5)
120
+ mini_portile2 (2.8.5)
121
+ minitest (5.25.4)
122
+ net-imap (0.5.4)
123
+ date
124
+ net-protocol
125
+ net-pop (0.1.2)
126
+ net-protocol
127
+ net-protocol (0.2.2)
128
+ timeout
129
+ net-smtp (0.5.0)
130
+ net-protocol
131
+ nio4r (2.7.4)
132
+ nokogiri (1.18.0-arm64-darwin)
133
+ racc (~> 1.4)
134
+ parallel (1.26.3)
135
+ parser (3.3.6.0)
136
+ ast (~> 2.4.1)
137
+ racc
138
+ psych (5.2.2)
139
+ date
140
+ stringio
141
+ racc (1.8.1)
142
+ rack (3.1.8)
143
+ rack-session (2.0.0)
144
+ rack (>= 3.0.0)
145
+ rack-test (2.2.0)
146
+ rack (>= 1.3)
147
+ rackup (2.2.1)
148
+ rack (>= 3)
149
+ rails (8.0.1)
150
+ actioncable (= 8.0.1)
151
+ actionmailbox (= 8.0.1)
152
+ actionmailer (= 8.0.1)
153
+ actionpack (= 8.0.1)
154
+ actiontext (= 8.0.1)
155
+ actionview (= 8.0.1)
156
+ activejob (= 8.0.1)
157
+ activemodel (= 8.0.1)
158
+ activerecord (= 8.0.1)
159
+ activestorage (= 8.0.1)
160
+ activesupport (= 8.0.1)
161
+ bundler (>= 1.15.0)
162
+ railties (= 8.0.1)
163
+ rails-dom-testing (2.2.0)
164
+ activesupport (>= 5.0.0)
165
+ minitest
166
+ nokogiri (>= 1.6)
167
+ rails-html-sanitizer (1.6.2)
168
+ loofah (~> 2.21)
169
+ nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
170
+ railties (8.0.1)
171
+ actionpack (= 8.0.1)
172
+ activesupport (= 8.0.1)
173
+ irb (~> 1.13)
174
+ rackup (>= 1.0.0)
175
+ rake (>= 12.2)
176
+ thor (~> 1.0, >= 1.2.2)
177
+ zeitwerk (~> 2.6)
178
+ rainbow (3.1.1)
179
+ rake (13.2.1)
180
+ rdoc (6.10.0)
181
+ psych (>= 4.0.0)
182
+ regexp_parser (2.10.0)
183
+ reline (0.6.0)
184
+ io-console (~> 0.5)
185
+ rspec (3.13.0)
186
+ rspec-core (~> 3.13.0)
187
+ rspec-expectations (~> 3.13.0)
188
+ rspec-mocks (~> 3.13.0)
189
+ rspec-core (3.13.2)
190
+ rspec-support (~> 3.13.0)
191
+ rspec-expectations (3.13.3)
192
+ diff-lcs (>= 1.2.0, < 2.0)
193
+ rspec-support (~> 3.13.0)
194
+ rspec-mocks (3.13.2)
195
+ diff-lcs (>= 1.2.0, < 2.0)
196
+ rspec-support (~> 3.13.0)
197
+ rspec-support (3.13.2)
198
+ rubocop (1.69.2)
199
+ json (~> 2.3)
200
+ language_server-protocol (>= 3.17.0)
201
+ parallel (~> 1.10)
202
+ parser (>= 3.3.0.2)
203
+ rainbow (>= 2.2.2, < 4.0)
204
+ regexp_parser (>= 2.9.3, < 3.0)
205
+ rubocop-ast (>= 1.36.2, < 2.0)
206
+ ruby-progressbar (~> 1.7)
207
+ unicode-display_width (>= 2.4.0, < 4.0)
208
+ rubocop-ast (1.37.0)
209
+ parser (>= 3.3.1.0)
210
+ rubocop-performance (1.23.0)
211
+ rubocop (>= 1.48.1, < 2.0)
212
+ rubocop-ast (>= 1.31.1, < 2.0)
213
+ ruby-progressbar (1.13.0)
214
+ securerandom (0.4.1)
215
+ sqlite3 (2.5.0)
216
+ mini_portile2 (~> 2.8.0)
217
+ standard (1.43.0)
218
+ language_server-protocol (~> 3.17.0.2)
219
+ lint_roller (~> 1.0)
220
+ rubocop (~> 1.69.1)
221
+ standard-custom (~> 1.0.0)
222
+ standard-performance (~> 1.6)
223
+ standard-custom (1.0.2)
224
+ lint_roller (~> 1.0)
225
+ rubocop (~> 1.50)
226
+ standard-performance (1.6.0)
227
+ lint_roller (~> 1.1)
228
+ rubocop-performance (~> 1.23.0)
229
+ stringio (3.1.2)
230
+ thor (1.3.2)
231
+ timeout (0.4.3)
232
+ tzinfo (2.0.6)
233
+ concurrent-ruby (~> 1.0)
234
+ unicode-display_width (3.1.2)
235
+ unicode-emoji (~> 4.0, >= 4.0.4)
236
+ unicode-emoji (4.0.4)
237
+ uri (1.0.2)
238
+ useragent (0.16.11)
239
+ websocket-driver (0.7.6)
240
+ websocket-extensions (>= 0.1.0)
241
+ websocket-extensions (0.1.5)
242
+ zeitwerk (2.7.1)
243
+
244
+ PLATFORMS
245
+ arm64-darwin-23
246
+
247
+ DEPENDENCIES
248
+ active_recall!
249
+ appraisal
250
+ rails (~> 8.0)
251
+ rake (>= 12.0)
252
+ rdoc
253
+ rspec (>= 3.0)
254
+ sqlite3 (>= 2.1)
255
+ standard
256
+
257
+ BUNDLED WITH
258
+ 2.4.14
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module ActiveRecall
4
2
  class SM2
5
3
  MIN_EASINESS_FACTOR = 1.3
@@ -24,19 +22,24 @@ module ActiveRecall
24
22
  end
25
23
 
26
24
  def initialize(box:, easiness_factor:, times_right:, times_wrong:, grade:, current_time: Time.current)
27
- @box = box
25
+ @box = box # box serves as repetition number n
28
26
  @easiness_factor = easiness_factor || 2.5
29
27
  @times_right = times_right
30
28
  @times_wrong = times_wrong
31
29
  @grade = grade
32
30
  @current_time = current_time
33
- @interval = [1, box].max
31
+ @interval = case box
32
+ when 0 then 1 # First review
33
+ when 1 then 6 # Second review
34
+ else 17 # Will be overwritten for boxes > 1
35
+ end
34
36
  end
35
37
 
36
38
  def score
37
39
  raise "Grade must be between 0-5!" unless GRADES.include?(@grade)
40
+ old_ef = @easiness_factor
38
41
  update_easiness_factor
39
- update_repetition_and_interval
42
+ update_repetition_and_interval(old_ef)
40
43
 
41
44
  {
42
45
  box: @box,
@@ -51,13 +54,14 @@ module ActiveRecall
51
54
  private
52
55
 
53
56
  GRADES = [
54
- 5, # Perfect response. The learner recalls the information without hesitation.
55
- 4, # Correct response after a hesitation. The learner recalls the information but with some difficulty.
56
- 3, # Correct response recalled with serious difficulty. The learner struggles but eventually recalls the information.
57
- 2, # Incorrect response, but the learner was very close to the correct answer. This might involve recalling some of the information correctly but not all of it.
58
- 1, # Incorrect response, but the learner feels they should have remembered it. This is typically used when the learner has a sense of familiarity with the material but fails to recall it correctly.
59
- 0 # Complete blackout. The learner does not recall the information at all.
57
+ 5, # Perfect response
58
+ 4, # Correct response after a hesitation
59
+ 3, # Correct response recalled with serious difficulty
60
+ 2, # Incorrect response, but close
61
+ 1, # Incorrect response with familiarity
62
+ 0 # Complete blackout
60
63
  ].freeze
64
+
61
65
  REQUIRED_ATTRIBUTES = [
62
66
  :box,
63
67
  :easiness_factor,
@@ -71,22 +75,23 @@ module ActiveRecall
71
75
  @easiness_factor = [@easiness_factor, MIN_EASINESS_FACTOR].max
72
76
  end
73
77
 
74
- def update_repetition_and_interval
78
+ def update_repetition_and_interval(old_ef)
75
79
  if @grade >= 3
76
- @box += 1
77
- @times_right += 1
78
- @interval = case @box
79
- when 1
80
+ @interval = if @box == 0
80
81
  1
81
- when 2
82
+ elsif @box == 1
82
83
  6
83
84
  else
84
- (@interval || 1) * @easiness_factor
85
+ # Apply exponential scaling based on the box number
86
+ (6 * (old_ef**(@box - 1))).round
85
87
  end
88
+
89
+ @box += 1
90
+ @times_right += 1
86
91
  else
87
92
  @box = 0
88
- @times_wrong += 1
89
93
  @interval = 1
94
+ @times_wrong += 1
90
95
  end
91
96
  end
92
97
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveRecall
4
- VERSION = "2.0.2"
4
+ VERSION = "2.1.0"
5
5
  end
data/tmp/.gitkeep ADDED
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_recall
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Gravina
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2024-04-29 00:00:00.000000000 Z
12
+ date: 2024-12-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: appraisal
@@ -31,20 +31,20 @@ dependencies:
31
31
  requirements:
32
32
  - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: '6.0'
35
- - - "<="
34
+ version: '7.0'
35
+ - - "<"
36
36
  - !ruby/object:Gem::Version
37
- version: '7.2'
37
+ version: '9.0'
38
38
  type: :development
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
41
41
  requirements:
42
42
  - - ">="
43
43
  - !ruby/object:Gem::Version
44
- version: '6.0'
45
- - - "<="
44
+ version: '7.0'
45
+ - - "<"
46
46
  - !ruby/object:Gem::Version
47
- version: '7.2'
47
+ version: '9.0'
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rake
50
50
  requirement: !ruby/object:Gem::Requirement
@@ -91,16 +91,16 @@ dependencies:
91
91
  name: sqlite3
92
92
  requirement: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '2.1'
97
97
  type: :development
98
98
  prerelease: false
99
99
  version_requirements: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: '2.1'
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: standard
106
106
  requirement: !ruby/object:Gem::Requirement
@@ -121,40 +121,40 @@ dependencies:
121
121
  requirements:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: '6.0'
125
- - - "<="
124
+ version: '7.0'
125
+ - - "<"
126
126
  - !ruby/object:Gem::Version
127
- version: '7.2'
127
+ version: '9.0'
128
128
  type: :runtime
129
129
  prerelease: false
130
130
  version_requirements: !ruby/object:Gem::Requirement
131
131
  requirements:
132
132
  - - ">="
133
133
  - !ruby/object:Gem::Version
134
- version: '6.0'
135
- - - "<="
134
+ version: '7.0'
135
+ - - "<"
136
136
  - !ruby/object:Gem::Version
137
- version: '7.2'
137
+ version: '9.0'
138
138
  - !ruby/object:Gem::Dependency
139
139
  name: activesupport
140
140
  requirement: !ruby/object:Gem::Requirement
141
141
  requirements:
142
142
  - - ">="
143
143
  - !ruby/object:Gem::Version
144
- version: '6.0'
145
- - - "<="
144
+ version: '7.0'
145
+ - - "<"
146
146
  - !ruby/object:Gem::Version
147
- version: '7.2'
147
+ version: '9.0'
148
148
  type: :runtime
149
149
  prerelease: false
150
150
  version_requirements: !ruby/object:Gem::Requirement
151
151
  requirements:
152
152
  - - ">="
153
153
  - !ruby/object:Gem::Version
154
- version: '6.0'
155
- - - "<="
154
+ version: '7.0'
155
+ - - "<"
156
156
  - !ruby/object:Gem::Version
157
- version: '7.2'
157
+ version: '9.0'
158
158
  description: A spaced-repetition system to be used with ActiveRecord models
159
159
  email:
160
160
  - robert.gravina@gmail.com
@@ -175,17 +175,16 @@ files:
175
175
  - Rakefile
176
176
  - active_recall.gemspec
177
177
  - bin/console
178
+ - bin/flatten
178
179
  - bin/lint
179
180
  - bin/setup
180
181
  - bin/spec
181
- - gemfiles/rails_6_0.gemfile
182
- - gemfiles/rails_6_0.gemfile.lock
183
- - gemfiles/rails_6_1.gemfile
184
- - gemfiles/rails_6_1.gemfile.lock
185
182
  - gemfiles/rails_7_0.gemfile
186
183
  - gemfiles/rails_7_0.gemfile.lock
187
184
  - gemfiles/rails_7_1.gemfile
188
185
  - gemfiles/rails_7_1.gemfile.lock
186
+ - gemfiles/rails_8_0.gemfile
187
+ - gemfiles/rails_8_0.gemfile.lock
189
188
  - lib/active_recall.rb
190
189
  - lib/active_recall/algorithms/fibonacci_sequence.rb
191
190
  - lib/active_recall/algorithms/leitner_system.rb
@@ -204,6 +203,7 @@ files:
204
203
  - lib/generators/active_recall/templates/create_active_recall_tables.rb
205
204
  - lib/generators/active_recall/templates/migrate_okubo_to_active_recall.rb
206
205
  - standard.yml
206
+ - tmp/.gitkeep
207
207
  homepage: https://github.com/jaysonvirissimo/active_recall
208
208
  licenses:
209
209
  - MIT
@@ -217,7 +217,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
217
217
  requirements:
218
218
  - - ">="
219
219
  - !ruby/object:Gem::Version
220
- version: '3.0'
220
+ version: '3.2'
221
221
  required_rubygems_version: !ruby/object:Gem::Requirement
222
222
  requirements:
223
223
  - - ">="
@@ -1,231 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- active_recall (2.0.2)
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
- ast (2.4.2)
75
- builder (3.2.4)
76
- concurrent-ruby (1.2.3)
77
- crass (1.0.6)
78
- date (3.3.4)
79
- diff-lcs (1.5.0)
80
- erubi (1.12.0)
81
- globalid (1.2.1)
82
- activesupport (>= 6.1)
83
- i18n (1.14.1)
84
- concurrent-ruby (~> 1.0)
85
- json (2.7.2)
86
- language_server-protocol (3.17.0.3)
87
- lint_roller (1.1.0)
88
- loofah (2.22.0)
89
- crass (~> 1.0.2)
90
- nokogiri (>= 1.12.0)
91
- mail (2.8.1)
92
- mini_mime (>= 0.1.1)
93
- net-imap
94
- net-pop
95
- net-smtp
96
- marcel (1.0.2)
97
- method_source (1.0.0)
98
- mini_mime (1.1.5)
99
- minitest (5.21.2)
100
- net-imap (0.4.9.1)
101
- date
102
- net-protocol
103
- net-pop (0.1.2)
104
- net-protocol
105
- net-protocol (0.2.2)
106
- timeout
107
- net-smtp (0.4.0.1)
108
- net-protocol
109
- nio4r (2.7.0)
110
- nokogiri (1.16.0-arm64-darwin)
111
- racc (~> 1.4)
112
- parallel (1.24.0)
113
- parser (3.3.1.0)
114
- ast (~> 2.4.1)
115
- racc
116
- psych (5.1.2)
117
- stringio
118
- racc (1.7.3)
119
- rack (2.2.8)
120
- rack-test (2.1.0)
121
- rack (>= 1.3)
122
- rails (6.1.7.6)
123
- actioncable (= 6.1.7.6)
124
- actionmailbox (= 6.1.7.6)
125
- actionmailer (= 6.1.7.6)
126
- actionpack (= 6.1.7.6)
127
- actiontext (= 6.1.7.6)
128
- actionview (= 6.1.7.6)
129
- activejob (= 6.1.7.6)
130
- activemodel (= 6.1.7.6)
131
- activerecord (= 6.1.7.6)
132
- activestorage (= 6.1.7.6)
133
- activesupport (= 6.1.7.6)
134
- bundler (>= 1.15.0)
135
- railties (= 6.1.7.6)
136
- sprockets-rails (>= 2.0.0)
137
- rails-dom-testing (2.2.0)
138
- activesupport (>= 5.0.0)
139
- minitest
140
- nokogiri (>= 1.6)
141
- rails-html-sanitizer (1.6.0)
142
- loofah (~> 2.21)
143
- nokogiri (~> 1.14)
144
- railties (6.1.7.6)
145
- actionpack (= 6.1.7.6)
146
- activesupport (= 6.1.7.6)
147
- method_source
148
- rake (>= 12.2)
149
- thor (~> 1.0)
150
- rainbow (3.1.1)
151
- rake (13.1.0)
152
- rdoc (6.6.2)
153
- psych (>= 4.0.0)
154
- regexp_parser (2.9.0)
155
- rexml (3.2.6)
156
- rspec (3.12.0)
157
- rspec-core (~> 3.12.0)
158
- rspec-expectations (~> 3.12.0)
159
- rspec-mocks (~> 3.12.0)
160
- rspec-core (3.12.2)
161
- rspec-support (~> 3.12.0)
162
- rspec-expectations (3.12.3)
163
- diff-lcs (>= 1.2.0, < 2.0)
164
- rspec-support (~> 3.12.0)
165
- rspec-mocks (3.12.6)
166
- diff-lcs (>= 1.2.0, < 2.0)
167
- rspec-support (~> 3.12.0)
168
- rspec-support (3.12.1)
169
- rubocop (1.62.1)
170
- json (~> 2.3)
171
- language_server-protocol (>= 3.17.0)
172
- parallel (~> 1.10)
173
- parser (>= 3.3.0.2)
174
- rainbow (>= 2.2.2, < 4.0)
175
- regexp_parser (>= 1.8, < 3.0)
176
- rexml (>= 3.2.5, < 4.0)
177
- rubocop-ast (>= 1.31.1, < 2.0)
178
- ruby-progressbar (~> 1.7)
179
- unicode-display_width (>= 2.4.0, < 3.0)
180
- rubocop-ast (1.31.2)
181
- parser (>= 3.3.0.4)
182
- rubocop-performance (1.20.2)
183
- rubocop (>= 1.48.1, < 2.0)
184
- rubocop-ast (>= 1.30.0, < 2.0)
185
- ruby-progressbar (1.13.0)
186
- sprockets (4.2.1)
187
- concurrent-ruby (~> 1.0)
188
- rack (>= 2.2.4, < 4)
189
- sprockets-rails (3.4.2)
190
- actionpack (>= 5.2)
191
- activesupport (>= 5.2)
192
- sprockets (>= 3.0.0)
193
- sqlite3 (1.7.1-arm64-darwin)
194
- standard (1.35.1)
195
- language_server-protocol (~> 3.17.0.2)
196
- lint_roller (~> 1.0)
197
- rubocop (~> 1.62.0)
198
- standard-custom (~> 1.0.0)
199
- standard-performance (~> 1.3)
200
- standard-custom (1.0.2)
201
- lint_roller (~> 1.0)
202
- rubocop (~> 1.50)
203
- standard-performance (1.3.1)
204
- lint_roller (~> 1.1)
205
- rubocop-performance (~> 1.20.2)
206
- stringio (3.1.0)
207
- thor (1.3.0)
208
- timeout (0.4.1)
209
- tzinfo (2.0.6)
210
- concurrent-ruby (~> 1.0)
211
- unicode-display_width (2.5.0)
212
- websocket-driver (0.7.6)
213
- websocket-extensions (>= 0.1.0)
214
- websocket-extensions (0.1.5)
215
- zeitwerk (2.6.12)
216
-
217
- PLATFORMS
218
- arm64-darwin-23
219
-
220
- DEPENDENCIES
221
- active_recall!
222
- appraisal
223
- rails (~> 6.0)
224
- rake (>= 12.0)
225
- rdoc
226
- rspec (>= 3.0)
227
- sqlite3
228
- standard
229
-
230
- BUNDLED WITH
231
- 2.4.14
@@ -1,7 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "rails", "~> 6.1"
6
-
7
- gemspec path: "../"
@@ -1,231 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- active_recall (2.0.2)
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
- ast (2.4.2)
75
- builder (3.2.4)
76
- concurrent-ruby (1.2.3)
77
- crass (1.0.6)
78
- date (3.3.4)
79
- diff-lcs (1.5.0)
80
- erubi (1.12.0)
81
- globalid (1.2.1)
82
- activesupport (>= 6.1)
83
- i18n (1.14.1)
84
- concurrent-ruby (~> 1.0)
85
- json (2.7.2)
86
- language_server-protocol (3.17.0.3)
87
- lint_roller (1.1.0)
88
- loofah (2.22.0)
89
- crass (~> 1.0.2)
90
- nokogiri (>= 1.12.0)
91
- mail (2.8.1)
92
- mini_mime (>= 0.1.1)
93
- net-imap
94
- net-pop
95
- net-smtp
96
- marcel (1.0.2)
97
- method_source (1.0.0)
98
- mini_mime (1.1.5)
99
- minitest (5.21.2)
100
- net-imap (0.4.9.1)
101
- date
102
- net-protocol
103
- net-pop (0.1.2)
104
- net-protocol
105
- net-protocol (0.2.2)
106
- timeout
107
- net-smtp (0.4.0.1)
108
- net-protocol
109
- nio4r (2.7.0)
110
- nokogiri (1.16.0-arm64-darwin)
111
- racc (~> 1.4)
112
- parallel (1.24.0)
113
- parser (3.3.1.0)
114
- ast (~> 2.4.1)
115
- racc
116
- psych (5.1.2)
117
- stringio
118
- racc (1.7.3)
119
- rack (2.2.8)
120
- rack-test (2.1.0)
121
- rack (>= 1.3)
122
- rails (6.1.7.6)
123
- actioncable (= 6.1.7.6)
124
- actionmailbox (= 6.1.7.6)
125
- actionmailer (= 6.1.7.6)
126
- actionpack (= 6.1.7.6)
127
- actiontext (= 6.1.7.6)
128
- actionview (= 6.1.7.6)
129
- activejob (= 6.1.7.6)
130
- activemodel (= 6.1.7.6)
131
- activerecord (= 6.1.7.6)
132
- activestorage (= 6.1.7.6)
133
- activesupport (= 6.1.7.6)
134
- bundler (>= 1.15.0)
135
- railties (= 6.1.7.6)
136
- sprockets-rails (>= 2.0.0)
137
- rails-dom-testing (2.2.0)
138
- activesupport (>= 5.0.0)
139
- minitest
140
- nokogiri (>= 1.6)
141
- rails-html-sanitizer (1.6.0)
142
- loofah (~> 2.21)
143
- nokogiri (~> 1.14)
144
- railties (6.1.7.6)
145
- actionpack (= 6.1.7.6)
146
- activesupport (= 6.1.7.6)
147
- method_source
148
- rake (>= 12.2)
149
- thor (~> 1.0)
150
- rainbow (3.1.1)
151
- rake (13.1.0)
152
- rdoc (6.6.2)
153
- psych (>= 4.0.0)
154
- regexp_parser (2.9.0)
155
- rexml (3.2.6)
156
- rspec (3.12.0)
157
- rspec-core (~> 3.12.0)
158
- rspec-expectations (~> 3.12.0)
159
- rspec-mocks (~> 3.12.0)
160
- rspec-core (3.12.2)
161
- rspec-support (~> 3.12.0)
162
- rspec-expectations (3.12.3)
163
- diff-lcs (>= 1.2.0, < 2.0)
164
- rspec-support (~> 3.12.0)
165
- rspec-mocks (3.12.6)
166
- diff-lcs (>= 1.2.0, < 2.0)
167
- rspec-support (~> 3.12.0)
168
- rspec-support (3.12.1)
169
- rubocop (1.62.1)
170
- json (~> 2.3)
171
- language_server-protocol (>= 3.17.0)
172
- parallel (~> 1.10)
173
- parser (>= 3.3.0.2)
174
- rainbow (>= 2.2.2, < 4.0)
175
- regexp_parser (>= 1.8, < 3.0)
176
- rexml (>= 3.2.5, < 4.0)
177
- rubocop-ast (>= 1.31.1, < 2.0)
178
- ruby-progressbar (~> 1.7)
179
- unicode-display_width (>= 2.4.0, < 3.0)
180
- rubocop-ast (1.31.2)
181
- parser (>= 3.3.0.4)
182
- rubocop-performance (1.20.2)
183
- rubocop (>= 1.48.1, < 2.0)
184
- rubocop-ast (>= 1.30.0, < 2.0)
185
- ruby-progressbar (1.13.0)
186
- sprockets (4.2.1)
187
- concurrent-ruby (~> 1.0)
188
- rack (>= 2.2.4, < 4)
189
- sprockets-rails (3.4.2)
190
- actionpack (>= 5.2)
191
- activesupport (>= 5.2)
192
- sprockets (>= 3.0.0)
193
- sqlite3 (1.7.1-arm64-darwin)
194
- standard (1.35.1)
195
- language_server-protocol (~> 3.17.0.2)
196
- lint_roller (~> 1.0)
197
- rubocop (~> 1.62.0)
198
- standard-custom (~> 1.0.0)
199
- standard-performance (~> 1.3)
200
- standard-custom (1.0.2)
201
- lint_roller (~> 1.0)
202
- rubocop (~> 1.50)
203
- standard-performance (1.3.1)
204
- lint_roller (~> 1.1)
205
- rubocop-performance (~> 1.20.2)
206
- stringio (3.1.0)
207
- thor (1.3.0)
208
- timeout (0.4.1)
209
- tzinfo (2.0.6)
210
- concurrent-ruby (~> 1.0)
211
- unicode-display_width (2.5.0)
212
- websocket-driver (0.7.6)
213
- websocket-extensions (>= 0.1.0)
214
- websocket-extensions (0.1.5)
215
- zeitwerk (2.6.12)
216
-
217
- PLATFORMS
218
- arm64-darwin-23
219
-
220
- DEPENDENCIES
221
- active_recall!
222
- appraisal
223
- rails (~> 6.1)
224
- rake (>= 12.0)
225
- rdoc
226
- rspec (>= 3.0)
227
- sqlite3
228
- standard
229
-
230
- BUNDLED WITH
231
- 2.4.14