![]() Switch to compiling the extension as C++. This way we can work towards replacing all the low-level C
code with C++, which is better at dealing with strings, and has a better standard library we can use
to replace the dependency on GLib.
|
||
---|---|---|
bin | ||
ext/dtext | ||
lib | ||
test | ||
.gitignore | ||
.ruby-version | ||
docker-compose.yml | ||
Dockerfile | ||
dtext_rb.gemspec | ||
Gemfile | ||
Gemfile.lock | ||
Rakefile | ||
README.md | ||
VERSION |
About
Uses the ragel state machine to generate the dtext parsing capabilities of e621.net
Getting started
Most of the changes will only need to touch dtext.rl
, the rest of the files will be generated for you by running either rake compile
or rake test
. Take a look at this inofficial quickstart guide or the complete official documentation if you want to know more about how ragel works.
There's a docker-compose.yml
which you can use to quickly run the most common commands without installing everything locally. Usable like this: docker-compose run --rm rake test
. You will need to run docker-compse build
once beforehand.
Releasing a new version for usage in e621
Commit the changes to dtext.rl
and the resuling changes in dtext.c
. Bump the version number in dtext_rb.gemspec
and VERSION
. After that is all done you can bundle lock
in the e6 repository. It should pick up on the increased version.
To test these changes locally commit them and update the Gemfile
s dtext entry. Specifying the commit hash allows you to rebuild the container without having to also increment the version number every time. Don't forget to bundle lock
before rebuilding.
gem "dtext_rb", git: "https://github.com/YOUR_FORK/dtext_rb.git", ref: "YOUR_COMMIT_HASH"