acts_as_learnable 0.1.2 → 0.2.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.
- checksums.yaml +5 -5
- data/README.md +1 -11
- data/acts_as_learnable.gemspec +2 -2
- data/lib/acts_as_learnable/base.rb +2 -3
- data/lib/acts_as_learnable/version.rb +1 -1
- data/lib/acts_as_learnable.rb +1 -3
- data/lib/generators/flashcard/flashcard_generator.rb +2 -2
- metadata +10 -12
- data/.travis.yml +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 6e65eaf9f25b641df9f9377c40997cadfeec15a64d28686c84ae1c1cb37d44e8
|
4
|
+
data.tar.gz: 5b76d804d68b1e557580b044cd56e93866aa5720544c5867b68be9ded5fd9a45
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd561ac48b1c65675addbda453947414e7d063a2d1defc67fbf096658626334576dc36cdb0b125d8ce3b282eb2c918c98649bb260496d07d419c7a418bfe0db1
|
7
|
+
data.tar.gz: 8548a28b5433b4a7a7f0c1bac89377026a9cdcc94b43747ce631e01463fb04062c002f491100d3f58f9b89c37a4bb649a4baaec5ad5b9e5ffed39cc30dcffeeb
|
data/README.md
CHANGED
@@ -1,10 +1,5 @@
|
|
1
1
|
# ActsAsLearnable
|
2
2
|
|
3
|
-
[](https://travis-ci.org/dankimio/acts_as_learnable)
|
4
|
-
[](https://rubygems.org/gems/acts_as_learnable)
|
5
|
-
[](https://dankimio.mit-license.org)
|
6
|
-
|
7
|
-
|
8
3
|
ActsAsLearnable is a Ruby gem for ActiveRecord models. It provides a simple way to create flashcards in your app. It automatically schedules flashcards for review depending on recall quality (1 to 5). You can easily create a Spaced Repetition System (SRS) using this gem. Flashcards are scheduled using SuperMemo 2 algorithm.
|
9
4
|
|
10
5
|
## Installation
|
@@ -54,13 +49,8 @@ card.repetitions # => 1
|
|
54
49
|
|
55
50
|
## Contributing
|
56
51
|
|
57
|
-
1. Fork it ( https://github.com/
|
52
|
+
1. Fork it ( https://github.com/dankimio/acts_as_learnable/fork )
|
58
53
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
59
54
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
60
55
|
4. Push to the branch (`git push origin my-new-feature`)
|
61
56
|
5. Create a new Pull Request
|
62
|
-
|
63
|
-
## TODO
|
64
|
-
|
65
|
-
- [ ] More detailed README
|
66
|
-
- [ ] Other repetition algorithms (Anki)
|
data/acts_as_learnable.gemspec
CHANGED
@@ -18,8 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_dependency 'activerecord', '>=
|
22
|
-
spec.add_dependency 'activesupport', '>=
|
21
|
+
spec.add_dependency 'activerecord', '>= 5.2'
|
22
|
+
spec.add_dependency 'activesupport', '>= 5.2'
|
23
23
|
|
24
24
|
spec.add_development_dependency 'bundler'
|
25
25
|
spec.add_development_dependency 'rake'
|
@@ -15,7 +15,7 @@ module ActsAsLearnable
|
|
15
15
|
|
16
16
|
module InstanceMethods
|
17
17
|
def review(recall_quality)
|
18
|
-
|
18
|
+
raise unless (1..5).include?(recall_quality)
|
19
19
|
|
20
20
|
# If the quality of response was lower than 3, then start repetitions from the beginning
|
21
21
|
reset and return if recall_quality <= 2
|
@@ -65,13 +65,12 @@ module ActsAsLearnable
|
|
65
65
|
|
66
66
|
# Update interval according to the formula
|
67
67
|
def update_interval
|
68
|
-
# TODO: Extract magic numbers
|
69
68
|
self.interval =
|
70
69
|
case repetitions
|
71
70
|
when 1 then 1
|
72
71
|
when 2 then 6
|
73
72
|
else
|
74
|
-
|
73
|
+
(repetitions - 1) * easiness_factor
|
75
74
|
end
|
76
75
|
end
|
77
76
|
|
data/lib/acts_as_learnable.rb
CHANGED
@@ -3,7 +3,5 @@ require 'acts_as_learnable/base'
|
|
3
3
|
|
4
4
|
module ActsAsLearnable
|
5
5
|
# Extend ActiveRecord if defined
|
6
|
-
if defined?(ActiveRecord::Base)
|
7
|
-
ActiveRecord::Base.extend(ActsAsLearnable::Base)
|
8
|
-
end
|
6
|
+
ActiveRecord::Base.extend(ActsAsLearnable::Base) if defined?(ActiveRecord::Base)
|
9
7
|
end
|
@@ -6,10 +6,10 @@ class FlashcardGenerator < ActiveRecord::Generators::Base
|
|
6
6
|
|
7
7
|
desc 'This generator creates a migration file with flashcard fields.'
|
8
8
|
|
9
|
-
source_root File.expand_path('
|
9
|
+
source_root File.expand_path('templates', __dir__)
|
10
10
|
|
11
11
|
def install_flashcards
|
12
|
-
if schema_exists? && File.read("#{destination_root}/db/schema.rb") =~ /create_table
|
12
|
+
if schema_exists? && File.read("#{destination_root}/db/schema.rb") =~ /create_table "#{table_name}"/
|
13
13
|
migration_template('add_fields_migration.rb', "db/migrate/add_flashcard_fields_to_#{table_name}.rb")
|
14
14
|
else
|
15
15
|
migration_template('create_table_migration.rb', "db/migrate/create_#{table_name}.rb")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_learnable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Kim
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '5.2'
|
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: '
|
26
|
+
version: '5.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activesupport
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '5.2'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '5.2'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -105,7 +105,6 @@ extensions: []
|
|
105
105
|
extra_rdoc_files: []
|
106
106
|
files:
|
107
107
|
- ".gitignore"
|
108
|
-
- ".travis.yml"
|
109
108
|
- Gemfile
|
110
109
|
- LICENSE.txt
|
111
110
|
- README.md
|
@@ -123,7 +122,7 @@ homepage: https://github.com/itsdn/acts_as_learnable
|
|
123
122
|
licenses:
|
124
123
|
- MIT
|
125
124
|
metadata: {}
|
126
|
-
post_install_message:
|
125
|
+
post_install_message:
|
127
126
|
rdoc_options: []
|
128
127
|
require_paths:
|
129
128
|
- lib
|
@@ -138,9 +137,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
137
|
- !ruby/object:Gem::Version
|
139
138
|
version: '0'
|
140
139
|
requirements: []
|
141
|
-
|
142
|
-
|
143
|
-
signing_key:
|
140
|
+
rubygems_version: 3.3.7
|
141
|
+
signing_key:
|
144
142
|
specification_version: 4
|
145
143
|
summary: A simple way to create flashcards in your app.
|
146
144
|
test_files:
|