Table of Contents
Scope
This gem is the Ruby implementation of the Conference Track Management code-kata.
Design
SRP
The code design follows the single responsibility principle by using a dedicated class for any specific task.
Installation
Install the gem from your shell:
gem install conference_tracker
Usage
Library
Just require the library into your program and pass an array of notes to the converter:
require "conference_tracker"
talks = ["Writing Fast Tests Against Enterprise Rails 60min", "Overdoing it in Python 45min", "Lua for the Masses 30min", "Ruby Errors from Mismatched Gem Versions 45min", "Common Ruby Errors 45min"]
puts ConferenceTracker.call(talks)
# Track 1:
# 09:00AM Writing Fast Tests Against Enterprise Rails 60min
# 10:00AM Overdoing it in Python 45min
# 10:45AM Ruby Errors from Mismatched Gem Versions 45min
# 11:30AM Lua for the Masses 30min
# 12:00PM Lunch
# 01:00PM Common Ruby Errors 45min
# 04:00PM Networking Event
CLI
The gem provides a CLI interface.
Once installed you will be able to use the conference_tracker command from the terminal.
Help
You can print CLI help by:
conference_tracker -h
Usage: conference_tracker ~/talks.txt
-h --help Print this help
<path-to-file> Load conference talks
Input
The program accepts as input a file containing the talks titles with their duration:
# ~/talks.txt
Writing Fast Tests Against Enterprise Rails 60min
Overdoing it in Python 45min
Lua for the Masses 30min
Ruby Errors from Mismatched Gem Versions 45min
Common Ruby Errors 45min
Rails for Python Developers lightning
Communicating Over Distance 60min
Accounting-Driven Development 45min
Woah 30min
Sit Down and Write 30min
Pair Programming vs Noise 45min
Rails Magic 60min
Ruby on Rails: Why We Should Move On 60min
Clojure Ate Scala (on my project) 45min
Programming in the Boondocks of Seattle 30min
Ruby vs. Clojure for Back-End Development 30min
Ruby on Rails Legacy App Maintenance 60min
A World Without HackerNews 30min
User Interface CSS in Rails Apps 30min
Just pass the file path to the program:
conference_tracker ~/talks.txt
> Track 1:
> 09:00AM Rails Magic 60min
> 10:00AM Ruby on Rails: Why We Should Move On 60min
> 11:00AM Writing Fast Tests Against Enterprise Rails 60min
> 12:00PM Lunch
> 01:00PM Ruby on Rails Legacy App Maintenance 60min
> 02:00PM Communicating Over Distance 60min
> 03:00PM Ruby Errors from Mismatched Gem Versions 45min
> 03:45PM Pair Programming vs Noise 45min
> 04:30PM User Interface CSS in Rails Apps 30min
> 05:00PM Networking Event
> Track 2:
> 09:00AM Accounting-Driven Development 45min
> 09:45AM Clojure Ate Scala (on my project) 45min
> 10:30AM Common Ruby Errors 45min
> 11:15AM Overdoing it in Python 45min
> 12:00PM Lunch
> 01:00PM Lua for the Masses 30min
> 01:30PM Woah 30min
> 02:00PM Sit Down and Write 30min
> 02:30PM Programming in the Boondocks of Seattle 30min
> 03:00PM Ruby vs. Clojure for Back-End Development 30min
> 03:30PM A World Without HackerNews 30min
> 04:00PM Rails for Python Developers lightning
> 04:05PM Networking Event