So tonight I started my CLI Gem project. This one is going to be in my portfolio and has A LOT more to it. Okay, well maybe not a lot more but it’s the first time I’m starting from scratch to build something. Luckily, I’m not left out to dry and there is a how-to that’s over an hour long that Avi did. Of course, it’s not exactly what I’ll need to do and I’ll run into problems along the way but it’s nice to have a good resource to start with. I’m sure I could find a nice video around but having one provided definitely saves some time.
I decided to build a CLI Gem that will return the meetups in a specified radius from a specific zip code for the current day from Meetup.com. The first big time saver was
bundle gem new_gem_name which basically scaffolded a new gem with the name provided and even initialized it as a git repo. Avi provided a great set of steps to build a Gem:
1. Plan your gem, imagine your interface.
2. Start with the project structure – google.
3. Start with the entry point – the file run.
4. Force that to build the CLI interface.
5. Stub out the interface.
6. Start making things real.
7. Discover objects.
I’ve completed 1-4 in a very basic way now. Next is to stub out my interface with fake data. That will allow me to ensure my flow is working correctly and then basically code to the exact info I need. This workflow is also allowing me to make progress quickly and see the iterations that I’m going through to get to the end result. Not much else to share as I didn’t do anything too “deep” today. Just getting started on this project. If you’re interested in building your own gem using bundler check out RailsCasts #245 New Gem With Bundler. If you want the walkthrough that Avi does you’ll have to join Flatiron. I’m hopefully going to be able to finish this project on Saturday. However, I have a meetup to attend and I have my son this weekend. This will be the first weekend I have my son since I’ve started the program. I only have my son one weekend a month so I’ll have to see how much time I truly can sacrifice when the kids are awake.
You can follow along with my progress on GitHub here.
Time spent today: 2:29
Time spent total: 108:35
Lessons completed today: 0
Lessons completed total: 285