Some notes on a refactor implemented with a Cop.
Breaking out of a yield with return
Did you know that calling return
in one Ruby method could affect the flow of another method? I discovered it today while hunting a GraphQL-Ruby bugfix. You can get more reliable behavior with ensure
, if it’s appropriate.
How I Make Yogurt
Yesterday I excitedly recommended to a friend that he try making some yogurt at home. Then I realized that my personal recipe is a bit of a hodge-podge, so I thought I’d try writing it out.
A New Runtime in GraphQL-Ruby 1.9
GraphQL-Ruby 1.9.0 introduces a new runtime called GraphQL::Execution::Interpreter
. It offers better performance and some new features.
Notes on Small is Beautiful
I just finished reading E.F. Schumacher’s Small Is Beautiful: A Study of Economics As If People Mattered, so I thought I’d jot down a few impressions before I forgot them.
Trampolining
As part of my work on improving GraphQL-Ruby’s runtime performance, I’ve been reading Essentials of Programming Languages. Here, I try to apply their lesson about “trampolining”.
Trip Report: Balkan Ruby 2018
This May, I had the opportunity to attend Balkan Ruby and present on my work with graphql-ruby.
How Ripper parses variables
Ruby has a few different kinds of variables, and Ripper expresses them with a few different nodes.
Updating GitHub to GraphQL 1.8.0
GraphQL 1.8.0 was designed and built largely as a part of my work at GitHub. Besides designing the new Schema definition API, I migrated our codebase to use it. Here are some field notes from my migration.
Why a New Schema Definition API?
GraphQL-Ruby 1.8.0
will have a new class-based API for defining your schema. Let’s investigate the design choices in the new API.