| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
|
|
|
| |
This is a more general way to establish the relationship between two
words.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
|
|
|
|
|
| |
When removing a word, all relationships with other words and tags should
also be cleared. Not that it would litter too much the
database (considering the DB is relatively small), but it doesn't take
too much effort to play nice here.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
|
|
|
|
|
|
| |
The 'alternative' relationship was only being created on a single
direction when calling 'words dup', while in this case it should go both
ways so the 'words show' command can pick things up easily. Considering
how I don't think I'll have too many words to begin with, this sort of
duplication shouldn't be too troublesome, and it makes code easier.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
|
|
| |
This is an easy way to create alternatives from existing words.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
| |
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
|
|
|
|
|
|
| |
For masculine/feminine 3rd declension words, it's usually taught that
the accusative plural is done with -ēs. This is usually right, but in
classical times i-stem 3rd declension words usually went for -īs for
masculine/feminine in the accusative plural. Thus, consider it as well
when inflecting these kinds of words by default.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
| |
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
| |
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
| |
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
| |
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
|
|
|
| |
This command includes the create, ls, and rm subcommands, which allow
for easy management of word tags.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
|
|
|
|
| |
This subcommand allows the user to update the `updated_at`
timestamp, which is quite relevant as this timestamp is used when
selecting words.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
|
|
|
|
| |
This commit also fixes the need to ask for a random gender when asking
for adjectives. This is somewhat unrelated to the main subject, but
untying this now was a bit too much of a hassle.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
|
|
|
| |
This includes comparative/superlative/adverbial forms for adjectives,
and alternative forms because of gender or otherwise.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
|
|
|
| |
For now we are limiting this only to be on the masculine gender, but
this could be changed in the future.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
|
|
|
| |
This way the -c/--category flag can also work together with the
-i/--inflection one.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
| |
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
|
|
|
| |
Since we no longer care that much about the exit code, we can simplify
the main loop further, while also reordering how words are selected.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
|
|
|
|
|
| |
If the user runs into an exercise and is satisfied with the results,
then touch the 'updated_at' column for that exercise. This is relevant
because in practice exercises are selected by the lastly updated
exercise.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
|
|
|
| |
It's confusing with the error case, and it also gets in the way for
endless mode.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
| |
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
| |
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
|
|
|
| |
It was the only part missing for exercises, which was even listed in
-h/--help.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
This means that it's no longer a matter of configuring it via the
database, but much simpler. This should be more than enough.
That being said, this is to be configured by hand so to not further
complicate things. This is left to be done for the future, even if the
default is basically what I use.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SQLite3, like many other DBs (e.g. PostgreSQL), assumes by default an
i64::MAX value. Hence, while in the application we are talking mainly in
unsigned terms (which is what makes sense here), this is not realistic
to what ends up happening on the DB side.
Up until now this just worked behind the scenes because rustqlite did
the heavy lifting via default trait implementations of usize which
handled this translation for us. This default implementation for usize
was dropped in 0.38.0 (see [1]). Even if it can be enabled back via the
"fallible_uint" feature, it's more fair to stick to isize, as it's not
much of a problem on our side, and it's more transparent in regards to
what happens in the end in the DB.
Last but not least, this commit also upgrades rustqlite to the latest
0.38.0, with the rest of the dependency tree.
[1] https://github.com/rusqlite/rusqlite/issues/1722)
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
|
|
|
|
|
| |
I apparently merged the 'inflection' branch without checking the code
style. This means that a lot of warnings are being raised by clippy and
I'm unsure which commit did what. Since I'm lazy about this right now,
let's bring all fixes in a single commit.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
|
|
|
| |
This includes providing tests and fixes for feminine adjectives with
contracted roots, and feminine versions of "unus nauta" adjectives.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
| |
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
|
| |
|
|
| |
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
|
| |
|
|
|
|
|
|
|
|
| |
Word inflection for nouns, adjectives has been added so it can be
initially be used in commands like 'words show'.
Word categories which have no inflections (e.g. adverbs, conjunctions,
et al) are skipped.
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
|
| |
|
|
| |
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
|
| |
|
|
|
|
|
|
| |
The '-e/--exercises' has also been introduced to instruct the 'practice'
command to only go for exercises, and the '-k/--kind' flag allows the
user to further filter which kind of exercise to practice.
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
|
| |
|
|
|
|
|
| |
Subcommands have been added to it which are similar to the ones on words
on purpose.
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
|
| |
|
|
|
|
|
| |
This allows for the user to give more importance to some words than
others, as that will be taken into account when running `practice`.
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
|
| |
|
|
| |
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
|
| |
|
|
|
|
|
| |
This implied replacing the Guess struct for a full Word, so the same
code for word creation could be re-used.
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
|
| |
|
|
|
|
|
|
| |
This is in preparation to the implementation of the new 'edit' and
'show' subcommands for 'word', which will also need to operate on
exactly one word.
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
|
| |
|
|
| |
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
|
| |
|
|
| |
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
|
| |
|
|
|
|
|
|
| |
This is a way to make more granular the accounting of successful runs,
so we don't give a word for done until we have run it successfully at
least MAX_STEPS times in a row.
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
|
| |
|
|
|
|
|
|
| |
This does not accept yet some flags that might be convenient for more
advanced uses of it, nor it asks to inflect the word or stuff like that.
For now it's as simple as "give me the meaning of...".
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
|
|
|
Basic commands have been added, but most of the features for this
project are still work in progress.
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
|