## Table of Contents * [Scope](#scope) * [Design](#design) * [SRP](#srp) * [Installation](#installation) * [Usage](#usage) * [Library](#library) * [CLI](#cli) ## 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: ```shell gem install conference_tracker ``` ## Usage ### Library Just require the library into your program and pass an array of notes to the converter: ```ruby 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: ```shell conference_tracker -h Usage: conference_tracker ~/talks.txt -h --help Print this help Load conference talks ``` #### Input The program accepts as input a file containing the talks titles with their duration: ```txt # ~/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: ```shell 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 ```