Ask A Question


You’re not receiving notifications from this thread.

Making a gem like thoughtbot's refills gem

Josh Sandlin asked in Gems / Libraries


I saw on HN the other day that USDS has released a styleguide/component system based off of Bourbon. I'd like to toy around with making a gem based off of the Refills gem that allows me to list out components and then "import" them (sticking their styles, erb templates, and js into a directory in app/assets).

Initially I was just going to fork the Refills gem and swap out the assets it generates, but I'm still relatively new to Rails, and I can't see the forest for the trees there. I know logically what it's doing, but everything seems very well connected to how they have things organized.

Would it be worth while to migrate the USDS assets to a "form-factor" that agrees with the Refills gem layout, or to try and roll my own using the USDS "form-factor".

Ideally, I'd like to just be able to type "rails generate wds:list" and then rails generate wds:import SNIPPET" like I can do with Refills.

I hope that makes sense.


Hey Josh,

I would love to see this! I think what you're looking for is learning how to create generators that install things from a gem. I've been building the simple_calendar gem and made an episode on how you can create generators that should be helpful.

The next step after you get a basic generator done is to take a look at the refills gem and see how they build the "import" generator. I'm not entirely sure, but it should be a good basis on how to do that. I've yet to dive into any of the USDS styleguides, but this would be a really really cool gem to make and should help adoption of it a lot. You'd be famous if you get this built. :)



I've given myself some motivation to get this going by entering it into this year's Octobuild ( (

So far it sort of works, though I've still got a few weeks to iron out the kinks.


Octobuild sounds like an awesome idea! I hadn't heard of it. Thanks for sharing that!

Also awesome start to the USDS project! It looks great so far. Nice and simple. :)

Join the discussion
Create an account Log in

Want to stay up-to-date with Ruby on Rails?

Join 81,149+ developers who get early access to new tutorials, screencasts, articles, and more.

    We care about the protection of your data. Read our Privacy Policy.

    Screencast tutorials to help you learn Ruby on Rails, Javascript, Hotwire, Turbo, Stimulus.js, PostgreSQL, MySQL, Ubuntu, and more.

    © 2024 GoRails, LLC. All rights reserved.