<commit_before># Build a CLI RubyGem with External Data

## Overview

In this lesson you're going to build a RubyGem that provides a CLI interface to an external data source. Your code will be packaged as a RubyGem and install a CLI for the user. The CLI will be composed of an Objected Oriented Ruby application

## Requirements

1. Package as a gem
2. Provide a CLI on gem installation.
3. CLI must provide data from an external source, whether scraped or via a public API.
4. Data provided must go at least a level deep, generally by showing the user a list of available data and then being able to drill into a specific item.


###Example domains
- Movies Opening Soon - Enter your zip code and receive a list of movies and their details.
- Libraries Near You -  Enter your zip code and receive a list of libraries and their details.
- Programming meetups near you, list details.
- News Reader - List articles, read article.


## Instructions

1. Create a new repository on github for your gem
ie: `name-cli-gem`
2. Submit that repo to the assessment immediately.
3. Build your gem there.
4. Record at least a 30 min coding session, narrate or not. keep it, if we ask for it youll have to provide it.
5. Submit a video of your working gem.
6. Submit the final code.
7. Write a blog post about the project and process.
7. Schedule your pairing session.

###Be prepared to:
1. Explain your code from execution point to exit point. We're making sure you wrote it and understand how it works, nothing else. 5-10 minutes
2. Write tests together. You'll be responsible for making tests pass, not writing test code. However, you'll be expected to provide expected return data of methods. You'll need to know how your code should work, not rspec or testing. 20-30 minutes
3. Refactor code. 20-30 minutes
4. Extend the application with a new feature, more data, a different domain etc. 20-30 minutes
5. Submit an improved version.
6. Write a README.md.

###What to expect:

- Articulate code
- Use the best vocabulary you can
- Listen to corrections
- Trust yourself
- Trust us
- Think on your feet
- Look things up
- Implement new concepts on the fly
- Explain the details
- Learn a ton
- Be pushed to the edge of your knowledge
- Be supportive
- Whatever you don't quite understand will be explained

###What won't happen:<commit_msg>added example copy<commit_after># Build a CLI RubyGem with External Data

## Overview

In this lesson you're going to build a RubyGem that provides a CLI interface to an external data source. Your code will be packaged as a RubyGem and install a CLI for the user. The CLI will be composed of an Objected Oriented Ruby application

## Requirements

1. Package as a gem
2. Provide a CLI on gem installation.
3. CLI must provide data from an external source, whether scraped or via a public API.
4. Data provided must go at least a level deep, generally by showing the user a list of available data and then being able to drill into a specific item.


###Example domains
- Movies Opening Soon - Enter your zip code and receive a list of movies and their details.
- Libraries Near You -  Enter your zip code and receive a list of libraries and their details.
- Programming meetups near you, list details.
- News Reader - List articles, read article.

**Take a look in the `examples` directory for an example of what your gem should look like.**


## Instructions

1. Create a new repository on github for your gem
ie: `name-cli-gem`
2. Submit that repo to the assessment immediately.
3. Build your gem there.
4. Record at least a 30 min coding session, narrate or not. keep it, if we ask for it you'll have to provide it.
5. Submit a video of your working gem.
6. Submit the final code.
7. Write a blog post about the project and process.
7. Schedule your pairing session.

###Be prepared to:
1. Explain your code from execution point to exit point. We're making sure you wrote it and understand how it works, nothing else. 5-10 minutes
2. Write tests together. You'll be responsible for making tests pass, not writing test code. However, you'll be expected to provide expected return data of methods. You'll need to know how your code should work, not rspec or testing. 20-30 minutes
3. Refactor code. 20-30 minutes
4. Extend the application with a new feature, more data, a different domain etc. 20-30 minutes
5. Submit an improved version.
6. Write a README.md.

###What to expect:

- Articulate code
- Use the best vocabulary you can
- Listen to corrections
- Trust yourself
- Trust us
- Think on your feet
- Look things up
- Implement new concepts on the fly
- Explain the details
- Learn a ton
- Be pushed to the edge of your knowledge
- Be supportive
- Whatever you don't quite understand will be explained

###What won't happen:
{'fraction_non_alphanumeric': 0.0516481209321856, 'fraction_numerical': 0.014696619777451186, 'mean_word_length': 3.6432748538011697, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4832318', 'n_tokens_mistral': 1302, 'n_tokens_neox': 1223, 'n_words': 806}