daigaku-ruby / daigaku Goto Github PK
View Code? Open in Web Editor NEWDaigaku 大学 - Learning the Ruby programming language with a text-based interface
Daigaku 大学 - Learning the Ruby programming language with a text-based interface
I seperated the storage functionality into a quick_store gem. Daigaku should use the quick_store gem for its data storage.
In the task view I want to be provided with a Ruby doc link to learn more about certain Classes.
To make adding a doc link easy for course creators, it would be nice to have a markdown tag to use in the task.md for displaying the doc link in the terminal.
Needs a Wiki update for markdown syntax for task.md file.
If I am in the task view, I want to see the available shortcut keys:
o
for opening the solution file in the default text editorv
for verifying codec
for clearing the screan (hide verification results)UP
/DOWN
for scrolling textUnnessecary shortcut keys (like ENTER
) should be removed from the top bar in the task view.
If I use *
or #
, etc. in my task.md text this characters will not be displayed. It should be possible to escape these characters by a backslash, like: \*
and \#
.
We use a YAML::Store file as a simple local key/value database for storing the state of units.
By now the full path of the solution file is used as the key, so that a units state is saved, e.g. like
"/home/user/daigaku/solutions/Get_started_with_Ruby/1_Introduction/2_Hello_World_solution.rb": true
This does not allow to change the courses directory without loosing the state of the already mastered units. The key should instead be a combination of course, chapter and unit name (maybe even case independent and without leading numbers, so that an author can easily change the order and spelling of courses, chapters, and units without breaking the users's states), like:
"get_started_with_ruby/introduction/hello_world": true
If there is e.g. a README.md in a courses base directory running daigaku scaffold
creates an additional folder in the configured solutions directory (besides the wanted course directory with chapters and solution files).
This appears because the generator looks for all *.md files in the courses path.
This additional folder should not be created, i.e. *.md files in the base path should be ignored.
By now the reference solution code is not used in any way.
The basic idea behind reference solutions is that it can be shown to the user, e.g. after all tests passed or maybe on a 'hint' short key in the task view.
The reference solution code should be written by considering Ruby best practices and conventions, so that the user can compare his/her own code to it and learn from it.
This should also be added to the Wiki.
The method for parsing markdown is one huge code snippet at the moment.
It should be moved to an own Markdown printer class.
The upcoming numbers chapter in the default course uses the code_breaker gem to allow
global code snippet testing.
The CodeBreaker parser should be made available in the specs for a daigaku course.
Resizing crashes the app (on Mac) and renders black areas (on Linux).
I want to see an adapted screen if I resize my terminal.
The Ruby version on master is now '~> 2.0', but should be '>= 2.0'.
If I update a course and the name of the chapters or units has changed, the old ones will still be there.
Old course data should be removed on updating.
When running daigaku courses delete -a
you get a confirmation text:
"Are you shure..." should be "Are you sure..."
Scoped classes without given method are not parsed correctly, e.g.:
(ruby-doc core: Enumerator::Generator)
(ruby-doc stdlib: Logger::LogDevice::LogDeviceMutex)
is parsed as
http://ruby-doc.org/core-2.2.0/Enumerator.html#method-c-Generator and
http://ruby-doc.org/stdlib-2.2.0/libdoc/logger/rdoc/Logger/LogDevice.html#method-c-LogDeviceMutex
(should be http://ruby-doc.org/core-2.2.0/Enumerator/Generator.html and
http://ruby-doc.org/stdlib-2.2.0/libdoc/logger/rdoc/Logger/LogDevice/LogDeviceMutex.html)
Snippets like (ruby-doc core: Array#<<)
are parsed with an additional /<method>
before the .html
http://ruby-doc.org/core-2.3.0/Array/<<.html#method-i-3C-3C
For snippets like (ruby-doc core: Array#any?)
the daigaku screen crashes with error:
[...] daigaku-0.2.0/lib/daigaku/window.rb:148:in `print_markdown':
undefined method `gsub' for nil:NilClass (NoMethodError)
u
for update?).An approach might be storing and comparing the pushed_at
attribute (timestamp) for a Github repo by requesting the Github API (e.g. see https://api.github.com/repos/daigaku-ruby/get_started_with_ruby).
Needs a Wiki update for available shortcut keys in the Daigaku screen.
For a course downloaded from a Github repo I want to see who the author is.
The name should be displayed beside the course name, like
Get started with Ruby (by daigaku-ruby)
This comes with the question how to store the author information (in the Daigaku database, or another meta data file in the course's directory).
Needs an update in the Wiki for "Adding meta information to a course"
*text* (ruby-doc core: String)
`text` (ruby-doc core: String)
are both parsed as text (ruby-doc core: String)
- the link is not resolved.
I want to be able to delete courses using the command line interface.
Something like: $ daigaku courses delete [COURSE_NAME]
.
Needs a Wiki update for available CLI commands.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.