Follow @zverok

Docs for Ruby

  • Ruby Reference is an always actual current Ruby version reference, compiled from official docs and other stuff in a readable e-book format;
  • Ruby Changes is full changelog of recent Ruby (2.4—3.0 at the moment), with full context and example for each and every change.


  • Ruby lang contributions list of my contributions to Ruby language (proposed features and written documentation)
  • Spylls – Pure Python spell-checker, “explanatory” full port of Hunspell;
  • Experimenting on Ruby edges:
    • time_calc – Simple time arithmetics in a modern, readable, idiomatic, no-“magic” Ruby (previous approach to the problem: time_math2);
    • sho – “post-framework” views library.
    • hm – idiomatic nested hash transformations;
    • delegatesdelegate :methods, to: :target, extracted from ActiveSupport;
    • fstrings – Python-alike formatting strings;
    • idempotent_enumerable – like Enumerable, but preserves type of initial collection;
  • Development tools:
    • the_schema_is – Rails DSL for model annotation with DB schema, done right
    • whatthegem – information about any Ruby gem in your terminal: general information, usage examples, popularity stats, changes and more (successor of any_good – quick command-line evaluation of Ruby gem freshness/popularity)
    • yard-junkYARD plugin for checking for errors in docs;
    • saharspec – a set of RSpec addons for DRY-er specs;
    • dokaz – test code from inside of your Markdown documentation files;
  • Graphic gems and other experiments:
    • worldize – simple coloured countries stats drawing with RMagick;
    • magic_cloud – pretty Wordle-like wordcloud in pure Ruby;
    • xkcdize and drosterize – experiments on converting some “cool” image-processing tricks from Wolfram Language (Mathematica) to Ruby + RMagick;
  • molybdenum-99 project: developing a set of libraries to represent real-world data in Ruby:
    • reality – Most hi-level gem of the project, representing all world’s data as Ruby entities;
    • infoboxer – Wikipedia client and parser, targeting data extraction;
    • mediawiktory – low-level MediaWiki API client that just works;
    • tlaw – Pragmatic API wrapper framework;
    • wheretz – fast and precise offline time zone by geo coordinates lookup;
    • geo_coordGeo::Coord class, abstracting [latitude, longitude] pair;
    • tz_offset – simple abstraction of TimeZone offset;
    • whatisWhatIs.this(): simple entity resolution through Wikipedia;
    • mormor – Morfologik dictionaries client in pure Ruby: POS tagging & spellcheck
  • Other stuff:
    • linkhum – “links-in-text humanizer”, linkify text-only input;
    • did_you – easy-to-use wrapper for did_you_mean bundled Ruby gem (which dramatically changed behavior between versions)

Docs and texts

  • Blog is full of rants about Ruby, RSpec, my projects and development in general;
  • Good Value Object Conventions is an RFC-alike document for Ruby Value Objects;
  • Participant of Ruby language development discussions (I’m that guy who invented Kernel#then, so sue me), and committer of documentation improvements to Ruby and its standard library.

Appearances in Ruby Weekly: #250 (xkcdize), #287 (reality), #300 (time_math2), #301 (Geo::Coord), #319 (blog post), #322 (tz_offset), #364 (yard-junk), #366 (did_you), #372 (blog post), #375 (blog post), #383 (any_good), #384 (blog post), #385 (blog post), #387 (hm), #393 (blog post), #396 (Ruby core discussion), #403 (sho), #431 (Ruby Changes), #432 (Ruby Reference), #458 (time_calc), #472 (Ruby Changes), #473 (blog post), #482 (Ruby Changes) #483 (Ruby Reference and fstrings), #502 (blog post), #532 & #533 (Ruby Changes).