From 7a2989eba0b66ebf42e73f11d2448b3e02a0bab4 Mon Sep 17 00:00:00 2001 From: dszarkiel Date: Mon, 9 Nov 2020 18:56:31 -0600 Subject: [PATCH 01/15] first submission --- Gemfile | 1 + Gemfile.lock | 70 +++++++++++++++----------- bin/run.rb | 5 +- db/migrate/01_create_owners.rb | 9 ++++ db/migrate/02_create_tanks.rb | 9 ++++ db/migrate/03_create_tank_owner_ids.rb | 10 ++++ db/migrate/04_create_fish.rb | 12 +++++ lib/fish.rb | 17 +++++++ lib/owner.rb | 17 +++++++ lib/tank.rb | 17 +++++++ lib/tank_owner_ids.rb | 8 +++ 11 files changed, 146 insertions(+), 29 deletions(-) create mode 100644 db/migrate/01_create_owners.rb create mode 100644 db/migrate/02_create_tanks.rb create mode 100644 db/migrate/03_create_tank_owner_ids.rb create mode 100644 db/migrate/04_create_fish.rb create mode 100644 lib/fish.rb create mode 100644 lib/owner.rb create mode 100644 lib/tank.rb create mode 100644 lib/tank_owner_ids.rb diff --git a/Gemfile b/Gemfile index c004f4ca..fe62c672 100644 --- a/Gemfile +++ b/Gemfile @@ -5,3 +5,4 @@ gem "sinatra-activerecord" gem "sqlite3" gem "pry" gem "require_all" +gem "tty-prompt" diff --git a/Gemfile.lock b/Gemfile.lock index 9589226d..a96fd332 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,47 +1,60 @@ GEM remote: https://rubygems.org/ specs: - activemodel (6.0.3.1) - activesupport (= 6.0.3.1) - activerecord (6.0.3.1) - activemodel (= 6.0.3.1) - activesupport (= 6.0.3.1) - activesupport (6.0.3.1) + activemodel (6.0.3.4) + activesupport (= 6.0.3.4) + activerecord (6.0.3.4) + activemodel (= 6.0.3.4) + activesupport (= 6.0.3.4) + activesupport (6.0.3.4) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) zeitwerk (~> 2.2, >= 2.2.2) - coderay (1.1.1) - concurrent-ruby (1.1.6) - i18n (1.8.2) + coderay (1.1.3) + concurrent-ruby (1.1.7) + i18n (1.8.5) concurrent-ruby (~> 1.0) - method_source (0.8.2) - minitest (5.14.1) - mustermann (1.0.3) - pry (0.10.4) - coderay (~> 1.1.0) - method_source (~> 0.8.1) - slop (~> 3.4) + method_source (1.0.0) + minitest (5.14.2) + mustermann (1.1.1) + ruby2_keywords (~> 0.0.1) + pastel (0.8.0) + tty-color (~> 0.5) + pry (0.13.1) + coderay (~> 1.1) + method_source (~> 1.0) rack (2.2.3) - rack-protection (2.0.7) + rack-protection (2.1.0) rack - require_all (1.3.3) - sinatra (2.0.7) + require_all (3.0.0) + ruby2_keywords (0.0.2) + sinatra (2.1.0) mustermann (~> 1.0) - rack (~> 2.0) - rack-protection (= 2.0.7) + rack (~> 2.2) + rack-protection (= 2.1.0) tilt (~> 2.0) - sinatra-activerecord (2.0.12) - activerecord (>= 3.2) + sinatra-activerecord (2.0.21) + activerecord (>= 4.1) sinatra (>= 1.0) - slop (3.6.0) - sqlite3 (1.3.13) + sqlite3 (1.4.2) thread_safe (0.3.6) tilt (2.0.10) - tzinfo (1.2.7) + tty-color (0.6.0) + tty-cursor (0.7.1) + tty-prompt (0.22.0) + pastel (~> 0.8) + tty-reader (~> 0.8) + tty-reader (0.8.0) + tty-cursor (~> 0.7) + tty-screen (~> 0.8) + wisper (~> 2.0) + tty-screen (0.8.1) + tzinfo (1.2.8) thread_safe (~> 0.1) - zeitwerk (2.3.0) + wisper (2.0.1) + zeitwerk (2.4.1) PLATFORMS ruby @@ -51,6 +64,7 @@ DEPENDENCIES require_all sinatra-activerecord sqlite3 + tty-prompt BUNDLED WITH - 1.14.6 + 2.1.4 diff --git a/bin/run.rb b/bin/run.rb index cf08c338..40331e25 100644 --- a/bin/run.rb +++ b/bin/run.rb @@ -1,5 +1,8 @@ require_relative '../config/environment' +require "tty-prompt" +prompt = TTY::Prompt.new - +options = ["Create Tank", "Update Tank", "See Your Tank", "Delete Tank"] +prompt.select("What would you like to do?", options) puts "HELLO WORLD" diff --git a/db/migrate/01_create_owners.rb b/db/migrate/01_create_owners.rb new file mode 100644 index 00000000..298e6a60 --- /dev/null +++ b/db/migrate/01_create_owners.rb @@ -0,0 +1,9 @@ +class CreateOwners < ActiveRecord::Migration[5.2] + + def change + create_table :owners do |t| + t.string :name + end + end + +end \ No newline at end of file diff --git a/db/migrate/02_create_tanks.rb b/db/migrate/02_create_tanks.rb new file mode 100644 index 00000000..b45d6bc2 --- /dev/null +++ b/db/migrate/02_create_tanks.rb @@ -0,0 +1,9 @@ +class CreateTanks < ActiveRecord::Migration[5.2] + + def change + create_table :tanks do |t| + t.string :name + t.integer :fish_limit + end + end +end \ No newline at end of file diff --git a/db/migrate/03_create_tank_owner_ids.rb b/db/migrate/03_create_tank_owner_ids.rb new file mode 100644 index 00000000..3019cc39 --- /dev/null +++ b/db/migrate/03_create_tank_owner_ids.rb @@ -0,0 +1,10 @@ +class CreateTankOwnerIds < ActiveRecord::Migration[5.2] + + def change + create_table :tank_owner_ids do |t| + t.integer :owner_id + t.integer :tank_id + end + end + +end \ No newline at end of file diff --git a/db/migrate/04_create_fish.rb b/db/migrate/04_create_fish.rb new file mode 100644 index 00000000..c6763831 --- /dev/null +++ b/db/migrate/04_create_fish.rb @@ -0,0 +1,12 @@ +class CreateFish < ActiveRecord::Migration[5.2] + + def change + create_table :fish do |t| + t.string :name + t.string :type + t.string :size + t.integer :tank_id + end + end + +end \ No newline at end of file diff --git a/lib/fish.rb b/lib/fish.rb new file mode 100644 index 00000000..3ae62f7c --- /dev/null +++ b/lib/fish.rb @@ -0,0 +1,17 @@ +class Fish + + attr_reader :name, :type, :size + + @@all = [] + + def initialize(name, type, size) + @name = name + @type = type + @size = size + end + + def self.all + @@all + end + +end \ No newline at end of file diff --git a/lib/owner.rb b/lib/owner.rb new file mode 100644 index 00000000..8443b980 --- /dev/null +++ b/lib/owner.rb @@ -0,0 +1,17 @@ +class Owner + + attr_reader :name + + @@all = [] + + def initialize(name) + @name = name + + @@all << self + end + + def self.all + @@all + end + +end \ No newline at end of file diff --git a/lib/tank.rb b/lib/tank.rb new file mode 100644 index 00000000..55f9c01d --- /dev/null +++ b/lib/tank.rb @@ -0,0 +1,17 @@ +class Tank + + attr_reader :name, :fish_limit + + @@all = [] + + def initialize(name, fish_limit) + @name = name + @fish_limit = fish_limit + end + + def self.all + @@all + end + + +end diff --git a/lib/tank_owner_ids.rb b/lib/tank_owner_ids.rb new file mode 100644 index 00000000..0e00cba4 --- /dev/null +++ b/lib/tank_owner_ids.rb @@ -0,0 +1,8 @@ +class TankOwnerIds + + def initialize(owner_id, tank_id) + @owner_id = owner_id + @tank_id = tank_id + end + +end \ No newline at end of file From f8b4b813932e6b05fefb197aa3ad9a099a019e8e Mon Sep 17 00:00:00 2001 From: dszarkiel Date: Tue, 10 Nov 2020 11:51:01 -0600 Subject: [PATCH 02/15] second submission --- bin/run.rb | 11 ++++-- db/schema.rb | 36 +++++++++++++++++ lib/app.rb | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++ lib/owner.rb | 1 + 4 files changed, 151 insertions(+), 4 deletions(-) create mode 100644 db/schema.rb create mode 100644 lib/app.rb diff --git a/bin/run.rb b/bin/run.rb index 40331e25..dd58593d 100644 --- a/bin/run.rb +++ b/bin/run.rb @@ -1,8 +1,11 @@ require_relative '../config/environment' -require "tty-prompt" -prompt = TTY::Prompt.new -options = ["Create Tank", "Update Tank", "See Your Tank", "Delete Tank"] -prompt.select("What would you like to do?", options) +# require "tty-prompt" +# prompt = TTY::Prompt.new + +# options = ["Create Tank", "Update Tank", "See Your Tank", "Delete Tank"] +# prompt.select("What would you like to do?", options) + +App.new.run puts "HELLO WORLD" diff --git a/db/schema.rb b/db/schema.rb new file mode 100644 index 00000000..d5ee5c36 --- /dev/null +++ b/db/schema.rb @@ -0,0 +1,36 @@ +# This file is auto-generated from the current state of the database. Instead +# of editing this file, please use the migrations feature of Active Record to +# incrementally modify your database, and then regenerate this schema definition. +# +# This file is the source Rails uses to define your schema when running `rails +# db:schema:load`. When creating a new database, `rails db:schema:load` tends to +# be faster and is potentially less error prone than running all of your +# migrations from scratch. Old migrations may fail to apply correctly if those +# migrations use external dependencies or application code. +# +# It's strongly recommended that you check this file into your version control system. + +ActiveRecord::Schema.define(version: 4) do + + create_table "fish", force: :cascade do |t| + t.string "name" + t.string "type" + t.string "size" + t.integer "tank_id" + end + + create_table "owners", force: :cascade do |t| + t.string "name" + end + + create_table "tank_owner_ids", force: :cascade do |t| + t.integer "owner_id" + t.integer "tank_id" + end + + create_table "tanks", force: :cascade do |t| + t.string "name" + t.integer "fish_limit" + end + +end diff --git a/lib/app.rb b/lib/app.rb new file mode 100644 index 00000000..598e11c7 --- /dev/null +++ b/lib/app.rb @@ -0,0 +1,107 @@ +require "tty-prompt" + +class App + + def run + welcome + end + + def welcome + puts "WELCOME TO RUBY TANK" + + get_name + + main_menu + + end + + def main_menu + prompt = TTY::Prompt.new + + my_selection = prompt.select("What would you like to do?") do |menu| + menu.choice "Create Tank" + menu.choice "Update Tank" + menu.choice "See your Tank" + menu.choice "Delete Tank" + end + + if my_selection == "Create Tank" + create_tank + elsif my_selection == "Update Tank" + update_tank + elsif my_selection == "See your Tank" + see_your_tank + elsif my_selection == "Delete Tank" + delete_tank + + end + + end + + def get_user_input + gets.chomp + end + + def get_name + puts "What is your name?" + user_input = get_user_input + Owner.new(user_input) + end + + def create_tank + puts "What would you like your tank to be named?" + tank_name = get_user_input + puts "How many fish would you like to keep? (Max = 10)" + fish_limit = get_user_input + Tank.new(tank_name, fish_limit) + end + + def update_tank + display_empty_tank + + prompt = TTY::Prompt.new + my_selection = prompt.select("What would you like to do? Add or remove fish?") do |menu| + menu.choice "Add Fish" + menu.choice "Remove Fish" + end + + if my_selection == "Add Fish" + add_fish + elsif my_selection == "Remove Fish" + remove_fish + end + end + + def add_fish + puts "What would you like to name your fish?" + fish_name = get_user_input + puts "What color is the fish?" + fish_color = get_user_input + prompt = TTY::Prompt.new + my_selection = prompt.select("What size is the fish?") do |menu| + menu.choice "Small" + menu.choice "Medium" + menu.choice "Large" + end + fish_size = my_selection + + end + + def remove_fish + end + + def see_your_tank + end + + def delete_tank + end + + def display_empty_tank + puts "|^^^^^^^^^^^^^^^^|" + puts "| |" + puts "|________________|" + end + + def display_full_tank + end +end \ No newline at end of file diff --git a/lib/owner.rb b/lib/owner.rb index 8443b980..ca5708b8 100644 --- a/lib/owner.rb +++ b/lib/owner.rb @@ -1,3 +1,4 @@ + class Owner attr_reader :name From 715caef97ecd591a53b31f33502cef123a4b2922 Mon Sep 17 00:00:00 2001 From: dszarkiel Date: Tue, 10 Nov 2020 13:41:21 -0600 Subject: [PATCH 03/15] third submission --- lib/app.rb | 60 ++++++++++++++++++++++++++++++++++++++++++++++++----- lib/fish.rb | 2 ++ 2 files changed, 57 insertions(+), 5 deletions(-) diff --git a/lib/app.rb b/lib/app.rb index 598e11c7..e8493828 100644 --- a/lib/app.rb +++ b/lib/app.rb @@ -7,8 +7,7 @@ def run end def welcome - puts "WELCOME TO RUBY TANK" - + show_intro_fish_tank get_name main_menu @@ -54,10 +53,15 @@ def create_tank puts "How many fish would you like to keep? (Max = 10)" fish_limit = get_user_input Tank.new(tank_name, fish_limit) + main_menu end def update_tank - display_empty_tank + if Fish.all.count == 0 + display_empty_tank + else + display_full_tank + end prompt = TTY::Prompt.new my_selection = prompt.select("What would you like to do? Add or remove fish?") do |menu| @@ -72,6 +76,7 @@ def update_tank end end +####### FISH ADD/REMOVE FEATURES # def add_fish puts "What would you like to name your fish?" fish_name = get_user_input @@ -84,12 +89,17 @@ def add_fish menu.choice "Large" end fish_size = my_selection - + Fish.new(fish_name, fish_color, fish_size) + update_tank end def remove_fish + puts "What fish would you like to remove?" + fish_name = get_user_input end +####### END OF FISH ADD/REMOVE FEATURES # + def see_your_tank end @@ -103,5 +113,45 @@ def display_empty_tank end def display_full_tank + puts "|^^^^^^^^^^^^^^^^|" + puts "| ><> <>< |" + puts "|________________|" + + end + + + + + + ################################## VISUAL IMAGES ################################## + + def show_intro_fish_tank + puts" " + puts" ___ ___ ___ ___ WELCOME TO RUBY TANK (( " + puts" |___|___|___|___| (()) " + puts" |:_:_:_:_:_| ><> )) " + puts" |_:_,--.:_:| <>< (/// ) " + puts" |:_:|__|_:_| ><> _ ) )) (( " + puts" _ |_ _ :_:| _ _ _ (_) (((( /))` " + puts" | |_| |_| | _| | |_| |_| | o )))) (( ( " + puts" |_:_:_:_:/|_|_|_| :_:_:_:_/ . <>< (( )))) " + puts" |_,-._:_:_:_:_:_:_:_.-,_| o )) ((// " + puts" |:|_|:_:_:,---,:_:_:|_|:| o ,-. )/ " + puts" |_:_:_:_,' `,_:_:_:_| _ o ,;'))(( " + puts" |:_:_:_/ _ | _ _:_:_:| (_O (( )) " + puts"_____|_:_:_| (o)-(o) |_:_:_|--'`-. ,--. (((('/ " + puts" ', ;|:_:_:| -( .-. )- |:_:_:| ', ; `--._|oo|,---.~ ``)) " + puts". ` |_:_:_| (`-') |_:_:_|. ` . ` |()|.__( ) .,-----' `-((( " + puts" ', ;|:_:_:| `-' |:_:_:| ', ; ', ; `--'| \ ', ; ', ; ',')).,-- " + puts" . ` ` . ` . ` . ` . ` . ` . ` . . ` . ` . ` . ` . ` " + puts" ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ', ; " end -end \ No newline at end of file +end + + + + + + + + diff --git a/lib/fish.rb b/lib/fish.rb index 3ae62f7c..383b4e92 100644 --- a/lib/fish.rb +++ b/lib/fish.rb @@ -8,6 +8,8 @@ def initialize(name, type, size) @name = name @type = type @size = size + + @@all << self end def self.all From c6c9a126284d16e0b841110e6f3dc7a581378cd6 Mon Sep 17 00:00:00 2001 From: dszarkiel Date: Tue, 10 Nov 2020 17:40:41 -0600 Subject: [PATCH 04/15] fourth commit --- config/environment.rb | 1 + db/migrate/04_create_fish.rb | 3 +- db/schema.rb | 3 +- lib/app.rb | 120 +++++++++++++++++++++-------------- lib/fish.rb | 19 +----- lib/owner.rb | 20 ++---- lib/tank.rb | 17 ++--- lib/tank_owner_ids.rb | 7 +- 8 files changed, 87 insertions(+), 103 deletions(-) diff --git a/config/environment.rb b/config/environment.rb index 4dbe13e5..3f965dfc 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -2,4 +2,5 @@ Bundler.require ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: 'db/development.db') +ActiveRecord::Base.logger = nil require_all 'lib' diff --git a/db/migrate/04_create_fish.rb b/db/migrate/04_create_fish.rb index c6763831..5439cb25 100644 --- a/db/migrate/04_create_fish.rb +++ b/db/migrate/04_create_fish.rb @@ -3,8 +3,7 @@ class CreateFish < ActiveRecord::Migration[5.2] def change create_table :fish do |t| t.string :name - t.string :type - t.string :size + t.string :color t.integer :tank_id end end diff --git a/db/schema.rb b/db/schema.rb index d5ee5c36..eaa6fd7e 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -14,8 +14,7 @@ create_table "fish", force: :cascade do |t| t.string "name" - t.string "type" - t.string "size" + t.string "color" t.integer "tank_id" end diff --git a/lib/app.rb b/lib/app.rb index e8493828..b544a2a3 100644 --- a/lib/app.rb +++ b/lib/app.rb @@ -2,11 +2,7 @@ class App - def run - welcome - end - - def welcome + def run show_intro_fish_tank get_name @@ -21,6 +17,7 @@ def main_menu menu.choice "Create Tank" menu.choice "Update Tank" menu.choice "See your Tank" + menu.choice "Add additional owner to the Tank" menu.choice "Delete Tank" end @@ -30,6 +27,8 @@ def main_menu update_tank elsif my_selection == "See your Tank" see_your_tank + elsif my_selection == "Add additional owner to the Tank" + add_owner_to_tank elsif my_selection == "Delete Tank" delete_tank @@ -44,15 +43,17 @@ def get_user_input def get_name puts "What is your name?" user_input = get_user_input - Owner.new(user_input) + new_owner = Owner.new(name: user_input) + new_owner.save end def create_tank puts "What would you like your tank to be named?" tank_name = get_user_input puts "How many fish would you like to keep? (Max = 10)" - fish_limit = get_user_input - Tank.new(tank_name, fish_limit) + tank_limit = get_user_input + new_tank = Tank.new(name: tank_name, fish_limit: tank_limit) + new_tank.save main_menu end @@ -67,12 +68,15 @@ def update_tank my_selection = prompt.select("What would you like to do? Add or remove fish?") do |menu| menu.choice "Add Fish" menu.choice "Remove Fish" + menu.choice "Back - Main Menu" end if my_selection == "Add Fish" add_fish elsif my_selection == "Remove Fish" remove_fish + elsif my_selection == "Back - Main Menu" + main_menu end end @@ -80,72 +84,92 @@ def update_tank def add_fish puts "What would you like to name your fish?" fish_name = get_user_input - puts "What color is the fish?" - fish_color = get_user_input prompt = TTY::Prompt.new - my_selection = prompt.select("What size is the fish?") do |menu| - menu.choice "Small" - menu.choice "Medium" - menu.choice "Large" + my_selection = prompt.select("What color is the fish?") do |menu| + menu.choice "Gold" + menu.choice "Orange" + menu.choice "Blue" end fish_size = my_selection - Fish.new(fish_name, fish_color, fish_size) + #Fish.new(name: fish_name, color: fish_color, tank_id: ## ) Need fish ID update_tank end def remove_fish puts "What fish would you like to remove?" fish_name = get_user_input + Fish.all.find do |fish| + fish == fish_name + Fish.all.delete(fish) + end + update_tank end ####### END OF FISH ADD/REMOVE FEATURES # def see_your_tank + display_full_tank + end + + def add_owner_to_tank end def delete_tank end + + + + + + ################################## VISUAL IMAGES ################################## + + def show_intro_fish_tank + puts" " + puts" ___ ___ ___ ___ WELCOME TO RUBY TANK (( " + puts" |___|___|___|___| (()) " + puts" |:_:_:_:_:_| ><> )) " + puts" |_:_,--.:_:| <>< (/// ) " + puts" |:_:|__|_:_| ><> _ ) )) (( " + puts" _ |_ _ :_:| _ _ _ (_) (((( /))` " + puts" | |_| |_| | _| | |_| |_| | o )))) (( ( " + puts" |_:_:_:_:/|_|_|_| :_:_:_:_/ . <>< (( )))) " + puts" |_,-._:_:_:_:_:_:_:_.-,_| o )) ((// " + puts" |:|_|:_:_:,---,:_:_:|_|:| o ,-. )/ " + puts" |_:_:_:_,' `,_:_:_:_| _ o ,;'))(( " + puts" |:_:_:_/ _ | _ _:_:_:| (_O (( )) " + puts"_____|_:_:_| (o)-(o) |_:_:_|--'`-. ,--. (((('/ " + puts" ', ;|:_:_:| -( .-. )- |:_:_:| ', ; `--._|oo|,---.~ ``)) " + puts". ` |_:_:_| (`-') |_:_:_|. ` . ` |()|.__( ) .,-----' `-((( " + puts" ', ;|:_:_:| `-' |:_:_:| ', ; ', ; `--'| \ ', ; ', ; ',')).,-- " + puts" . ` ` . ` . ` . ` . ` . ` . ` . . ` . ` . ` . ` . ` " + puts" ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ', ; " + end + def display_empty_tank - puts "|^^^^^^^^^^^^^^^^|" - puts "| |" - puts "|________________|" + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" + puts "| |" + puts "| |" + puts "| _\\/_ |" + puts "| /o\\ |" + puts "| | |" + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" + puts "|_____________________________________________________|" end def display_full_tank - puts "|^^^^^^^^^^^^^^^^|" - puts "| ><> <>< |" - puts "|________________|" - + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" + puts "| ><> <>< |" + puts "| <>< |" + puts "| ><> _\\/_ |" + puts "| /o\\ |" + puts "| <>< | |" + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" + puts "|_____________________________________________________|" + end - - - - ################################## VISUAL IMAGES ################################## - - def show_intro_fish_tank - puts" " - puts" ___ ___ ___ ___ WELCOME TO RUBY TANK (( " - puts" |___|___|___|___| (()) " - puts" |:_:_:_:_:_| ><> )) " - puts" |_:_,--.:_:| <>< (/// ) " - puts" |:_:|__|_:_| ><> _ ) )) (( " - puts" _ |_ _ :_:| _ _ _ (_) (((( /))` " - puts" | |_| |_| | _| | |_| |_| | o )))) (( ( " - puts" |_:_:_:_:/|_|_|_| :_:_:_:_/ . <>< (( )))) " - puts" |_,-._:_:_:_:_:_:_:_.-,_| o )) ((// " - puts" |:|_|:_:_:,---,:_:_:|_|:| o ,-. )/ " - puts" |_:_:_:_,' `,_:_:_:_| _ o ,;'))(( " - puts" |:_:_:_/ _ | _ _:_:_:| (_O (( )) " - puts"_____|_:_:_| (o)-(o) |_:_:_|--'`-. ,--. (((('/ " - puts" ', ;|:_:_:| -( .-. )- |:_:_:| ', ; `--._|oo|,---.~ ``)) " - puts". ` |_:_:_| (`-') |_:_:_|. ` . ` |()|.__( ) .,-----' `-((( " - puts" ', ;|:_:_:| `-' |:_:_:| ', ; ', ; `--'| \ ', ; ', ; ',')).,-- " - puts" . ` ` . ` . ` . ` . ` . ` . ` . . ` . ` . ` . ` . ` " - puts" ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ', ; " - end end diff --git a/lib/fish.rb b/lib/fish.rb index 383b4e92..70ec7aa6 100644 --- a/lib/fish.rb +++ b/lib/fish.rb @@ -1,19 +1,6 @@ -class Fish +class Fish < ActiveRecord::Base - attr_reader :name, :type, :size - - @@all = [] - - def initialize(name, type, size) - @name = name - @type = type - @size = size - - @@all << self - end - - def self.all - @@all - end + belongs_to :tank + has_many :owners, through: :tank end \ No newline at end of file diff --git a/lib/owner.rb b/lib/owner.rb index ca5708b8..0537b790 100644 --- a/lib/owner.rb +++ b/lib/owner.rb @@ -1,18 +1,6 @@ +class Owner < ActiveRecord::Base + has_many :tank_owner_ids + has_many :tanks, through: :tank_owner_ids -class Owner - - attr_reader :name - - @@all = [] - - def initialize(name) - @name = name - - @@all << self - end - - def self.all - @@all - end - + end \ No newline at end of file diff --git a/lib/tank.rb b/lib/tank.rb index 55f9c01d..b875f4f4 100644 --- a/lib/tank.rb +++ b/lib/tank.rb @@ -1,17 +1,8 @@ -class Tank +class Tank < ActiveRecord::Base - attr_reader :name, :fish_limit - - @@all = [] - - def initialize(name, fish_limit) - @name = name - @fish_limit = fish_limit - end - - def self.all - @@all - end +has_many :fish +has_many :tank_owner_ids +has_many :owners, through: :tank_owner_ids end diff --git a/lib/tank_owner_ids.rb b/lib/tank_owner_ids.rb index 0e00cba4..b2d0f167 100644 --- a/lib/tank_owner_ids.rb +++ b/lib/tank_owner_ids.rb @@ -1,8 +1,3 @@ -class TankOwnerIds +class TankOwnerIds < ActiveRecord::Base - def initialize(owner_id, tank_id) - @owner_id = owner_id - @tank_id = tank_id - end - end \ No newline at end of file From b50a987664553f936ad61e1ee18e1bd43e6d4c57 Mon Sep 17 00:00:00 2001 From: dszarkiel Date: Wed, 11 Nov 2020 10:13:29 -0600 Subject: [PATCH 05/15] 1013AM --- bin/run.rb | 8 +------- lib/app.rb | 59 +++++++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 53 insertions(+), 14 deletions(-) diff --git a/bin/run.rb b/bin/run.rb index dd58593d..95121f19 100644 --- a/bin/run.rb +++ b/bin/run.rb @@ -1,11 +1,5 @@ require_relative '../config/environment' -# require "tty-prompt" -# prompt = TTY::Prompt.new - -# options = ["Create Tank", "Update Tank", "See Your Tank", "Delete Tank"] -# prompt.select("What would you like to do?", options) - App.new.run -puts "HELLO WORLD" +puts "Goodbye!" diff --git a/lib/app.rb b/lib/app.rb index b544a2a3..3336d7be 100644 --- a/lib/app.rb +++ b/lib/app.rb @@ -4,7 +4,10 @@ class App def run show_intro_fish_tank - get_name + + sleep(3,) + + setup_owner main_menu @@ -19,6 +22,7 @@ def main_menu menu.choice "See your Tank" menu.choice "Add additional owner to the Tank" menu.choice "Delete Tank" + menu.choice "Exit" end if my_selection == "Create Tank" @@ -31,6 +35,8 @@ def main_menu add_owner_to_tank elsif my_selection == "Delete Tank" delete_tank + elsif my_selection == "Exit" + nil end @@ -40,20 +46,58 @@ def get_user_input gets.chomp end - def get_name - puts "What is your name?" - user_input = get_user_input - new_owner = Owner.new(name: user_input) - new_owner.save +################# OWNER LOGIN #################### + + def setup_owner + system "clear" + prompt = TTY::Prompt.new + user_input = prompt.select("What's your owner status?") do |menu| + menu.choice "New Owner" + menu.choice "Existing Owner" + end + if user_input == "New Owner" + create_new_owner + else + find_existing_owner + end end + def create_new_owner + puts "Please enter your name:" + owner_name = gets.chomp + if Owner.find_by(name: owner_name) + system "clear" + puts "Sorry, that name is already taken." + create_new_owner + else + current_user = Owner.new(name: owner_name) + puts "New user created! Welcome, #{current_user.name}!" + end + current_user + end + + def find_existing_owner + puts "Please enter your name:" + owner_name = gets.chomp + current_user = Owner.find_by(Owner.name == owner_name) + if Owner.all.map { |user| user.name }.include?(owner_name) + system "clear" + puts "Welcome back, #{current_user.name}!" + else + puts "Username not found" + find_existing_owner + end + current_user + end +################################################################################ + def create_tank puts "What would you like your tank to be named?" tank_name = get_user_input puts "How many fish would you like to keep? (Max = 10)" tank_limit = get_user_input new_tank = Tank.new(name: tank_name, fish_limit: tank_limit) - new_tank.save + #new_tank.save main_menu end @@ -81,6 +125,7 @@ def update_tank end ####### FISH ADD/REMOVE FEATURES # + def add_fish puts "What would you like to name your fish?" fish_name = get_user_input From b21da25aa9c9c780683099cfef5853e27d769125 Mon Sep 17 00:00:00 2001 From: dszarkiel Date: Wed, 11 Nov 2020 12:20:37 -0600 Subject: [PATCH 06/15] 1220PM --- db/seeds.rb | 26 ++++++++++++++++++++++++++ lib/app.rb | 13 ++++++------- 2 files changed, 32 insertions(+), 7 deletions(-) create mode 100644 db/seeds.rb diff --git a/db/seeds.rb b/db/seeds.rb new file mode 100644 index 00000000..730348b4 --- /dev/null +++ b/db/seeds.rb @@ -0,0 +1,26 @@ +Owner.destroy_all +Tank.destroy_all +TankOwnerIds.destroy_all +Fish.destroy_all + +bart = Owner.create(name: "bart") +dom = Owner.create(name: "dom") +max = Owner.create(name: "max") +derick = Owner.create(name: "derick") + +tank1 = Tank.create(name: "tank1", fish_limit: 5) +tank2 = Tank.create(name: "tank2", fish_limit: 5) +tank3 =Tank.create(name: "tank3", fish_limit: 5) +tank4 =Tank.create(name: "tank4", fish_limit: 5) + +tank_owner_id_1 = TankOwnerIds.create(owner_id: bart.id, tank_id: tank1.id) +tank_owner_id_2 = TankOwnerIds.create(owner_id: dom.id, tank_id: tank2.id) +tank_owner_id_3 = TankOwnerIds.create(owner_id: max.id, tank_id: tank3.id) +tank_owner_id_4 = TankOwnerIds.create(owner_id: derick.id, tank_id: tank4.id) +tank_owner_id_5 = TankOwnerIds.create(owner_id: dom.id, tank_id: tank1.id) + +nemo = Fish.create(name: "nemo", color: "orange", tank_id: tank1.id) +dory = Fish.create(name: "dory", color: "blue", tank_id: tank2.id) +guppy = Fish.create(name: "guppy", color: "gold", tank_id: tank3.id) +sharky = Fish.create(name: "sharky", color: "blue", tank_id: tank4.id) + diff --git a/lib/app.rb b/lib/app.rb index 3336d7be..795465e2 100644 --- a/lib/app.rb +++ b/lib/app.rb @@ -1,12 +1,11 @@ require "tty-prompt" - +require 'pry' class App def run show_intro_fish_tank - - sleep(3,) + sleep(3,) setup_owner main_menu @@ -70,8 +69,8 @@ def create_new_owner puts "Sorry, that name is already taken." create_new_owner else - current_user = Owner.new(name: owner_name) - puts "New user created! Welcome, #{current_user.name}!" + current_user = Owner.create(name: owner_name) + puts "New user created! Welcome, #{current_user.name.capitalize}!" end current_user end @@ -79,10 +78,10 @@ def create_new_owner def find_existing_owner puts "Please enter your name:" owner_name = gets.chomp - current_user = Owner.find_by(Owner.name == owner_name) + current_user = Owner.find_by(name: owner_name) if Owner.all.map { |user| user.name }.include?(owner_name) system "clear" - puts "Welcome back, #{current_user.name}!" + puts "Welcome back, #{current_user.name.capitalize}!" else puts "Username not found" find_existing_owner From 7ffcb392c496ed661a2a0a4b3b1cc6c5f8052655 Mon Sep 17 00:00:00 2001 From: dszarkiel Date: Wed, 11 Nov 2020 13:31:21 -0600 Subject: [PATCH 07/15] 0131PM --- db/seeds.rb | 12 ++--- lib/app.rb | 100 ++++++++++++++++++++++++++++++++++++++++-- lib/tank.rb | 2 +- lib/tank_owner_id.rb | 6 +++ lib/tank_owner_ids.rb | 3 -- 5 files changed, 109 insertions(+), 14 deletions(-) create mode 100644 lib/tank_owner_id.rb delete mode 100644 lib/tank_owner_ids.rb diff --git a/db/seeds.rb b/db/seeds.rb index 730348b4..b11ed7f2 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -1,6 +1,6 @@ Owner.destroy_all Tank.destroy_all -TankOwnerIds.destroy_all +TankOwnerId.destroy_all Fish.destroy_all bart = Owner.create(name: "bart") @@ -13,11 +13,11 @@ tank3 =Tank.create(name: "tank3", fish_limit: 5) tank4 =Tank.create(name: "tank4", fish_limit: 5) -tank_owner_id_1 = TankOwnerIds.create(owner_id: bart.id, tank_id: tank1.id) -tank_owner_id_2 = TankOwnerIds.create(owner_id: dom.id, tank_id: tank2.id) -tank_owner_id_3 = TankOwnerIds.create(owner_id: max.id, tank_id: tank3.id) -tank_owner_id_4 = TankOwnerIds.create(owner_id: derick.id, tank_id: tank4.id) -tank_owner_id_5 = TankOwnerIds.create(owner_id: dom.id, tank_id: tank1.id) +tank_owner_id_1 = TankOwnerId.create(owner_id: bart.id, tank_id: tank1.id) +tank_owner_id_2 = TankOwnerId.create(owner_id: dom.id, tank_id: tank2.id) +tank_owner_id_3 = TankOwnerId.create(owner_id: max.id, tank_id: tank3.id) +tank_owner_id_4 = TankOwnerId.create(owner_id: derick.id, tank_id: tank4.id) +tank_owner_id_5 = TankOwnerId.create(owner_id: dom.id, tank_id: tank1.id) nemo = Fish.create(name: "nemo", color: "orange", tank_id: tank1.id) dory = Fish.create(name: "dory", color: "blue", tank_id: tank2.id) diff --git a/lib/app.rb b/lib/app.rb index 795465e2..f607848f 100644 --- a/lib/app.rb +++ b/lib/app.rb @@ -73,6 +73,7 @@ def create_new_owner puts "New user created! Welcome, #{current_user.name.capitalize}!" end current_user + binding.pry end def find_existing_owner @@ -97,6 +98,8 @@ def create_tank tank_limit = get_user_input new_tank = Tank.new(name: tank_name, fish_limit: tank_limit) #new_tank.save + binding.pry + new_tank main_menu end @@ -203,16 +206,105 @@ def display_empty_tank def display_full_tank puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" - puts "| ><> <>< |" - puts "| <>< |" + puts "| ><> <>< <>< |" + puts "| ><> <>< |" puts "| ><> _\\/_ |" - puts "| /o\\ |" - puts "| <>< | |" + puts "| <>< ><> /o\\ |" + puts "| <>< | <><|" puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" puts "|_____________________________________________________|" end + def display_tank_one + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" + puts "| |" + puts "| |" + puts "| _\\/_ |" + puts "| ><> /o\\ |" + puts "| | |" + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" + puts "|_____________________________________________________|" + end + + def display_tank_two + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" + puts "| |" + puts "| |" + puts "| ><> _\\/_ |" + puts "| /o\\ |" + puts "| <>< | |" + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" + puts "|_____________________________________________________|" + end + + def display_tank_three + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" + puts "| |" + puts "| <>< |" + puts "| ><> _\\/_ |" + puts "| /o\\ |" + puts "| <>< | |" + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" + puts "|_____________________________________________________|" + end + + def display_tank_four + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" + puts "| <>< <>< |" + puts "| |" + puts "| ><> _\\/_ |" + puts "| /o\\ |" + puts "| ><> | |" + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" + puts "|_____________________________________________________|" + end + + def display_tank_six + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" + puts "| <>< |" + puts "| ><> |" + puts "| ><> <>< _\\/_ |" + puts "| <>< /o\\ |" + puts "| ><> | |" + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" + puts "|_____________________________________________________|" + end + + def display_tank_seven + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" + puts "| ><> <>< |" + puts "| <>< |" + puts "| <>< _\\/_ |" + puts "| ><> <>< /o\\ |" + puts "| ><> | |" + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" + puts "|_____________________________________________________|" + end + + def display_tank_eight + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" + puts "| ><> <>< |" + puts "| ><> ><> |" + puts "| ><> _\\/_ |" + puts "| <>< ><> /o\\ |" + puts "| <>< | |" + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" + puts "|_____________________________________________________|" + end + + def display_tank_nine + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" + puts "| ><> <>< ><> |" + puts "| <>< |" + puts "| ><> _\\/_ |" + puts "| <>< <>< /o\\ |" + puts "| ><> <>< | |" + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" + puts "|_____________________________________________________|" + end + + end diff --git a/lib/tank.rb b/lib/tank.rb index b875f4f4..45acab6a 100644 --- a/lib/tank.rb +++ b/lib/tank.rb @@ -1,6 +1,6 @@ class Tank < ActiveRecord::Base -has_many :fish +has_many :fishs has_many :tank_owner_ids has_many :owners, through: :tank_owner_ids diff --git a/lib/tank_owner_id.rb b/lib/tank_owner_id.rb new file mode 100644 index 00000000..84f36882 --- /dev/null +++ b/lib/tank_owner_id.rb @@ -0,0 +1,6 @@ +class TankOwnerId < ActiveRecord::Base + + belongs_to :owner + belongs_to :tank + +end \ No newline at end of file diff --git a/lib/tank_owner_ids.rb b/lib/tank_owner_ids.rb deleted file mode 100644 index b2d0f167..00000000 --- a/lib/tank_owner_ids.rb +++ /dev/null @@ -1,3 +0,0 @@ -class TankOwnerIds < ActiveRecord::Base - -end \ No newline at end of file From e91b494cf4460f4ff08f064c1cfcba8947d8caa9 Mon Sep 17 00:00:00 2001 From: dszarkiel Date: Wed, 11 Nov 2020 14:49:02 -0600 Subject: [PATCH 08/15] 248PM --- lib/app.rb | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/app.rb b/lib/app.rb index f607848f..d1e67f8f 100644 --- a/lib/app.rb +++ b/lib/app.rb @@ -1,6 +1,8 @@ require "tty-prompt" require 'pry' class App + + attr_accessor :current_user def run show_intro_fish_tank @@ -69,17 +71,16 @@ def create_new_owner puts "Sorry, that name is already taken." create_new_owner else - current_user = Owner.create(name: owner_name) + @current_user = Owner.create(name: owner_name) puts "New user created! Welcome, #{current_user.name.capitalize}!" end current_user - binding.pry end def find_existing_owner puts "Please enter your name:" owner_name = gets.chomp - current_user = Owner.find_by(name: owner_name) + @current_user = Owner.find_by(name: owner_name) if Owner.all.map { |user| user.name }.include?(owner_name) system "clear" puts "Welcome back, #{current_user.name.capitalize}!" @@ -96,10 +97,10 @@ def create_tank tank_name = get_user_input puts "How many fish would you like to keep? (Max = 10)" tank_limit = get_user_input - new_tank = Tank.new(name: tank_name, fish_limit: tank_limit) - #new_tank.save - binding.pry - new_tank + new_tank = Tank.create(name: tank_name, fish_limit: tank_limit) + TankOwnerId.create(owner_id: current_user.id , tank_id: new_tank.id) + puts "Congratulations! Your new tank #{tank_name} has been created." + sleep(1,) main_menu end @@ -162,6 +163,13 @@ def add_owner_to_tank end def delete_tank + puts "What is the name of the tank that you would like to delete?" + tank = get_user_input + needed_tank = Tank.find_by(name: tank) + needed_tank.destroy + puts "Your tank has been deleted successfully." + sleep(1,) + main_menu end From efb244d626835ac24fc864dbc407fc4ace34d671 Mon Sep 17 00:00:00 2001 From: bminczu Date: Wed, 11 Nov 2020 14:49:35 -0600 Subject: [PATCH 09/15] 6th commit --- lib/app.rb | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/app.rb b/lib/app.rb index f607848f..2ef209b9 100644 --- a/lib/app.rb +++ b/lib/app.rb @@ -2,6 +2,7 @@ require 'pry' class App + attr_accessor :current_user def run show_intro_fish_tank @@ -69,17 +70,17 @@ def create_new_owner puts "Sorry, that name is already taken." create_new_owner else - current_user = Owner.create(name: owner_name) + @current_user = Owner.create(name: owner_name) puts "New user created! Welcome, #{current_user.name.capitalize}!" end current_user - binding.pry + end def find_existing_owner puts "Please enter your name:" owner_name = gets.chomp - current_user = Owner.find_by(name: owner_name) + @current_user = Owner.find_by(name: owner_name) if Owner.all.map { |user| user.name }.include?(owner_name) system "clear" puts "Welcome back, #{current_user.name.capitalize}!" @@ -96,10 +97,10 @@ def create_tank tank_name = get_user_input puts "How many fish would you like to keep? (Max = 10)" tank_limit = get_user_input - new_tank = Tank.new(name: tank_name, fish_limit: tank_limit) - #new_tank.save - binding.pry - new_tank + new_tank = Tank.create(name: tank_name, fish_limit: tank_limit) + TankOwnerId.new(owner_id: current_user.id ,tank_id: new_tank.id) + puts "Congratulations! Your new tank #{tank_name} has been created" + sleep(1,) main_menu end @@ -162,6 +163,13 @@ def add_owner_to_tank end def delete_tank + puts "What is the name of the tank you would like to delete?" + tank = get_user_input + needed_tank = Tank.find_by(name: tank) + needed_tank.destory + puts "Your tank has been deleted succesfully." + sleep(1,) + main_menu end From de788292ae66184cfc014e495438fa90f8aa0fbb Mon Sep 17 00:00:00 2001 From: dszarkiel Date: Thu, 12 Nov 2020 19:51:45 -0600 Subject: [PATCH 10/15] almost fully functional --- db/seeds.rb | 1 + lib/Large_bubble_sound.mp3 | Bin 0 -> 16356 bytes lib/app.rb | 167 +++++++++++++++++++++++++++++-------- lib/tank.rb | 2 +- 4 files changed, 135 insertions(+), 35 deletions(-) create mode 100644 lib/Large_bubble_sound.mp3 diff --git a/db/seeds.rb b/db/seeds.rb index b11ed7f2..024cdd63 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -7,6 +7,7 @@ dom = Owner.create(name: "dom") max = Owner.create(name: "max") derick = Owner.create(name: "derick") +bob = Owner.create(name: "bob") tank1 = Tank.create(name: "tank1", fish_limit: 5) tank2 = Tank.create(name: "tank2", fish_limit: 5) diff --git a/lib/Large_bubble_sound.mp3 b/lib/Large_bubble_sound.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..84d2bdcbdcd38115460e3ba5dd57e1862e118412 GIT binary patch literal 16356 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 Z=-+n&grWbM&_6c(XA1v#_kZm5{{Xr1pPm2! literal 0 HcmV?d00001 diff --git a/lib/app.rb b/lib/app.rb index d1e67f8f..b8cc4abc 100644 --- a/lib/app.rb +++ b/lib/app.rb @@ -3,20 +3,17 @@ class App attr_accessor :current_user - + attr_reader :fish def run + pid = fork{exec 'afplay', "lib/Large_bubble_sound.mp3"} show_intro_fish_tank - sleep(3,) setup_owner - main_menu - end - + def main_menu prompt = TTY::Prompt.new - my_selection = prompt.select("What would you like to do?") do |menu| menu.choice "Create Tank" menu.choice "Update Tank" @@ -25,7 +22,6 @@ def main_menu menu.choice "Delete Tank" menu.choice "Exit" end - if my_selection == "Create Tank" create_tank elsif my_selection == "Update Tank" @@ -38,9 +34,7 @@ def main_menu delete_tank elsif my_selection == "Exit" nil - end - end def get_user_input @@ -48,7 +42,6 @@ def get_user_input end ################# OWNER LOGIN #################### - def setup_owner system "clear" prompt = TTY::Prompt.new @@ -62,7 +55,6 @@ def setup_owner find_existing_owner end end - def create_new_owner puts "Please enter your name:" owner_name = gets.chomp @@ -76,7 +68,6 @@ def create_new_owner end current_user end - def find_existing_owner puts "Please enter your name:" owner_name = gets.chomp @@ -90,7 +81,7 @@ def find_existing_owner end current_user end -################################################################################ +################################################################################ def create_tank puts "What would you like your tank to be named?" @@ -105,19 +96,14 @@ def create_tank end def update_tank - if Fish.all.count == 0 - display_empty_tank - else - display_full_tank - end - + display_tank_update_selection + display_my_fish_tank prompt = TTY::Prompt.new my_selection = prompt.select("What would you like to do? Add or remove fish?") do |menu| menu.choice "Add Fish" menu.choice "Remove Fish" menu.choice "Back - Main Menu" end - if my_selection == "Add Fish" add_fish elsif my_selection == "Remove Fish" @@ -127,7 +113,7 @@ def update_tank end end -####### FISH ADD/REMOVE FEATURES # +##################### FISH ADD/REMOVE FEATURES ################################################ def add_fish puts "What would you like to name your fish?" @@ -138,43 +124,156 @@ def add_fish menu.choice "Orange" menu.choice "Blue" end - fish_size = my_selection - #Fish.new(name: fish_name, color: fish_color, tank_id: ## ) Need fish ID + fish_color = my_selection + my_tank = Tank.find_by(name: @my_selection) + Fish.create(name: fish_name, color: fish_color, tank_id: my_tank.id) + display_my_fish_tank + sleep(2,) update_tank end def remove_fish puts "What fish would you like to remove?" - fish_name = get_user_input - Fish.all.find do |fish| - fish == fish_name - Fish.all.delete(fish) - end + prompt = TTY::Prompt.new + deleted_fish = prompt.select("Which fish would you like to remove?", (display_my_fish_names)) + + my_tank = Tank.find_by(name: @my_selection) + my_fish = my_tank.fish.find_by(name: deleted_fish) + + my_fish.destroy + puts "Your fish has been successfully removed!" + sleep(2,) update_tank end -####### END OF FISH ADD/REMOVE FEATURES # +##################### END OF FISH ADD/REMOVE FEATURES ######################################## def see_your_tank - display_full_tank + display_tank_view_selection + display_my_fish_tank + prompt = TTY::Prompt.new + go_back = prompt.select("Select Main Menu to go back") do |menu| + menu.choice "Main Menu" + end + if go_back == "Main Menu" + main_menu + end end def add_owner_to_tank + # DIPLAY ALL CURRENT OWNER TANKS + my_tanks = current_user.tanks.map do |tank| + tank.name + end + if my_tanks.count == 0 + puts "You have no tanks to add owners to, please go back and create a tank first!" + sleep(2,) + main_menu + else + prompt = TTY::Prompt.new + add_owner_to = prompt.select("Which tank would you like to add an owner to", (my_tanks)) + end + #SELECT TANK THAT WE WANT TO ADD OWNER TO + my_tank = Tank.find_by(name: add_owner_to) + #ASK WHAT OWNER TO ADD + puts "Please type the name of the owner you would like to add" + additonal_owner = get_user_input + #DOES THAT OWNER EXIST + new_owner = Owner.find_by(name: additonal_owner) + if Owner.find_by(name: additonal_owner) && !TankOwnerId.find_by(owner_id: new_owner.id, tank_id: my_tank.id) + TankOwnerId.create(owner_id: new_owner.id , tank_id: my_tank.id) + puts "New owner, #{new_owner.name} has been added to #{my_tank.name}" + sleep(2,) + main_menu + else + puts "Sorry that owner was not found or that relationship already exists. Please try again." + sleep(2,) + main_menu + end end def delete_tank puts "What is the name of the tank that you would like to delete?" tank = get_user_input - needed_tank = Tank.find_by(name: tank) + if Tank.find_by(name: tank) + needed_tank = Tank.find_by(name: tank) + else + puts "Sorry, that tank was not found. Please try again." + sleep(2,) + delete_tank + end needed_tank.destroy puts "Your tank has been deleted successfully." sleep(1,) main_menu end - - - +###################################### DISPLAY SECTION ######################################### + + def display_tank_update_selection + my_tanks = current_user.tanks.map do |tank| + tank.name + end + if my_tanks.count == 0 + puts "You have no tanks to update, please go back and create a tank first!" + sleep(2,) + main_menu + else + prompt = TTY::Prompt.new + @my_selection = prompt.select("Which tank would you like to update?", (my_tanks)) + end + end + + def display_my_fish_tank + my_tank = Tank.find_by(name: @my_selection) + if my_tank.fish.count == 0 + display_empty_tank + elsif my_tank.fish.count == 1 + display_tank_one + elsif my_tank.fish.count == 2 + display_tank_two + elsif my_tank.fish.count == 3 + display_tank_three + elsif my_tank.fish.count == 4 + display_tank_four + elsif my_tank.fish.count == 5 + display_tank_five + elsif my_tank.fish.count == 6 + display_tank_six + elsif my_tank.fish.count == 7 + display_tank_seven + elsif my_tank.fish.count == 8 + display_tank_eight + elsif my_tank.fish.count == 9 + display_tank_nine + elsif my_tank.fish.count == 10 + display_full_tank + end +end + + def display_my_fish_names + my_tank = Tank.find_by(name: @my_selection) + my_fish = my_tank.fish + my_fish.map do |fish| + fish.name + end + end + + def display_tank_view_selection + my_tanks = current_user.tanks.map do |tank| + tank.name + end + if my_tanks.count == 0 + puts "You have no tanks to view, please go back and create a tank first!" + sleep(2,) + main_menu + else + prompt = TTY::Prompt.new + @my_selection = prompt.select("Which tank would you like to view", (my_tanks)) + end + end + + ############################### DISPLAY SECTION END ######################################### ################################## VISUAL IMAGES ################################## diff --git a/lib/tank.rb b/lib/tank.rb index 45acab6a..b875f4f4 100644 --- a/lib/tank.rb +++ b/lib/tank.rb @@ -1,6 +1,6 @@ class Tank < ActiveRecord::Base -has_many :fishs +has_many :fish has_many :tank_owner_ids has_many :owners, through: :tank_owner_ids From 295d1104449440b1e96446fee6624a75c274146b Mon Sep 17 00:00:00 2001 From: dszarkiel Date: Fri, 13 Nov 2020 12:00:18 -0600 Subject: [PATCH 11/15] fully functional --- lib/app.rb | 112 +++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 83 insertions(+), 29 deletions(-) diff --git a/lib/app.rb b/lib/app.rb index b8cc4abc..d09a4ae1 100644 --- a/lib/app.rb +++ b/lib/app.rb @@ -4,6 +4,7 @@ class App attr_accessor :current_user attr_reader :fish + def run pid = fork{exec 'afplay', "lib/Large_bubble_sound.mp3"} show_intro_fish_tank @@ -13,6 +14,7 @@ def run end def main_menu + system "clear" prompt = TTY::Prompt.new my_selection = prompt.select("What would you like to do?") do |menu| menu.choice "Create Tank" @@ -22,6 +24,7 @@ def main_menu menu.choice "Delete Tank" menu.choice "Exit" end + if my_selection == "Create Tank" create_tank elsif my_selection == "Update Tank" @@ -42,6 +45,7 @@ def get_user_input end ################# OWNER LOGIN #################### + def setup_owner system "clear" prompt = TTY::Prompt.new @@ -55,6 +59,7 @@ def setup_owner find_existing_owner end end + def create_new_owner puts "Please enter your name:" owner_name = gets.chomp @@ -66,8 +71,8 @@ def create_new_owner @current_user = Owner.create(name: owner_name) puts "New user created! Welcome, #{current_user.name.capitalize}!" end - current_user end + def find_existing_owner puts "Please enter your name:" owner_name = gets.chomp @@ -79,7 +84,6 @@ def find_existing_owner puts "Username not found" find_existing_owner end - current_user end ################################################################################ @@ -87,11 +91,18 @@ def create_tank puts "What would you like your tank to be named?" tank_name = get_user_input puts "How many fish would you like to keep? (Max = 10)" - tank_limit = get_user_input + tank_limit = get_user_input.to_i + if tank_limit > 10 + puts "Sorry, the tank is not big enough for more than 10 fish!" + sleep(2,) + system "clear" + create_tank + else new_tank = Tank.create(name: tank_name, fish_limit: tank_limit) TankOwnerId.create(owner_id: current_user.id , tank_id: new_tank.id) + end puts "Congratulations! Your new tank #{tank_name} has been created." - sleep(1,) + sleep(2,) main_menu end @@ -104,6 +115,7 @@ def update_tank menu.choice "Remove Fish" menu.choice "Back - Main Menu" end + if my_selection == "Add Fish" add_fish elsif my_selection == "Remove Fish" @@ -111,25 +123,40 @@ def update_tank elsif my_selection == "Back - Main Menu" main_menu end + end ##################### FISH ADD/REMOVE FEATURES ################################################ + def tank_fish_count + my_tank = Tank.find_by(name: @my_selection) + my_tank.fish.count + end + + def add_fish - puts "What would you like to name your fish?" - fish_name = get_user_input - prompt = TTY::Prompt.new - my_selection = prompt.select("What color is the fish?") do |menu| - menu.choice "Gold" - menu.choice "Orange" - menu.choice "Blue" + + if tank_fish_count.to_i < 10 + puts "What would you like to name your fish?" + fish_name = get_user_input + prompt = TTY::Prompt.new + color_selection = prompt.select("What color is the fish?") do |menu| + menu.choice "Gold" + menu.choice "Orange" + menu.choice "Blue" + end + fish_color = color_selection + my_tank = Tank.find_by(name: @my_selection) + Fish.create(name: fish_name, color: fish_color, tank_id: my_tank.id) + system "clear" + display_my_fish_tank + sleep(2,) + main_menu + else + puts "Sorry, the tank is full!" + sleep(2,) + main_menu end - fish_color = my_selection - my_tank = Tank.find_by(name: @my_selection) - Fish.create(name: fish_name, color: fish_color, tank_id: my_tank.id) - display_my_fish_tank - sleep(2,) - update_tank end def remove_fish @@ -141,9 +168,10 @@ def remove_fish my_fish = my_tank.fish.find_by(name: deleted_fish) my_fish.destroy + system "clear" puts "Your fish has been successfully removed!" sleep(2,) - update_tank + main_menu end ##################### END OF FISH ADD/REMOVE FEATURES ######################################## @@ -151,6 +179,8 @@ def remove_fish def see_your_tank display_tank_view_selection display_my_fish_tank + puts display_tank_owners + prompt = TTY::Prompt.new go_back = prompt.select("Select Main Menu to go back") do |menu| menu.choice "Main Menu" @@ -193,24 +223,21 @@ def add_owner_to_tank end def delete_tank - puts "What is the name of the tank that you would like to delete?" - tank = get_user_input - if Tank.find_by(name: tank) - needed_tank = Tank.find_by(name: tank) - else - puts "Sorry, that tank was not found. Please try again." - sleep(2,) - delete_tank - end - needed_tank.destroy + prompt = TTY::Prompt.new + selected_tank = prompt.select("What is the name of the tank that you would like to delete?", (display_my_tanks)) + deleted_tank = Tank.find_by(name: selected_tank) + + deleted_tank.destroy + puts "Your tank has been deleted successfully." - sleep(1,) + sleep(2,) main_menu end ###################################### DISPLAY SECTION ######################################### def display_tank_update_selection + current_user.reload my_tanks = current_user.tanks.map do |tank| tank.name end @@ -224,6 +251,14 @@ def display_tank_update_selection end end + def display_tank_owners + my_tank = Tank.find_by(name: @my_selection) + tank_owners = my_tank.owners + tank_owners.collect do |owner| + owner.name + end + end + def display_my_fish_tank my_tank = Tank.find_by(name: @my_selection) if my_tank.fish.count == 0 @@ -259,7 +294,15 @@ def display_my_fish_names end end + def display_my_tanks + current_user.reload + my_tanks = current_user.tanks.map do |tank| + tank.name + end + end + def display_tank_view_selection + current_user.reload my_tanks = current_user.tanks.map do |tank| tank.name end @@ -367,6 +410,17 @@ def display_tank_four puts "|_____________________________________________________|" end + def display_tank_five + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" + puts "| <>< <>< |" + puts "| ><> |" + puts "| ><> _\\/_ |" + puts "| /o\\ |" + puts "| ><> | |" + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" + puts "|_____________________________________________________|" + end + def display_tank_six puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" puts "| <>< |" From a000722b75c2d3c1ac119059ec5107cf67f6f4b8 Mon Sep 17 00:00:00 2001 From: bminczu Date: Fri, 13 Nov 2020 16:48:17 -0600 Subject: [PATCH 12/15] fully functional with audio and visuals --- Gemfile | 2 + Gemfile.lock | 4 + lib/app.rb | 264 ++++++++++++++++++++++++------------------- lib/flush_sound.mp3 | Bin 0 -> 146086 bytes lib/glass_sound.mp3 | Bin 0 -> 41920 bytes lib/water_splash.mp3 | Bin 0 -> 93273 bytes 6 files changed, 156 insertions(+), 114 deletions(-) create mode 100644 lib/flush_sound.mp3 create mode 100644 lib/glass_sound.mp3 create mode 100644 lib/water_splash.mp3 diff --git a/Gemfile b/Gemfile index fe62c672..0932688c 100644 --- a/Gemfile +++ b/Gemfile @@ -6,3 +6,5 @@ gem "sqlite3" gem "pry" gem "require_all" gem "tty-prompt" +gem "colorize" +gem "tty-font" \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index a96fd332..213071b5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -13,6 +13,7 @@ GEM tzinfo (~> 1.1) zeitwerk (~> 2.2, >= 2.2.2) coderay (1.1.3) + colorize (0.8.1) concurrent-ruby (1.1.7) i18n (1.8.5) concurrent-ruby (~> 1.0) @@ -43,6 +44,7 @@ GEM tilt (2.0.10) tty-color (0.6.0) tty-cursor (0.7.1) + tty-font (0.5.0) tty-prompt (0.22.0) pastel (~> 0.8) tty-reader (~> 0.8) @@ -60,10 +62,12 @@ PLATFORMS ruby DEPENDENCIES + colorize pry require_all sinatra-activerecord sqlite3 + tty-font tty-prompt BUNDLED WITH diff --git a/lib/app.rb b/lib/app.rb index 84a81339..5ba6facd 100644 --- a/lib/app.rb +++ b/lib/app.rb @@ -1,5 +1,6 @@ require "tty-prompt" require 'pry' + class App @@ -8,7 +9,7 @@ class App def run - pid = fork{exec 'afplay', "lib/Large_bubble_sound.mp3"} + bubble_sound show_intro_fish_tank sleep(3,) setup_owner @@ -17,6 +18,8 @@ def run def main_menu system "clear" + display_main_menu_title + puts prompt = TTY::Prompt.new my_selection = prompt.select("What would you like to do?") do |menu| menu.choice "Create Tank" @@ -152,7 +155,8 @@ def add_fish Fish.create(name: fish_name, color: fish_color, tank_id: my_tank.id) system "clear" display_my_fish_tank - sleep(2,) + water_splash + sleep(3,) main_menu else puts "Sorry, the tank is full!" @@ -171,8 +175,9 @@ def remove_fish my_fish.destroy system "clear" - puts "Your fish has been successfully removed!" - sleep(2,) + flush_sound + puts "Your fish has been successfully removed :(" + sleep(4.4,) main_menu end @@ -231,7 +236,7 @@ def delete_tank deleted_tank = Tank.find_by(name: selected_tank) deleted_tank.destroy - + glass_sound puts "Your tank has been deleted successfully." sleep(2,) main_menu @@ -319,153 +324,184 @@ def display_tank_view_selection end end + def display_title_intro + font = TTY::Font.new("Doom") + pastel = Pastel.new + puts pastel.cyan(font.write("WELCOME TO RUBY TANK")) + end + + def display_main_menu_title + font = TTY::Font.new("Standard") + pastel = Pastel.new + puts pastel.cyan(font.write("RUBY TANK")) + end + + ############################### DISPLAY SECTION END ######################################### + ############################### SOUND EFFECTS ##################################### + + def bubble_sound + pid = fork{exec 'afplay', "lib/Large_bubble_sound.mp3"} + end + def flush_sound + pid = fork{exec 'afplay', "lib/flush_sound.mp3"} + end + + def glass_sound + pid = fork{exec 'afplay', "lib/glass_sound.mp3"} + end + + def water_splash + pid = fork{exec 'afplay', "lib/water_splash.mp3"} + end + ################################## VISUAL IMAGES ################################## def show_intro_fish_tank - puts" " - puts" ___ ___ ___ ___ WELCOME TO RUBY TANK (( " - puts" |___|___|___|___| (()) " - puts" |:_:_:_:_:_| ><> )) " - puts" |_:_,--.:_:| <>< (/// ) " - puts" |:_:|__|_:_| ><> _ ) )) (( " - puts" _ |_ _ :_:| _ _ _ (_) (((( /))` " - puts" | |_| |_| | _| | |_| |_| | o )))) (( ( " - puts" |_:_:_:_:/|_|_|_| :_:_:_:_/ . <>< (( )))) " - puts" |_,-._:_:_:_:_:_:_:_.-,_| o )) ((// " - puts" |:|_|:_:_:,---,:_:_:|_|:| o ,-. )/ " - puts" |_:_:_:_,' `,_:_:_:_| _ o ,;'))(( " - puts" |:_:_:_/ _ | _ _:_:_:| (_O (( )) " - puts"_____|_:_:_| (o)-(o) |_:_:_|--'`-. ,--. (((('/ " - puts" ', ;|:_:_:| -( .-. )- |:_:_:| ', ; `--._|oo|,---.~ ``)) " - puts". ` |_:_:_| (`-') |_:_:_|. ` . ` |()|.__( ) .,-----' `-((( " - puts" ', ;|:_:_:| `-' |:_:_:| ', ; ', ; `--'| \ ', ; ', ; ',')).,-- " - puts" . ` ` . ` . ` . ` . ` . ` . ` . . ` . ` . ` . ` . ` " - puts" ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ', ; " + display_title_intro + puts" WELCOME TO RUBY TANK ".red + puts" ___ ___ ___ ___ (( ".blue + puts" |___|___|___|___| (()) ".blue + puts" |:_:_:_:_:_| ><> )) ".blue + puts" |_:_,--.:_:| <>< (/// ) ".blue + puts" |:_:|__|_:_| ><> _ ) )) (( ".blue + puts" _ |_ _ :_:| _ _ _ (_) (((( /))` ".blue + puts" | |_| |_| | _| | |_| |_| | o )))) (( ( ".blue + puts" |_:_:_:_:/|_|_|_| :_:_:_:_/ . <>< (( )))) ".blue + puts" |_,-._:_:_:_:_:_:_:_.-,_| o )) ((// ".blue + puts" |:|_|:_:_:,---,:_:_:|_|:| o ,-. )/ ".blue + puts" |_:_:_:_,' `,_:_:_:_| _ o ,;'))(( ".blue + puts" |:_:_:_/ _ | _ _:_:_:| (_O (( )) ".blue + puts"_____|_:_:_| (o)-(o) |_:_:_|--'`-. ,--. (((('/ ".blue + puts" ', ;|:_:_:| -( .-. )- |:_:_:| ', ; `--._|oo|,---.~ ``)) ".blue + puts". ` |_:_:_| (`-') |_:_:_|. ` . ` |()|.__( ) .,-----' `-((( ".blue + puts" ', ;|:_:_:| `-' |:_:_:| ', ; ', ; `--'| \ ', ; ', ; ',')).,-- ".blue + puts" . ` ` . ` . ` . ` . ` . ` . ` . . ` . ` . ` . ` . ` ".yellow + puts" ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ', ; ".yellow end - + def display_empty_tank - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" - puts "| |" - puts "| |" - puts "| _\\/_ |" - puts "| /o\\ |" - puts "| | |" - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" - puts "|_____________________________________________________|" + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| |".blue + puts "| |".blue + puts "| _\\/_ |".blue + puts "| /o\\ |".blue + puts "| | |".blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yellow end def display_full_tank - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" - puts "| ><> <>< <>< |" - puts "| ><> <>< |" - puts "| ><> _\\/_ |" - puts "| <>< ><> /o\\ |" - puts "| <>< | <><|" - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" - puts "|_____________________________________________________|" - + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" .blue + puts "| ><> <>< <>< |" .blue + puts "| ><> <>< |" .blue + puts "| ><> _\\/_ |".blue + puts "| <>< ><> /o\\ |".blue + puts "| <>< | <><|" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" .yellow + puts "|_____________________________________________________|" .yellow + end def display_tank_one - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" - puts "| |" - puts "| |" - puts "| _\\/_ |" - puts "| ><> /o\\ |" - puts "| | |" - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" - puts "|_____________________________________________________|" + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| |".blue + puts "| |".blue + puts "| _\\/_ |".blue + puts "| ><> /o\\ |".blue + puts "| | |" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yello end def display_tank_two - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" - puts "| |" - puts "| |" - puts "| ><> _\\/_ |" - puts "| /o\\ |" - puts "| <>< | |" - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" - puts "|_____________________________________________________|" + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| |".blue + puts "| |".blue + puts "| ><> _\\/_ |".blue + puts "| /o\\ |".blue + puts "| <>< | |" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yellow end def display_tank_three - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" - puts "| |" - puts "| <>< |" - puts "| ><> _\\/_ |" - puts "| /o\\ |" - puts "| <>< | |" - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" - puts "|_____________________________________________________|" + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| |".blue + puts "| <>< |".blue + puts "| ><> _\\/_ |".blue + puts "| /o\\ |".blue + puts "| <>< | |" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yellow end def display_tank_four - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" - puts "| <>< <>< |" - puts "| |" - puts "| ><> _\\/_ |" - puts "| /o\\ |" - puts "| ><> | |" - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" - puts "|_____________________________________________________|" + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| <>< <>< |".blue + puts "| |".blue + puts "| ><> _\\/_ |".blue + puts "| /o\\ |".blue + puts "| ><> | |" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yellow end def display_tank_five - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" - puts "| <>< <>< |" - puts "| ><> |" - puts "| ><> _\\/_ |" - puts "| /o\\ |" - puts "| ><> | |" - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" - puts "|_____________________________________________________|" + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| <>< <>< |".blue + puts "| ><> |".blue + puts "| ><> _\\/_ |".blue + puts "| /o\\ |".blue + puts "| ><> | |" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yellow end def display_tank_six - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" - puts "| <>< |" - puts "| ><> |" - puts "| ><> <>< _\\/_ |" - puts "| <>< /o\\ |" - puts "| ><> | |" - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" - puts "|_____________________________________________________|" + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| <>< |".blue + puts "| ><> |".blue + puts "| ><> <>< _\\/_ |".blue + puts "| <>< /o\\ |".blue + puts "| ><> | |" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yellow end def display_tank_seven - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" - puts "| ><> <>< |" - puts "| <>< |" - puts "| <>< _\\/_ |" - puts "| ><> <>< /o\\ |" - puts "| ><> | |" - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" - puts "|_____________________________________________________|" + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| ><> <>< |".blue + puts "| <>< |".blue + puts "| <>< _\\/_ |".blue + puts "| ><> <>< /o\\ |".blue + puts "| ><> | |" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yellow end def display_tank_eight - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" - puts "| ><> <>< |" - puts "| ><> ><> |" - puts "| ><> _\\/_ |" - puts "| <>< ><> /o\\ |" - puts "| <>< | |" - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" - puts "|_____________________________________________________|" + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| ><> <>< |".blue + puts "| ><> ><> |".blue + puts "| ><> _\\/_ |".blue + puts "| <>< ><> /o\\ |".blue + puts "| <>< | |" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yellow end def display_tank_nine - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" - puts "| ><> <>< ><> |" - puts "| <>< |" - puts "| ><> _\\/_ |" - puts "| <>< <>< /o\\ |" - puts "| ><> <>< | |" - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" - puts "|_____________________________________________________|" + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| ><> <>< ><> |".blue + puts "| <>< |".blue + puts "| ><> _\\/_ |".blue + puts "| <>< <>< /o\\ |".blue + puts "| ><> <>< | |" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yellow end diff --git a/lib/flush_sound.mp3 b/lib/flush_sound.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..849a8c668cd0e09f3f7814cb3bdac793b2eba167 GIT binary patch literal 146086 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≫{AcApEt?8{ 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 z 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 literal 0 HcmV?d00001 diff --git a/lib/glass_sound.mp3 b/lib/glass_sound.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..9e96a317e934e3f71ae314ad134b4d1b635370af GIT binary patch literal 41920 zcmeFZ2UJsEw=WucM|uaTA@p7a4M<6V(0h?0T|lZdkt)3<)X<~^B=jm>kls58Dk8nA zfT99IZv6h=81Ibp&b{9o@4PeaJ#YNy7}gw}-w6C4hydnF|6gil?&jr!ZFCF!5d#47 z`-uO&`2H(d{a5nub-?^N@&6`}z+8R$>soRV|JW0rV0UcvC!6FwA`?+P1u8k^9f~gU zZ;6#p94NQ9DkioUPh~ldCWUVGf675myJesBl1nn^jy>dh%0;X)>Mz^86FJ}W4e01- zEeJvxOY}R&E|a zzIr?G9o%a>>JGtsw1fg@>Kk7j143Sq1MyGB4>s+ly16F~TZ$bEOr^?s3Uw(RjfD`q zwBWR~J_^lS*sv@O)2Ffk9d5V(dY>wgpH0@5>t#a2&j*~vx{QQ*1v`^jF;B%OkazeJ z`+uoY#cWb7&jis5ZGeP$xZx@*Y)l)HPPL{hV}FjM`mzd2_z3V5*!fF0S_@W^bxR$; zTg&k!(7Ng$kg~mD?k0=%y@rg>O7c*ySW zJ6*<+pSS(FF7-)dJhAX6%v0}vv6~2hJb>cUKLXajy!`j}Zv_4&0+_2=Y#Rbv4Mn_L zlAA5MjN(qQUSJQxkL36O07b<6HxUs4T;ijFFR69X@$F-Di9`Lu2hRGqqWs#zbO+;c zQd))jJ!LeVVncQP<3IIHYU&*h$w*u9aiOPYuM%i@GbSgt4EhGE@+zEt+ZqR}s#3Yt z64>gm+$!@lo*uDfw|$m$V++oJ(p3Fgx?;}}A&n!QST8Eu~KK!Pg06={H zu;|xhX6z&4&P$F%f}BELkHRzk@{OVVmm}230t7Dvp}k~cyhKyCIHLF2N=ot9k{aS` zk;@Oor`N&PyUu=-OGbO2Z7)}mFEHoL(pptj2{Z)$`bIYCX1|0=@T0JTc^+m%5cr(H z-+V?q9m-?*{)80p?fCukfv@z5ivy|B42GD0DXhK!qb0`3V5P1prT!uzw?u z{}C?&03gD~1pj-~`mZqc?`!`576I~D6Y&2wYQ|Ld&>+iFFBk=DK_?tri4v@dU{x?KGLWP=0vI&sQPg&Byii7L= z`!3#csQBV2R4OitMG0UDsR;s*%X5{zp(gfU#r0Q(Ff`oPOwatM>0Bi!%E`iEcI|7_ALDAMdu9t2`rhf6R{brPE2$?;;u{38Iz z@R~Qw4|(^wx!!Yhpe7+ve>WGlSL`KnWQr#KsyWY5F13i%uho1UBPjAot~Ia~&nYG@LG2Ajex zn}oPHI(_JG`_8m0v>bF8ubj5A4aG#8w!b#K=XT#O^fWJPsT)5!yAJbnX-8=CgM*Ou z#xPgFQ_6a;A5M>EUpIyBhhNkpy9N9%0rcfl>%8zYt zI8W(9G0hMFd^h-+K)BR`BT;mCFrjqjnWI%(m}l9%$GruG!CjGY-sx_x!r>AF$N+|} zRoiAF{oW6@cDB3RX#>1u!Q$D5%8In9R<~v-**gpfxa^MG=mLE*eaE~~%N+d#Oj+*+ zy}stBmUX!b*%8d$ZV9Q${vq$ZXVck8M{ggaHNEa7%O3K|?Jbv-6Xzq<6Jbe~6UoF90CX_?PqpSU?c|OkmseT<9a`^?HbJw_x(3bMrMq~3=g)q`P zT;YCZUCS#U-sQwarMEk2tPw87na#||aDF!_npA9w-AH&vA$z}vFPqJ?$-&hm-$3lZ zQ@NF=r;Jzj$M_?f;o4&5qPt%?lpy)#x7Vr5`m^O8eJwGfQR|U$3k_}0Pm_kd33n_1 z0BWtye1|wa3Oqh3{y59_DE?Iog;)Es#p=dLtB(?>F_L>&7<>H2&lF8)ow7QcPv4mYDP;d!4rcs-HXpetp-Kz;+x{1#aL zu-qt^V}C0LUAByB=*;{k`;fW0`8~U4XLiv_s}=ZBg%Ipb1fa#_z^rbTn;I@ z)n~uVnW_V`gRPZK(|(uSlA<|P&T-{Y>luv3^T`K|X{>r~v};D2@i)%{Lj&C3AW{NF(!Dd%RAvjH~Vus@{S88X;v^fKfF-XZ! zC3Gz#XcB!OnyN+W)T5KsIPSVUCJE^Rwg|s^P>v>497jbK}A_uEyOLl%sZd#4L87$xUwcBoc4_` zQnkLTKvC-&x%fFrn{*>xdXfy)mEq)TZwPV?n^mEur{g<2y#@BCG+?Bk!v%1d0y7>~ z`BTGvk|n58q-P-&#!Ak2v@5h~`8daTAZyapmf4A6gs3B!qFb&A#D)(&7b2ZK{0JuJ zq*y3TT{;m0nT7hhaUY1_&v)uU`76Ft`5PH#NEv#SE0UB(y>iqq%@8vJed8YO)RuC5 zsav9JYi^bC|M_V1C)CDP?vgE4@ytWLt0$Pik8XL~ zbll78qqIr)-8Ts+EkDcm-uZ#LU$|@24`SnPh3(qyheg~s*wuv)eUJW;PhbM!R3Y4<*hh$<`Fk`j0cN?!;`f2!~_P(%r z)30X{V%{*Knp%Igfxijpkvo(-b ze*+wDOmuMdi@}rWNe>fq>6t3`%5OkXES|Zx!93U240WXBCzAWX?GQhj|^YS&dj;3?cyL_3R zVCT~wr6f2_WNmeaX9H$_YEm0t&5-`-%~U~k2<&bx*<)7Vvu}On{8PoICod;{&v#8- z%ds9^Z(#~|FX|4q-m?C@Di;W|Ty3iezrb7$E{!rd+vl=GL}t=|%$`}=rT_YB_~{l) zswGsAW;*#t0IhN3amjNM-!F8KTSOP<9OG^2S4x3DW3RRE&*5;0G^r;Q%7e)OrZ*|rYypU2Z5 z7uR}xF%W$TuD7`L;+vYqQ500lFGcPC=bc{xOxcW^E=vt)jI^TyL>Txd0N7HA+$g8f zf~(P%_%^jl(+Jvfs(#&9peLx`@Ta2YEj_Egyf6->h{oF=gZDHLR^X#8wm3_&w)>Qt z3zxKP!^F=vDKn5-UmJs0k6-)<=l11&@~#^;kvPmPnpwf>EdX*WqHD+or*?b(6>1YL zyQ(}71puxnn8fSt0Jo=A^ez+uc$W}?pZs7zuxQRwXV+)Nfj2lCTB{%8)xM#r5w_tE z+%u(R1=zb<&V}|sDGOR#U6<|eyHe?QXla|s-S#@5D$q%v;hq%Z=JVE~(4rjkO#7Iq z9N|_eTZ@&q^X{+O3Xc^m^G4owK((jb>uJ6b=1!!1Y~vI2oB)B^xU3y?J;=CBoVIUI7y4WzVb%iu>sI_r_NR)&n%h1RjOjG1i|T2ai9TT`h;y|f#kl@ z6co7Rv9@O^sBl zTNj%$9I$W-RCKF;a_n1U>0T5{vVw6t+o}Hy?FxFI>26!}<)^>2(T7X;JFphxVBC{_o9hpdu8gYE_KEvpK#`W^ssTq=;N8Wk=M z#L-xS4RA3}REP6`N`>u%WFNcgg4#eg9zbnP1}BFD5BIHZqQ)nCt;jOH5@|uuECr~6 zuowUY&pcOg+Zi-ev2!CP$Ync`(u|lQ58zt#dQ~G{%w!iCMq=;4{GxbfK~7Dl@FI5_Behf(QG z4H_p%CTJiFWyj;xiMMvkrNZ$BPWeca12X3c z-U8~0Ia4EiBLYO{NTQj%BAE1x$wkMSLCW5YEQDcJHCrs)UJWu2!K>u>TwwV;Vp&($ zX8*nk20Rd_a4`)rV2EY8qI@m&c{)KU;R-=C;$u|aH6gcMaYMU`2W|;qUJ_4-M6UQ_ z>thj`nD+hAB!A4jnRp!2!x_w~02oGYH&I zKy!-mjp3r0_v-zk@5t3D?eL9tOgMMfS2XhYI|t0A;2vrIH(>l)W9*zzSAu>)(@)pD zf~UY+9U9zjk9`Jq=gfS;FYJ|`R8&UEJPKSyDYG(X7Af9IDO76?;Igdbq0MC9$!Nrj zmzaLqn_rQ8+p+R(aWnG^t(nf<+K`wJyYFtBx$79qIWP0ZjtD;{)GEeKFZ=~Nd5=Xl zxdgXY6?%WP)&^i<#vI)t=QQz5?4CpVZK%O#^yva`e++a!?@h=;iGAN(P%AhAQ+@D%w4m}+C z3Te{6&rNReYzImxjjmrm#$bdnA72Y$L~JhdhPSOADgUE__B=N)xXpF?(( z_%Lsk78{+2h$uq`d&$$GCMwTP&HDWN_h(1V^X$Kh`7OxkztK-$D(g(WooPURcKLu^ zXmTgC^0CrcFD>wVpcILb?!g=uIb*JFTZsLKzo=TMORQAki5DE7=53R7t2MD#p zXuap`53-z9JrT>IcX13HJcAGCvrIBpA1Uq`y9QO1jrZ-b1hPB4O|f}Q7u0U?c*_1T zD=v_IO&sk4E(&bx}RqAzERZb^iPmVJ(SXZ z33F%fyl3@&J=frYLEut`Y+nV^iL_FjQ;$aD-0kw`$dkYrN9#>mgeHy9ZNVn|+(x3| zJH{sLrTr>~cejpfO2%;w#&~F0hP5GEbScXYRyuPTVwHI!JwwGcWv01E);y8q%t*NE zOVJ#T+!0n_m=k>#|IG>?+Ft5IK zT>5A$G!bKg%On86L;K~P-BO+aliH-Rot!H+r^h({4x?xC}v|f%D%J{;- zXoqHA9lj{;pOXGiYS67(QQOep1EEO{9g;0)Z`@uUn=~-E1Ek21k@x6Wzj1hkmTC)0 ze}{DEzQqakZbdRsF4Ws@;yb(L>uL zylGo4vO6OIMcII5L~l~C5Oqjvv%>f%Z~3Sa*-mE&N{EMC;#8a;Mpz;Y%|VEzQ{y2C z6^T~d4UK9wb<#Qpw#6^U9Q=zNz3iUO=9Bhms2c}SD)4;=R2S0kFi~+s>Jx) zIkbwbP7%(!J3^2$q7>0mPR!XFo~lKJ-cTg(KB@(d1l~so6iJJ*S!zoPP`x41ek3#B zB)p$nQKl9OT3M1Z;@8>G>2C6f>0BPo<#jWhYqF}P-$(PA7*_Dl-3=i6nfCDVE9S=Y z7UX<#YssGO>8aXjeXq(NXQ_Qq*SQ+Ac}5W^I3>0g(QCP@XH{(OPT$it_vSmrr|)SU{5sz_u*^jpuC+-+&WpeJ!j^s=^+Xi!RTnoddjdsPG5a z@W8xq5GShe5r3Kh9n)fge+omXcd;XsP?|;kJ6-ZO36MNhp z^5_^Y;28&ivJI1bSEuadB<1{(qdwd0s(=?tbN>8BX3H!uvKO>^ zO(~0vP`Xb>5hUwcwGuX}=9-TaxP-V?YQ-pVQUX!dSwfUdC`VGtzt*W3!~!W%+DULpa@v!0tTHtagblpi>aLwGitUy`nTly z>zJHZaHbKv)?l@{JR#Z=D!)}LFyES92smT4tfpGunHdni_<$~z4NY;4U*TQ+@Wp&j zsaVgkxhp6KN`OzQw#3*u$6eBkzbQRR+;RVux}hW8&p?o^F^dEs#6`qPUx8+3MvAZi zd5Pf?>RR+s7ic5_kJbpxd;`HfCI3$fJ&an$`IYZIc`Ib`9<>*VJ z&htWLPsV;hNH+V2?<2{_&`IGp^Vk&l)i<+2a6}&fN7BUNhn&Zl_TzV}PRk>qK}TBB zvlDobi}&Vd(45ej#>s#SBe1OBn(HsH0&Hqa+Z35E*J5F>gMv~~KuT?($2PQmcEyjq zt5~)W3MJFbytLql@j=_Mqf9Z;%%#o7$=TYa6Kae3d}9_2eRlb^GV;NC#y0k2$&X>HxmxAH+b7Q*Qz1K%g_epwi~o0c5^IsaGy*- zXf02u&xyXyxz;rhxNQ}F(=s_tb1H)q3&%cX(lGov(Eld<2ISb);aBZuR_dB<7p&ob ztFE^rto}>m07=nS_oAy{e*W}z&xb||;dhpA1ro9iai8lMJ^`;3d4K9lPFHK!;|0r5 z`_S?m*ew(3xU2WENQB|@r=g5^4FW2=^;slNlvz?y?6iPU-2>1NjcbSyE$=}91DfY@ zjtYqz*(nG?8C&3RyP|osqtVo*Q8p|hXx@tLxhCiGMIB9IAbY&pg%!$P^{SZMfK^<6g^P=S1xa4#9Oj< zm%fp7-ZkkdLq}~?I@2a+`N{7QX?;}Vs}g3Kktj}$i#v``dIhz?)rEkZF{hlwQJ9gz z)2QY(!9a)2%n5Pnhmsyi|DX_n03Bw`MO)_kDy=GpQQC`%;=*QE7B+F`?velSR7W;} zpi*)vNk^XMq3BE915=d8XPc^bUpg6PK}phZ-F+T^^6`-j-3k?3Y$R9grnBMQDd|E% zH&HfhX@{M2#?!J;JeZ%$lu1@IAc;^KCVEoDPV#$?hL3kp9g*8)(>>QvX^7F1qL2%m_i|6gA^ZIIN^A5M;a% zW@&li;JdoihCo<8E&iCSwZny460ZsWSlM%08jvOJY(auS6O5W)Fa!7e9_BMh4z8_HPY|T#S%I;`}It(x^N7;f8vzwnU z>?>RC*XB7Sae6$ErKS-EYwwbv&`W%VF3bxcs*QBue3LuaG#aeBZSG3p%PWBMf~}te zniP@6JN9Nfnu5k7fYXRy69Msy(~nZ6XP8r=+Hfx9Ngnv*g1N>V*6QSCM$+>~?M>$i ze>5WV|7)W8Uv6Q%5dgxX>T;#pwa$w|jw$!jNDh#X9mk|~pQf`;kE~H`p;jI{W1k$V z6F4flwhYh1sW!m73v!!#0@H}y?!zsnREYOc>qOB$Vc<(DtGvT`l*@g&=y1rjv&7z+ znid^kdXCOg&m1j<4^;55ux=3WXjdc^=nQH5BeB)|KMw~Ggg-MX5ij#?tM3eD{_bT~ z{!MS-u4n(=UAJFyQyrDm_C>VtPEz$`1avif95Q(M1C=M#G+WW)W>M&R#T+fW zU&PC);U&ZI9FABWOCS*dfDQ!mZq;)w`&+fmZMl&ef|W-J8$XHsL7xlu)-icj3({k` z1R)PDQ*_qyi zHk}C6ZAB_BMwhlKt|F#c?_nk>tgiXh5v2&V*?NHfW?0fRjKQXwL{xq$mxsBp?`}V46nfW{;r*!R_hSFOVR^iFD#Q{<#2he@ z*SMSE7|hKi9WM}61k|G)cG@yzQ%{D$l4m6(Wq}5=65@W`s{yo*`m!i1?h1{4v`J}H z_BfQzKvHKhParv%j-QCy|1@~Kf*itpry_|l+c6KJj$e~lNXPEVTSX#*e<;G3$j?sC zCsg{<$+Wx|J8E5flqQIqN@yzyApglE@iqnxA)YusSjQ2V0cX9qsqkwNvP zk%+lKCn}Dp!P}l9M#%hj%7OEq-GqHW;KPTEPf4vEV z!PRLQ+I=oL@6Rj;UK78Qmj!fY(pmONM`wQ-1?Ee{Yq8kwvE$+DKO#G!iU!i-_`wHt zBIt>k;Z!(xSps8ga0s*c$%}`2LAqpfx#9v(P2wgXiD4U(8^BeH8BN zhxNq}j^L4!2Ym-m;8RtYaT0J2-bYJr0{2K0ko08F!K3y^S+RDL7v7_%ju!(%=PaBF zPaAX@ARSC<1m4ahQ3pYZjL>hmPy1T(blOA}q81F2(t*sX#LnLB4z@~-86!zqHz)5lM0~txCvXlPN?>DA@S>L z*9^|RH8N@8xui00x`}=7NXXZ&Tm^3gm2cnoh=;)p0!f*ZEwI}XlHTWI_@tWC#h!+v zjSUdjhq(JYG*DDahKOFFrIrdEaidODCNZ3n+m6ewAaQUm%!OJ!pjI0^hUZk%u9=Cu zPVD-UvV8z{CPlTQ|uLF+5ZHF)aT(r3~Q3tik$HJN?xF*DyV|dsc7J{8iF_=r4 zVwc@?iY74N;Pse7%J)PeP3)Qk;fiW4UWwySYjM5->d-$EQD6gD6EzF4ks<}+ORtHf zEbU~kA+2AvbUF{iDTUCrPllVSpM35&)Iiizs8^hheCz*V=CP4&vX8E{C`^G#mSrW; zd+g}ZkLOsJd|exP;agX8_sh4HwT6BpLzp^nO{S{dw2e9M8GNP0g{4Q7IehEa&Q;!0 z-Ome5nq(Vx(FqfdIm29=46S1ptnh%OZvQz30mQkt05}$xeC8<6Y#od5Nu!ZevCp$A zg?Z5?CT}GyDU))^f062POwr}DSqxG+A*uVfsN-392FD4uO!H8YEKD(>A{EUK{YGzt z3e{*>$UuU*@Bj<#oPu_)`!yOlB&9Ok5Tq!z5hr(nYlgO9E`7rGL^+R?5uU>V+W(&v zS_?HOZYlE~n_{86t?0#Acmy5L@*Lpn1^se`b#yyNM*QZu|EqWJz~{M(A>vx(a44plC2{+8-kNrxo7gpvf8xg{_BEB|v(~2WP>*#XR~pb~ z_qlh$Fi6WwLp0Kfo`9`wqr!p7)Qb1R-FcpA?xn)$(zi9*jUxiEgQy)Rfua$%JD6Cj z;lYaDy_(=`g{2oAwwYN!i%xdW>oMzVPneB*f2hiJVXnF8996+sXXA_eEomspeD**6 zIJ5k;n^>)?>7w1%eZgw^;JCulS>+nnTZdXJg@VfALe@+;{fyF(w(mZCHiTE|~#?ND{`r zP^*^2vPv9$pdLT&IJO;w%|Wq3oElR3l_Io9@u6&5&B`d(c$HXwWJuu;|5+70LMudM z2LRG;eYZ@*kk|T!q2tP4@@zifqA^!EW1H$!=e4bzC<(Rs#=yAm1+sILX)gwWo6bet zA?h_@(JVQEOD~Tw)|c0p_T5k-I-&GqLRJL7J5twDJ0l#fTDd?sCM19}xGOW9<8-DL zz{Qc9pAeav%n9Ca=%%Q2Q+W0n4MSQLn&u?bX1kpX>2?Mgkflx-)E?wEwkN?6#KLdl z(j(>n81e6fIUw8M&nY(7qk!*~aB4DC)9)|TdYIkN8OEmT(J)q8!N+ijm3>9K6El3@s?A^b>RQP@d59itmPwR?q^|olSJe0||AS zL;mD~I@k+Pdf)0473U1U>2Phut{{3bQF!Ki^_*Kqqgt`u9WBfu){IwqggH97?2aAP zRV0M*;6F|hc|>}PpUmq>)a2?YNALHH^~^gHU8@fFqLwBDZLxT0nLjnu+WB_8flS*9 z1NzGU!oG0Q)6lH>Rv(qOd9KO`XJYco74P#=&D1j{UASbVd3)kx`2^W!iDMCuXfn>k zbYFlTS$Ybc0=}AKvsvIYzNVhnK1Cm>Rnm68Jg7Hsbeq&{}MrFNe0tW zf#$(!4!M`5%`|#13R@+YFg;l%mh*;Kbienmrs*I;G$ABkF-NRzQ~-`9PL+wJ=|jfW zt0Row$H(o@yq0u?mRoHFp-FR{^J6yB3it1@7RPb52PFj=y`3;QpE#Fjq)oUJfvsky z**DmaQAe}KR3bCtB7yLy8`~e@B}nhV3IcMmEn+au*$Fa(710$z^LJ`Q(W%Wkp_8W=%0*mqKUDHV(WVR6w=L7ddTbBc2!8jfObImPQ05qIKD$sk2xp4-Qu4VvJac%3eNCuzSXIA zo5qViYfSC=YtR1iSD^IxsdfY>(u7`lIbojI;m}DD#3!#uiBRF!S*+RmRhCz#)(uZU za|E3s0u&*wu4t!m-9!Q2DB~B!4?y{yB36oMDsJI$D{46`E{FUnzVCI2t-%01N%d8j zkw2!3Y~AnN7iN>5qHD$4`JM7&6T zn}kXyVG35~WgAoXbHbVkTtXJlS9ez{*MG)|_x@TwsNNq6yhY9R`{R$iSLN3dm1l08 z#A`3snYuGH%Yh#P0K<{#phEC#Yni+Hq8Zy8#s!LSIz{iQ+wFi%N?dwe|CLFv9BOIE zn`xTiiZN~k&|T8{4ehkT&VA#gBp;H2J^pwu|BJ|u&NYHnml@6gA+{Q%m<>sQ>m+nZ z=zmL0UH!IttjR zJ^BoEJD2$#kv#=1ZbxNHKDVo_WcEZwxj$UiaN&s@6c4X77>2)?@HCt}l@l3MAPkR9 zXnL|(2(&6jpvHoikDO4gyvH+U-*sT_$0>`wYO8p=DfK9XmZc7y0pv%-db5DbU-_l~ zUl8P9|4d=thi%04#bjAo&6$gN>8mkkUWKwyNb0T@hD_q;SB{gdzJ$0R*^^{Z_RL#t zDIU7Fe#_4`-8iv_}Uiqob{dhduO^id{dE^4PTFyTx3gcjgbctEHOP3u59Oozo+ z0)d6uwj(zvM$*Xj5nUU)MTHb-k}NyK>-RtJSQ?C(w-;ORJ)NzxX1?-b15$%y?$%DE zse-8DPCGt)H?*8~l4=Q=&Kvf<%ziw~|8UXbL%&z*c?hYXc8B?%cVp2xG?nf0$H7VJ z*zw>#FWvXd<}ZU4>d%8K1+By~)sA#0w%$r*8R$&_cVFJaDCWK&2wENyn(shAx)b5} zL~7>Gz;okL6O8#FSLYHa8c1;zlJjA>h!p(sPlk+>GW=vHH-wn_)xB`Fvcn>54A(q) zc+!Fi>iL@UBcbbEn}^{o*B^e7^zSG8qdn)@rXuKYYF9>DXr-U_>qH8bLlz&@%@EWeNc)2WlAog*_dfj{N_-v$mmw9?-Snyqs9{Rl>O|I2}94y4k z4Ahl%U_Eg4_|D?F;Ee9Q)6vB^QI{N%joQ8QdX25Lfs&ALN*Aoj7)((Y1`~U>%Q{iG z8&a>Jmz6vilMVn3q-Lh%J3l^er#SVo{pn8JS;4Skz_32}xSp`yk5cH}XdvF_Vd3dA zuyb1cLU$MhXAB_GZO{7@DIHMLZooh6ks>3+Ax6?-jq?K!#~A#nqy&Go@0BVcxPaLK zS9Y{vj}lU(3HS}Aq#-l`4(0h5-;Z^Tmeia~%Y_^Cw-Cyw81l~o^(BPiH2x8}r33&6 z2kjheowNguhMYMq<}M{IOSrGDvGN|b7<)MjMMpaAxj^wV=4Kxt7Ml)9wUT&W{eT>x zl{6A9Tv4wuTH~G`KP^4iOmeeKBn(s~AppQaY97`==ib_gULunvITnCtm7Q~yt3eyj z=PNH$3;RRiMm?}jyGqCwOUDP$GD3X_vC_Y>dRGZ~MYp^wr+I73G{l+n?E*dvrMOP! zY_zu>iR7}wi_GpiM6}9`)HO}MZwdOc;X|}xyX+M5z5GgqQ+-QU+rH0p=9 z^X#Q?8@eG^(+dX~{0D7Ma?Y#Tx2BG+oTug8TfKZ+Woo*n?>8wVTKB%_#@J#5d<^Cs z(;b>x9a#9Ww`(MG>8pb7@uRy=>wmn6y?OHWW1H(oy_mYMzUV;02yCbQ?<;?%RcyMl z6=HBwTkQ>hlz5lE)r*$zt7_z{+Hu#OeSNvP4&n@F?0XcjV|9RL$YRoW-2HIF#X~0A z03Aa5w^id!f;Lig#Na+#C5LhKWEypCKkoe_JX`=p8krVI#)Hqig^0n{sY9=R#i|8jn5z7&~ml8VA-wY>U~Vy%H%SnbwS= zagUm%gq%d31GuK~R}M<=NSbP)5_!qFDTRt89~Fg+t2@@5=Mc*ScvM=4m=@hw5c{Pn zhEBS|Lu6SSUg9Mi%Q3v0APz+wspB^KZ{ECGZt54tT(eT6 zl5SnzTmoAYH5g=vftLV z7Q%9uyEY?;8FZ1Y?uIg@D5f(vX1HoQz8Su6|4%a4k23rd6>;fmN1X6#WKA@8Q0KUc z0=O#AMPFR4fD_6jxG$OcVY33Xubg39-=yeu+1X-b$!EIQW_f64YkPF<*7p4>%u_4b zIy(315b;#k`~Nh3QWXFI8o+9ewpGKip2*$?b#toxPPbT%(&q;bO1G+0?+jdNPhx_d z3WaegztuisKdYClnBaIYtg09xPJP#XSkiT65NQC1LyB~KweWL4Fa$9Tg6%cv2bOO! z6+)xfkZ33^BQ~RHGPw;(=Vp5hGvZp5+&)lraFmZ5{bywA6ro!ZROa2Om$1!k?8V4+ zq?GKC(*ON6zd_twyVIxmhKc*GNVScim5rbeLoUl242zEpH8bIMHART!b5>NMFzT)4 zTdh3dy`?!B31_`dq_*v6jHaOrw4d1WUM~va(K1Cic}WtAUb!(xG|7W;aK+uFOy(Rq zOpEVZFt{HOebFr}Wt^jBaB8ll7lQ&tbEAcmSb6+RjhaBE3G_Ts)aos|5o64b zSk?&UqVW9f`L}x39E{w07j$}@pA*6DcOW3R1ASul_)r%%Tgl3*XbU7(X!JgnwUtt| z^J)`Fm)d@Vk1HI(3it>d9;1`V*d0YDFGgv&j3J=XDO4(j8tN`8v{Drsb`hNKrTobm zj^4T(;VtLX=u1B~3k^N=N>UV#1`TDXU%w56g?+}{I9kf*V5}Q-@=BdwW{VD>A^-t9 zMwItW#e%1box0rOJNYEK{9F|4Qu0pdQz`b8d^dL(6!)Qr!}W>bl|L(ee%H$ck;l67 zi@A#{hu4fO@jB|%jh%3?El#Piy|U&e&PO6%PVL}=Z22efBcy`})i_6KA4v+MCw7ayHX@0M2& zbO%Z9c_N*Bfz%)9Z;frMB_KYWFD8t1ycX@-d`meJ`Z9eTz4HD+9o_iQ_U3a#R|b$N z_l}=G*;vL-(2>pyt9P7VPO{BnAq zHFSF}DoLe%e9LETMth;BVTK_Vd-s&n5Gq2``##g;6t_+`sGf^0`SsUwI}PzR^w84L z!{u|uFm3#gMr=u1_zQvnPA&${ZSopNM`NKhH)_->qZnl=B!Q6v2ClLb{^XrA!ds`P z?Fi|sG?NC>NSH_c|v;TC-cM7^ck47#KJK7mG& ztz&hu9p?QT6b$3F%GORFUcNK=f~QadCPQ5FF8xd$&gq@VVY#^KbVHjwl=quBi1y9h|kodKML_A@~w z!1-K*bNb5mc7&(TFK=rmY8?9;@>PxY`~N^tqN3m9;dAjA`l$`*Y$7xb3+c`Uzhon9 z0@h3|=a*j^DUwPo)$(gZ`Og9;zMxo9o;ST#FDlBeac})9;9(}nXc8~5ng7LlS1g2O zdyA~%`-IR!Yc?fkuhFQNcF=C_LIB_ zhtrUU7*6ABS7f1NDDQ!6l=jj?IUC`YL>ff*9m(;>e6GgVTe!#nqIR||JU_%iXW+D?+6%+I8omJ=NYMt1* zHS34tzuJa4=AF$7mb?NRCg_cn?sqOTtn2P~c)nM7OQGg!2x$p+R)1HpCOM~bNt{bF zNX1u5T#4l7pE!bVQw^@{QLrjCY@g#ft>x=a{Y6K9 zXxsJ&5(X8!2QM0yK39Ao7Rd@oEVcO59S|mZm7g5)CY!6$7hk?gjmqL_r}sSUg&;Q~ znIy{Gi8!8guu@&CtUF)r0C|hK(Jxj`i2Mz?Q%zK9B=UiSi2x1m$^K-KxF|~zRr~jV zu|;b6?7VcQ69d#G&=u6zS)1MC(G(dOCL@}c0n=)tV|MzUJoZg$TRdI?*|`uPyqa^q zUYiN8(m{X@W?{>i1ih9- z{U)WMIlRoL=as0GYv|?j&-@4JFFxPr^~JR(jaFbM`TVr=V)|SC>CJgsIOc;V26JL- zcD051_W0)fCuZuKRyZkls0tvrr7zhA;eba($0s$N?EXX~W&56Gm1fj;nm0EsW}Qb@ zK0>O?#}CaJOhQ&{uQeJ~4&HGnnFWPb<(}JAxb6^+o9v6hCq>474?#he8D9hMrwmcC zWQt<|rReB#k|g%Sj-lEFFCga!DN`;}QFkPLyfMQjRi$IAP~rR8xVw4MYn`1hTiHJN zd6wm|-1dU+zIM~O^lE66%xaQsWg=}nlt9`qTv{%jUttt4F}E>ELv@&&&g>U57);_3 z<_5bUC3an3IS0Co_z$O~oi8M8CQNGn5*&6k8*xnb)YNx`KdtP(5KPjg=)j>{@jR{& z17ug8mA5GI8AM#Na?x9XXB|f&xA=)TgMsl#wLoSG7OiyLvBt^^QTh>S&m8h(=uhsl zJOc~Govr9&

G@9&Nme6P5ohMvDcR|IyxC2F3M#+oC{#5Zv7Z9o*dlK|?=n{ZNG zX>bY<(WD^+kXr#&PBOk1OD|=tZ0lt^64U)7TfMBrM=>*j=Ov_jSeEKot#$w0gq?LC zuXBH&s$2>JdIijg=n0zZw=&5gBGse9l(OR(zBi}PV9oAjctk4{s2g1A6?OwRo?fO#` zt7h-G=?@DpG>R%_V@U5S9RQf{7mier1K&q@M>3YixZaPvc$!#&;U@7@C)81F*gXVJ zu0p(!*Qs7>wtG=|C)p0Z;L@j!RLr9fn{JD)7cycf{%p)BCrU{FJ|iw1+fZ%>2meEj zy(AHOc^rxs+8R}>XNollOMdE09PgJSDkgbF#=ZV1fd!)11QVQ4K?pfhP9oKbT>pZS z5fLk23X5Yo5U4*3y04ksSFq4=&8Dxq{;dc7*nMop3fJNe*21d%wh5)IwP1q1veh>` z98J!8&)lcG!{5kks+gTP;PY|-GsZ7xs3C7+WI(>1Yc@`+09<2%tXks|*w&!i$ZQFRjzu2OR^YQJP{Z?Y&5bjyY4U;zeeV?yKz|-|Z z!Sl@{eBN5r;da7G2J;mt;L>JZ_4C`~zzkcG|BR#P8gf*E5RH$DD?y#vem!O6&${C8Tkw04 zG}$;K@})43j0#ohi^@Lg-SQeas?dJwpSnWeSmfHTD!#lz@~S^Y1%{I0)$= zoBjCsBAA7$EHqOCtWzTJa;rITK)B=xYP;TSPrVjRG@>nbtPNAOY7f5A2GLEHwp2B4 zzKerTq6g0r7)W6-)@yuDX?pM-cBF~v{h@-j^*m_Tmaq6*(uBB|+1BsbEv7ww3@l4d z&0TSA$W8h>e!-Eme%tU*MoXXxNfcqbXgNhCGyCBrMy4k>uwUj!L#~6~P={rll|d78 zoS%DaMNJYli%GxSv!%XR35Ct&m+d5qxoX{D!sMSD@kx7cm5t8HqtK=3RZ)J2oKU(v zxtK)1Kat{93A8ydfS+uh)6H*$k=nXe#%txTPCg@8q-WOaBsiQj4RL264u?lSieAgV zb~{DGt~z33#Si;gA%!3D{&zxk>CBHZBVLA`3J-SR$Y_k2Tl5tw%q@--7JF0X<2#6J zD^-)i&n|MqqRUg9S5?HOo<4zfNWthBn+k|_(`nZvBdB*G93D*JV|z^yFWnq-rBdU2 zf!jOGIHWvW=7%oB-`|c!ZvMX59V)V;QK zA7PSj92)W`LwIaM<25|3jyYC3x}WCEosxscsa9I{l+Z=eUxpf>d`dB!uH(Xx3*ixa z*`w@KVc#yOTVW4VvLr^Kv~1{c7b^yVfl}vCkc+MAbg4?M=|&B|&sM|KwE>`#mc>TO z?=@dLAm$BA4kRtKOp$E@KRs({rwbV%BCVex8^ftP;e#wdv62tU?gJhKX-M=6t z_6gm}O%(|Np-Rrm9_A!xGSL>k@UGLo*CP8!h%6K%1*~W`^{g=A;b78sxBQ~R!$v5Z zEek9hC-VJ9=-Tw%ffmBJm80-dCAq9{{sU{;fdJLdgbg^{&*y0=N>YnI;z1Bmsja{VXGwl6l9nq@<)M00)UUcY=--%CRct-F3Dy zmIG6&^vYDRMl;ocd$$01azII!=u&Pj@5$R#sNJZ!U)5JiDMqJ*J>psxqZr0t88mIQ z)XY3nc5did`)#d&7wefyi`0Hj$&1B&PvFU;-+k<1NIvode7gy>pmb@pYN`1b&k7BA z8yB#MyO8J=)fJo&2#5dOgdhCnGW3yzYj~m{BMkXNzmxZecPi#zt88p-w#O;1SE{wX zqxfnhazJ%a9k?_bFhwLZd-Ptwrfyq4(3$u$U?Yls^7dLjl}7T2A`dgJW05*Yu252u z=v{vVO!FjOK{B!)%YALJzy1haBGE}Rf#f>D>|v;)<)k95S#1I>SMeR?)tTeVhfhPV zF-khdd(Y2fzWthSt4UaDnHsErhCh@Mk0+V+MqgI48^AWc9ZYyVd%&j#Idg7bmB-BE zym<;TmlY+!>(Z+7R_mU~i<~|$jTT5KE4FgA<(IAf%#IaIvfwFqjgJJv+JxaQJguS+o4ABtk$G%&4|Fm}ZIIcL3On$d}-U2VsF zT}Z1V{bKIySiojO*F=wzH(|yw3lw?WzqMw?{Y~?Mf`f9-)b+*fTRnXb(KR^TL$Q#!g**@T6SiWwj8srR_bo*7Ad@Yf`(oNw^ zyz2qZ>d@tf|6A)2jV!KJ&9wvuO??Lwf*)z^9iB)Imp3`qJ{}^dc zov@r_92)ocZqz)vZ3zV>D5r_**DKWJl7F($2R9W4?mpLvTGnvpzs}^}2iQ=%ae8-J zOOvy@THQ+cNQW45l6Iekj(J}tF4ZfKA6*UM4HXRMi+BW`b>D2l$F3Ge!QQUxPFl|* zTea}uyN7f5+it|EdFECp`&zYo?Dy|)hh2R0lg<@;r0J1R<1i;-j&aK_0zXuT0-WC; z&j!@KZZURPv^#*ZLQg#J7Ee5@2_=>S64YbAQ5ZOEt`b)ozNzchdqVfG}wjF72E!K7qgg7$9V(|jYe&lKJVy*ZWh%z>o1+f z_rLY^T5DY#t*`r|K=wFMOk^7ESuP-~>q@h|oywBtvXZXf5UWJJtyQwS2*>@yZESqd zWm}1#8|V8SVu-WEYd#0n6K{U#M{Sg2qsViRte<2~)cXguHXAB9>#U?tH-eA2#9eJw#yl8wXd7 ziQVk!o`a$w%tahDI`oL(fmcX~cLZiqze}C8W>NvZ+TX7=CJwy`7=`0W7Zacr*v94O zp%RI0`yUB3^wr_X9yDblpt#Y&A^(l-H}V8tDO7qzWCEFGwh(8l$1V}MK;CXQ33>^F|O z)2&6`cViMS$%N~DWmHuOK)A)|j5}6oA|;bGdSA4{OiN=GL$mPt7)x|txa;=yIL9;` zeJR!%$IhOQLT4ml!cnDAL|4&ggQUI4S1lVZvbK%o<|Z#mohj1-66ea3%3YfBxp<~7lRTmS#b$z2cTL&Qbz#B z(rZ;QdszvCigxrmA`qidYlf^41HL!ff-3#nXjc#+u!s@{hJYfZOMW*YOo3fhZW|-M zNRu0o!*wi}u9^aTamcF@TQb?gBUqAF>1DjJz{k9+<0l(5p_fy^6?fnA+~C-*WBEIe z@C3eCPr~$DrmW9+Z@L5Ra z+yyWX86$EaP-3k&IGTd&8RMfnJnEUMI*xlO;yB^sq1a@+^(4T|;l>7q@OxZK7_YRi z(R7*LlGCB&>I#f(zEQ?NRN&p=eD3r5(<_MWazV{-o${#Vr`{V70Iu;LGt2*<(c8l4 z!(bLY)#8dBQFFP#bkk2exef9WN~4+HMmL`|vrKpo@3EU}>E_563KKZCg&Uz}A)8?a zZll`(B`W+Il7#&#A=Xr;5hB$&M)`NX_P9ltVmgf0){}uv)}EBZwk+8-?Y7pIsx-`) zmKR%qA!$0E@x*u55* z$t04dJvyoL%%bfe$iN??yTYK5CoKT-5$DSaT*7Za^ev#_iv z`-q)odTBB2xuhwGAB`BeEx*gmEX6aMr8zWQ!1h7ojTUKMu4WFcbO5+cl?pVbvQKN( zHv}4rQeDJ7vAN_;a!fo{*pPzB4?a@aIFJ<~({a>0euH>@4i?}f+CPzQmM5fpXRWUo z#b{srf{BPd1S5L4-GsX#O)4dXl!Jh;5)EGtI~8S|en1D)n|-&h6@!suD7)pdN<>yADMNqA)qRFoT%otJOl|43W2+Q;U@mvAC!5RS z{AQslVF;U(#sLn}o1O8rg=Dnpl<0wUeSUtEc`FxGduwgUFnzHetdqKzDGm?uFYV z_-$YRZqPx%U@zzisITC$4}Lbc z`H8~n>^AW08qebOBHUzR*7$2a^&(9q^!dY+dsm2!9uDn=O+U%2C)R&M+HfpUT6B2Q zjy$G_1C#$5NU(y!*jVUmSP|t7gM)4}OmTJLM5-FvlX%9WlL;6~wkmz&uJ=9|ldqnD zim)>4LuV-ZnTdP~Th{1Hp!<&noOCLCdHEbN@&?spf<>8B=}u=kRi%O5=z8BD?Zb(N z)b=3;s-H@N-p>gphpzntA-_PSkn=G2siYVkvvX%d=1ZoR+fKckQdao46RnO!+#Y+rveuC6>J zOSzH{1}&aczIKK@l)5#a4!IJi>@ENtA}bES7GQCHaczxmCy$!?llQkSov%E<1`*H> zevJ8qStZb;wB6jwn|;0Fb&Foka#~g0-1;{rjW!(f{P$1fpy`lNRFQO2?Ufg?ubo@uN(rS7YI$sSG7Y z$YcyE^U+DB;?g|zkKV~BUnZ!qB-GIRM_Dsdi4%E}_nuTvC8iWd~dOSCw!xAx{tjDi|s2(7YPL+r#08`j}qW`>c9aZ9iz zo3e;~Q#bsVtSa63h9W*^^ymF(ju`9u*Y~AG2*lMh} zgWLm7R{`l)c9nM(PsiHsLRu?8hW0srGGh*gmQhvY265fZ}*a3Rj;_wy}Pgp#RXw+2UzKTKCbTWcwd_1r**aNdQ zUAG|dif6j^dOz3IuOBEo%Y=m`{TRaLxcyw|Ln+a`WLvR=9Ej=V&~leiKU`_N3!5LY${osUskNWfxg0^0qF$spFQ|3FIo9c; zRk>Jywt;_x`)oK@pGyAyu2*-y3SWAz^1!wEdf?uBbKlh#@7!4|c6%G;zCks0@jy4v z_9nEC@mh~BX)7$zp=oKABx)|L^^9K5u)+fSc!td1sJhMj+@tI70a&M@ga1AFZCZP! z{M*bL8@*qVYwyfpLq5Dq+$K-+rS<9=KjcowPzhi2i>Ao<>5jd6So!ttedPI7tyiVx zZDT@r>R}i?cl(A7PASt9gAOxAERZ^#bBOys)6T|W&-j;d8uguX`SRmigcI@T&%0`x z{TujS7w{R}1OHaE;w0{AjJiA9zWcg+^0_Vls$<=Z<#SQN?iVB`tO8SP_=N}|N@T`V zSNxO1x|hhBL@K+Eb`+*n6O95RVLqSNGFur7Q>xWGjtuG)1--FUQ@LhYDz+t;h3BuF z#qqdeOX?ceJ5%lpYD(t0VLmQM1M_u+B?MKkOdeH5sDbN-20i63+V^-!j{VD}``rw^x^Zq1K9!vXIzR zf~z$l#TPG?4mJjZtJl2%Z|NJ3+1w0>etnCGmq!@^#9~ls87?rTTC>u;Kvk|_eSIXx zywL6<_j6m7)S{wxxOURaTJRSx1l|(~g{(NRE{V{Z|ekQErsEf0nK7RI#kIGL1EMK3SfaZu34ffuD~)uH+nq zD}%`qOUb6C*ja1odFh)&Sg*h%rDHfK=z;7V2@j98CUboJ6RW(;FK21Xy1J=x+Pi&wqPw6>MBK2P9rSvTF{eh0Z(F+VkJIwmmu^k< z>rR-~rfB-^ji2*Pn=Yr2M2ptxSc`D&Rz}=kn;N$<>bCn0%I9m^50Bk+o6psqbayUr zNt?~}<7S`qOiFEi>%=nu{gcBRsib=phWQ(1KeFbDvfSH_1fvh@BbkESQ2vPOdAF*7 z3_B+ynDttNzKmAn9>^Do@^HZ4AE@fkwBWQ{?>yi?1F5kqKL(eyXj#LSRRv>$fPp-x z(HMOtaQ~@iKP_+@)C03^vvI9l)Zb8(-4{@~VUrk!y`aC_hd<{Fi>#}-$6z$r(AM@q^ z!56BXPug!o2Y*ifw{q>j{vh3c{=hN5N(e9mlP{f#EVKa&b{k^x(i{DDa*Ojp8-{yh zo%@2USB;}5erj9`ZT1D(2dt&gn(pm2SYDuTaGSQ_knZ^&&EB1z<`+?7g0n&UXCb@m zKUTm9JIB2-LJ+2CJndg?WwuBgYKPRzvDNmR(a&v%#zAGK3(o%(auOc$A%DkQ`)Y0L zB<~Q6+z9#0-h@87)*YnVy;ge{>^pq}pWp(3qXUhDI9+7R*K_99a~uyTo2jvf$9Y*y zliiQqJ_W*E&w}hOAD*ph8pduNu=zil^JM#HQ5mdsWNih*?-ru->zzf%A}MmsCC1q; zD4*K{UhQ3mh`r38%ZSST+<5Q1+DyNg6N2YP$0c3MVpW5oaYK6HfU?*!a*?H54)0!r zT9_|@#I;siu4zVOi^*86V0K5pY>a8aN`@#F6qP2}P6{rv#20J8K7MBcGMpI}EGEAl z&(%k&G}8JSwiCR1?}^77_}F6~dp7*w@hqq#Qv4A%&N~IaoPx|5ZUhc4xjxn%Jn2U! z6-4bpT@22_2M*t+PsjIkyRjt3?gHR zkF3ThRG7_h@62hB7Eq7{d2Ajp8$_lAB7CIP<9>(lV6Y1C;!K#yaMow}A@WR6<=WfJ z$D8h<59jBX&nE#JCST$3&8KYA#p~=e_*Uc%yo2uH2@V&BKd$E~JM4fE9iGl*`bqF7 zvx*C|=YRBbXujzzIpwf98~%5&4StmereSYwUOO&s=&@7Zpq;JIpj&JQcM2kzGu?#* z$gGP(8qnX2&stP-QRYIZzUZj5O22r1V;b&CCH+%?`V&@iR5Ih%_MIvp2fG;`X)lJ? z=$k}F*?Dtdnxz{p6`Oezz3g{J1D+QsEY@-168{52XwW!?kgvtAg9NrclE0nFRc}ZU z>V!UQVe=jYolw9S%iUm&2UOx0`%QCr76t`4tW79MzJadB8t3~pF@4^aZ2XV&+o1BX1p3}6=&XYYz8xipt=4vq zZc3T`@gKjyo|nEjtCcidmUjNa`OwXA=mJ5;s_od zI_B9+zz1TMR)j!c>podG=ED;qrQh%X_cYuRU@!DEO zpdv?XzU0TuQE6FdO>SZJ0*rZ*DTqjBl!;B7`6PI$S}FHS48%*>NJ|D?{TY4&|6}d) z+~E56#S2d`uJgNFC%$?+{iGcWiGW6@s_xT4KUmPy=7V-XjFVz_g>P7VU~l81@C*YL zK8lv_%(M{i8$##^p-9pj)#wykv~;ddAv1u|-l`-f+0njTB{^v?0t+qTP$tP-N+LOt z3^EFX$T*g7(qp0aYFW~+6&S8K_^qx2zu4^^*AOY&!qekMYeUMJa_7~DB6 z(>I7ic_{O<_A{y$oLpBI;&ud!T~s>s4Ay*{z#F6MS$r}Z%ptLjm^9-xPGilb>ekCw zWs9Gkx6xs(FhcXTTs zP1O^B%STzlvhv27Ul#t)Ey3A7aGJfTMXH0df_C^BHT*mn{?OKOzA{p$%bk498&UbEF%)|pklZqRpu zK(E@fgtHQ2SUF&2bz1+%ukS6pKX)ixNphx{v&p(C>NLg+eQtJc|Du3p*dpy9k#x+V z!kOkfb%|pH&Ak+R+!#-T>8%;QJ@v%Fy{h!20?W2bE+Et`4+COC6Y?ETx08OC)}M8< z?WbMpKM?xpu7KCEIuWOkaQKJ4Uw2=jADu99;bRp`>?L98IARl=HT$;%ChPG7$}O&f z9QJ2NK_*)0w9PWy9^RvqUx5Z}0h246;Eb=6ya*e!xSH*!U+){c2kH+JWPTIi6%W@y zjT?Atc~pp zyJK61{cnl6=%Ck&0B!cq-lbQMmCos#l@!68b850~^u4q~HiTWqyJgQGN@4y>JL*$Y zY@qq3)K-;P+DKDC7A}wbt}1_e0ztGW#W(yXjPOFdCcQ}V-U(ZrDye#w`7)}oUssb# zfK;M1^?_=VQix7lI2xj=5sc@YwIB~(eo;-7ZG$mJ^h=Pjk*M6Obnan>4LItLMN_=4x4 zMhD7Q99r)sIWuJ34sgIMMKv()I7X~&8RD)obv2d6yC+3%JMZ)nXjrr&z02EZ|I%@^vkYLAyknU{_N z{BH!io;$`a{U`eWcgXzbr)*=6tip-4 z&32&U>;w0%m*U>eDNIJ>>F}r4=8KJ!^Weub!=0p^T(}3vIcUEyL!RGTpts;BLr?E) zIEQHS_Yeuq$h3qu(`?7%r_)E?tMQAS7{RxWp$qTNoIM(()Gg1XnG|B!siIuZ-^OjD zSI@oIt1wO~+9P>4xN7%LA*bdxi2OIebx5_f2O;nwcX}d6mptvmdTW6+)YWSAJ%ISg zI$TK!O{U*9kfi4DE2eBY?EAb;>@?Smc7 zTlMVb5PvwlABl?C=U38OE)g}$Mgb=jfjlEB9(K@n#~`@K54jxd=*1pWH6lg zHpVCW5K=`0BDgOTzo(<$3pxWlEnLq z4nHEY`=K5wPm$o$qwZR6P(WotwXeb8t!`i0(o{=MRZ!y%bdxr7@wPkN8Wy{>t;y^F z5f)MRj;AnT zIEahC_8^(G-uYSP9==K?(6oNDDMC>Z`#soJ)s1%XnMvYUf)s7h!Tub-5&E#>GuqXq zt9Qe^Tv#hT6JTgi{OIB}^=JLZl8+iBWvs8WeWd-*axtKVOQ*#Zv z*pAfOTQB|_r`}Sj;~z8VM5l{TI==x%mw*LMb(d_r32n+H*a+vTVN7b*DAq#kj{caA z$Ebdzl#4{hI6?W_kw!~2e(dyO=ElSCR+OvkVrN*Tj4UFF{F!6uJPXp2^PYk7ZMeHi z^2Y1VU9n)c;R|v#A%nRoTr8p6BtIu6(6*snE9JzAU663~%r|18p;rr7S-g^ONGHr1 z1}DF92VY)C8*DuJ2*IvD-^S&@pY5LDlRlpxPw;3rW{xFr{vAp$iVE44m~$&O^d<}<_Tsc*$zT0iac{y{DVK=~;(v>+bJEtrV)vCR5TnQ39G*f8aa~5g%I8nV#*=);G@3_7rrWpxw z1QwrA)P9q1{?mG-qhV5Ctf|14N#MMib8n`fF6u3=rKp`M$ToTeGmeziZs2D-(C>0x zV;6*N9*;Sg5PSs%IB(K_dZ&Fx z`~DcrBOpkXcXbzMc9#P~$MG9rD=j;*tLBOE6D)Fu)zU2NAzHb{(x6 zN&}o90k<4?dx^&t^uH&EGo9mXR!Xb$_uBR$)nNvQxMSORykDv|T!JoF_%{)N#a@;3na7*RW zjGXfbS5w0!sD%p>R$iAgs0}Ee{9`mkT{G%2TEOOb=0XjNvfntn``AC82O+N8ane+SKf{KlXr%gwCP+^-yKC^vxZSzpu#auWsim)-`SLO~bTq>*Oj zva%TbD=WMtnzr`GzrZrSilosX~H$SXBrf`HD$ibv-^I{gBZ- z_3OG~Q8WD4JmR0}=A?8`;PjvcgOsj61;6$X<;C__080R`S0^&Nc^ zu0B*;uAki;SNL(?E*u*Y7s?Z9Gs1{Ub@Ys_=u={1ssPM$eQf-w~s-IBA?I=?tmt!mKOGuw#D%w%3V;ZL*wQl+FHc*h) z&z2RaTV$kAH#8Lb_ljLJU0gf6Xr!Sg?D=*D4m>GdI9u1z017Gg|L{yDyD?rtSN1YL zrxs1O0~X*5ErzYUP+8_!4)B~*+q&^tvzOX%;j;mZ?Q2cT zjiYwyzQ_i2LvQd*tlC4IZ^eL#TzTOH;krrfx*=3oHvZRmLW$Log2}R~OzwBw;0U0x zM(<@zVT!9hM?(qaIUw1m9 z>?I=1Lo`aYC24nmFM30@q0%46Te&cXFP!rByY&YDtlPVs>*w5m`=^kj50VKv4{-0% zw3U{;a5hlG!uXd`oA3LV9z-DrjTVOmIn-#=!pY!7eO>*cS*@)K(LM1Fnte;9lB`BS z4kGJrm%%D7Cnj`agXhn|@N@9S%}vrR*5)#IyU|%;gv^hrl18#OoSP)KgZ0$`i>>y& zjRv0O3&EX5Q(p@bmh>mwn1dLqWiZnREC*=MQn=Bnc>k&q_J0`v)}$#YFW)=Urb*a# zG{=8aQ=+d*jFZAjmhfF7NtORK2}M?{oW^H5CY2oaY${CZT*cuUTT4@U%o6Ib1{E8v zWgx3yPURcb1cL#t9Nbv>-=NMD#$S^smP#li#Dyt3*%=eB8gNZ*VSMA1Eua=7wqR8z zLtVWR3jZ#z1&3uy@5Xyt`0{)FjXc->C zJ%U7#uCO#w>4%7j_6blNCLyfyDkO0UJr`n%mR-Ye-2mh|v1!($3PA~H5lX65<7t(G zFk3N>+Om>r+xmInbg%5Ed?_vI{wRFcQL=>8tQ0<_1h0Dm!W%>7X@1QH;MvCglY{^9 z$;5DRzml?%hQGx^QU8TV!=LgMrw6d6<2~g7FKM@I+T7d6ll@H+gn!%&X?2G~b1Q}7 z3hM{??7S?ZKLCnGz3O-B%s&S@7Inc`n-WS|a-NBfiOUqkf#H!4gj-b{q@-j3i(O<} zef~b-1e?`QvHFOEqb$=2R;ogU#nYe4u?NO=URZD4>^hyZo9wkoOHYhsHmC0U?EpZe zbCTMwU!xim_+?J|_;x=B{;q%Hk6)!&x!x!ulp5~T(f8W7{a%Ej_ zwlZ6H8+!g1bdevYd&KYwPp5=ylur?hevBVrp~|KFQbiiWE6}_uoyf+%bEGHR!qm#d z{d5GNHPMTXmsf1cI~FQ2x3&$%WHyeqrRL1|eA!n)MTGt$Uk0g`^t0G_!c>~IwN+|i za-uw&5jPpBoZb&*vzq6%YK8QENPy2B8DRzod9WLQoiX zB&0%UsaZ+W_=ULhcr?WzV*BV!TSZ=EDT+TlQ?vwBCSBSZY%8mD)eh%uKxvDq0u`)O zY|Zkh*-7}QaYd?lsduKWN+~8`xK^2Bm;07uRPcm|owQq{w>exA<6mW0S{~y!;6u+y zG#DO~hM1326@PZW)jNO*s&XdRSE*CYnK<|9x=wE$&K^c{zBT9aI&s!hUPKFc+uis- z9uwss;m*otHaIh8KbuDp&Oida*M(xfbaT!S%oH}%kC&yQilmSg73FmYb?2P^A`-yl zXaAzNY}MsPDJ6_4Kx>JA9rv!?-JwHsZBY)>?AE;Yc1=PN#0cIWMtje6nGY- zFE(kprg~ggXn)(EIqs{$-NtXfBeVe@|FEM!L;9hY|zK{TNAfB&TO8;eBeX6zmwKhsjeHBwoYC=-J$cgzZ%3~z2;f%a3 z=jT%<8%TO68YyU<@|D<$=1t||f=Z@kY}huVVtQ=^X1wx;|vYnuzl^W0ifYCSU z#jfO7vlYc+S(Sq_6DVITQ?gspXkmhHDpNp7m z9>hl!EMj?cu98Stl~5H{Dik-1H#Ef4d3iZE!72GAbq5d1mcPIzI3?j8<5GxQ3w@=- z_QUb3+41=Y^U=#uYnJujernm(8R{|U>F%eAHgyqLnrOD>jZS20Zr1UOf2PYbVZAwX z?*a$B*dnpYz@yOO<9{rPJ|;=Lzz%S~zIyq|jN6$eM`8`Tlyj`Sdo?7zv~6y}W|{(u zo&u%(k+{`m!)tuJfeql0D&S}jZ_^QTd!t>~%#yCf*B8>VoTjn!E(x#sjqU2b0n2b8h4%N?}G%(4V{nmSajFG+M=o0i)#SZ69WP0 zx>|p_vibzbo|5fV5VNxx8;q4WwtWtQ8DC3XyyAC=eDhkUDLdwbfq#HWLlq`g;kHga|+P%PXm6Otl zuAf~A5?bcQX8f$WBF^88yXNoB0;q6xoE&5K_XO<6z%p@>wi+9}>|fdUShFl~g9AfT=yJ$%?eht>VN>73p>5)wc-8--;ZQ*^|qI@?@bRG_7f z771YrBNmYvzHJULLRQq0F;y2$PCCstLT)$V{Q?7XD3hE@O$;HYj@EH@ z$+#VH#Csg3I9=ue?ROEgy?|ORxrM@k4-whBnSgd6ajj4!p)BfJoWo5{qSuGmIh#3s zbya=5rJZ*w^AsVflhQph$bH^8wvBDcNFf!DVXUbjB>L@sUKqT zD|fX>C?N!V6986z-**(AnR0SJN=sv6Qwy!^&$duzmWUK>t7G?q6vY zaWNqahan@Oyg(AVFr`OAazxp98IFX3ft1^GfrLccbU1azZ0IJ({VZGce@bBgJ3iLe|4jk^kIEDY2U$486mjO(1Gu0@%!CPL1LYIK?CTS_M*}hZ@9V!;;J;Vk IzgmI+2jZs4@c;k- literal 0 HcmV?d00001 diff --git a/lib/water_splash.mp3 b/lib/water_splash.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..1c09d7a85ac0e33200895168ad37f6eb471773be GIT binary patch literal 93273 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

dVDuI;6ulb6K}NmB=LE)# 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

AC{ASMwFxM4&q0 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 G!2bue4tE*= literal 0 HcmV?d00001 From fe810d17ea742c92f9cd8cc45430b7a840e38369 Mon Sep 17 00:00:00 2001 From: dszarkiel Date: Sun, 15 Nov 2020 11:40:19 -0600 Subject: [PATCH 13/15] Final commit before moving images to another file/class --- README.md | 59 +----------------------------------------------------- bin/run.rb | 4 ++-- lib/app.rb | 32 +++++++++++------------------ 3 files changed, 15 insertions(+), 80 deletions(-) diff --git a/README.md b/README.md index b75f6185..ab47b932 100644 --- a/README.md +++ b/README.md @@ -1,59 +1,2 @@ -# Module One Final Project Guidelines +Link to Demo: -Congratulations, you're at the end of module one! You've worked crazy hard to get here and have learned a ton. - -For your final project, we'll be building a Command Line database application. - -## Project Requirements - -### Option One - Data Analytics Project - -1. Access a Sqlite3 Database using ActiveRecord. -2. You should have at minimum three models including one join model. This means you must have a many-to-many relationship. -3. You should seed your database using data that you collect either from a CSV, a website by scraping, or an API. -4. Your models should have methods that answer interesting questions about the data. For example, if you've collected info about movie reviews, what is the most popular movie? What movie has the most reviews? -5. You should provide a CLI to display the return values of your interesting methods. -6. Use good OO design patterns. You should have separate classes for your models and CLI interface. - - **Resource:** [Easy Access APIs](https://github.com/learn-co-curriculum/easy-access-apis) - -### Option Two - Command Line CRUD App - -1. Access a Sqlite3 Database using ActiveRecord. -2. You should have a minimum of three models. -3. You should build out a CLI to give your user full CRUD ability for at least one of your resources. For example, build out a command line To-Do list. A user should be able to create a new to-do, see all todos, update a todo item, and delete a todo. Todos can be grouped into categories, so that a to-do has many categories and categories have many to-dos. -4. Use good OO design patterns. You should have separate classes for your models and CLI interface. - -### Brainstorming and Proposing a Project Idea - -Projects need to be approved prior to launching into them, so take some time to brainstorm project options that will fulfill the requirements above. You must have a minimum of four [user stories](https://en.wikipedia.org/wiki/User_story) to help explain how a user will interact with your app. A user story should follow the general structure of `"As a , I want so that "`. For example, if we were creating an app to randomly choose nearby restaurants on Yelp, we might write: - -* As a user, I want to be able to enter my name to retrieve my records -* As a user, I want to enter a location and be given a random nearby restaurant suggestion -* As a user, I should be able to reject a suggestion and not see that restaurant suggestion again -* As a user, I want to be able to save to and retrieve a list of favorite restaurant suggestions - -## Instructions - -1. Fork and clone this repository. -2. Build your application. Make sure to commit early and commit often. Commit messages should be meaningful (clearly describe what you're doing in the commit) and accurate (there should be nothing in the commit that doesn't match the description in the commit message). Good rule of thumb is to commit every 3-7 mins of actual coding time. Most of your commits should have under 15 lines of code and a 2 line commit is perfectly acceptable. -3. Make sure to create a good README.md with a short description, install instructions, a contributor's guide and a link to the license for your code. -4. Make sure your project checks off each of the above requirements. -5. Prepare a video demo (narration helps!) describing how a user would interact with your working project. - * The video should: - - Have an overview of your project. (2 minutes max) -6. Prepare a presentation to follow your video. (3 minutes max) - * Your presentation should: - - Describe something you struggled to build, and show us how you ultimately implemented it in your code. - - Discuss 3 things you learned in the process of working on this project. - - Address what, if anything, you would change or add to what you have today. - - Present any code you would like to highlight. -7. *OPTIONAL, BUT RECOMMENDED*: Write a blog post about the project and process. - ---- -### Common Questions: -- How do I turn off my SQL logger? -```ruby -# in config/environment.rb add this line: -ActiveRecord::Base.logger = nil -``` diff --git a/bin/run.rb b/bin/run.rb index 95121f19..4bc8eb4f 100644 --- a/bin/run.rb +++ b/bin/run.rb @@ -1,5 +1,5 @@ require_relative '../config/environment' App.new.run - -puts "Goodbye!" +system "clear" +puts "Thank you for playing, see you next time!" diff --git a/lib/app.rb b/lib/app.rb index 5ba6facd..d05b972e 100644 --- a/lib/app.rb +++ b/lib/app.rb @@ -1,13 +1,8 @@ -require "tty-prompt" -require 'pry' - class App - attr_accessor :current_user attr_reader :fish - def run bubble_sound show_intro_fish_tank @@ -19,7 +14,6 @@ def run def main_menu system "clear" display_main_menu_title - puts prompt = TTY::Prompt.new my_selection = prompt.select("What would you like to do?") do |menu| menu.choice "Create Tank" @@ -41,7 +35,7 @@ def main_menu elsif my_selection == "Delete Tank" delete_tank elsif my_selection == "Exit" - nil + return end end @@ -128,7 +122,6 @@ def update_tank elsif my_selection == "Back - Main Menu" main_menu end - end ##################### FISH ADD/REMOVE FEATURES ################################################ @@ -178,6 +171,7 @@ def remove_fish flush_sound puts "Your fish has been successfully removed :(" sleep(4.4,) + main_menu end @@ -215,7 +209,7 @@ def add_owner_to_tank #ASK WHAT OWNER TO ADD puts "Please type the name of the owner you would like to add" additonal_owner = get_user_input - #DOES THAT OWNER EXIST + #DOES THAT OWNER EXIST, IF YES THEN RUN METHOD IF NO = ELSE. new_owner = Owner.find_by(name: additonal_owner) if Owner.find_by(name: additonal_owner) && !TankOwnerId.find_by(owner_id: new_owner.id, tank_id: my_tank.id) TankOwnerId.create(owner_id: new_owner.id , tank_id: my_tank.id) @@ -230,7 +224,6 @@ def add_owner_to_tank end def delete_tank - prompt = TTY::Prompt.new selected_tank = prompt.select("What is the name of the tank that you would like to delete?", (display_my_tanks)) deleted_tank = Tank.find_by(name: selected_tank) @@ -263,7 +256,7 @@ def display_tank_owners my_tank = Tank.find_by(name: @my_selection) tank_owners = my_tank.owners tank_owners.collect do |owner| - owner.name + owner.name.capitalize end end @@ -356,20 +349,21 @@ def glass_sound def water_splash pid = fork{exec 'afplay', "lib/water_splash.mp3"} end + ############################### SOUND EFFECTS END ##################################### ################################## VISUAL IMAGES ################################## def show_intro_fish_tank display_title_intro - puts" WELCOME TO RUBY TANK ".red + puts" ".blue puts" ___ ___ ___ ___ (( ".blue puts" |___|___|___|___| (()) ".blue - puts" |:_:_:_:_:_| ><> )) ".blue - puts" |_:_,--.:_:| <>< (/// ) ".blue - puts" |:_:|__|_:_| ><> _ ) )) (( ".blue + puts" |:_:_:_:_:_| ".blue + "><>".red + " )) ".blue + puts" |_:_,--.:_:| ".blue + "<><".red + " (/// ) ".blue + puts" |:_:|__|_:_| ".blue + "><>".red + " _ ) )) (( ".blue puts" _ |_ _ :_:| _ _ _ (_) (((( /))` ".blue puts" | |_| |_| | _| | |_| |_| | o )))) (( ( ".blue - puts" |_:_:_:_:/|_|_|_| :_:_:_:_/ . <>< (( )))) ".blue + puts" |_:_:_:_:/|_|_|_| :_:_:_:_/ . ".blue + "<><".red + " (( )))) ".blue puts" |_,-._:_:_:_:_:_:_:_.-,_| o )) ((// ".blue puts" |:|_|:_:_:,---,:_:_:|_|:| o ,-. )/ ".blue puts" |_:_:_:_,' `,_:_:_:_| _ o ,;'))(( ".blue @@ -413,7 +407,7 @@ def display_tank_one puts "| ><> /o\\ |".blue puts "| | |" .blue puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow - puts "|_____________________________________________________|".yello + puts "|_____________________________________________________|".yellow end def display_tank_two @@ -503,9 +497,7 @@ def display_tank_nine puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow puts "|_____________________________________________________|".yellow end - - - + end From b030953dfd026d04720fdaf3c9da7fc3236dee77 Mon Sep 17 00:00:00 2001 From: dszarkiel Date: Sun, 15 Nov 2020 12:25:15 -0600 Subject: [PATCH 14/15] refactored and cleaned up final version --- lib/app.rb | 166 ++++++++++++-------------------------------------- lib/visual.rb | 146 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 186 insertions(+), 126 deletions(-) create mode 100644 lib/visual.rb diff --git a/lib/app.rb b/lib/app.rb index d05b972e..8c59fd7e 100644 --- a/lib/app.rb +++ b/lib/app.rb @@ -35,7 +35,10 @@ def main_menu elsif my_selection == "Delete Tank" delete_tank elsif my_selection == "Exit" - return + puts "Thank you for playing, see you next time!" + sleep(2,) + system "clear" + exit end end @@ -43,7 +46,7 @@ def get_user_input gets.chomp end -################# OWNER LOGIN #################### +###################################### OWNER LOGIN ########################################### def setup_owner system "clear" @@ -61,7 +64,7 @@ def setup_owner def create_new_owner puts "Please enter your name:" - owner_name = gets.chomp + owner_name = gets.chomp.downcase if Owner.find_by(name: owner_name) system "clear" puts "Sorry, that name is already taken." @@ -74,7 +77,7 @@ def create_new_owner def find_existing_owner puts "Please enter your name:" - owner_name = gets.chomp + owner_name = gets.chomp.downcase @current_user = Owner.find_by(name: owner_name) if Owner.all.map { |user| user.name }.include?(owner_name) system "clear" @@ -84,21 +87,28 @@ def find_existing_owner find_existing_owner end end -################################################################################ +###################################### OWNER LOGIN END ########################################## def create_tank - puts "What would you like your tank to be named?" - tank_name = get_user_input - puts "How many fish would you like to keep? (Max = 10)" - tank_limit = get_user_input.to_i - if tank_limit > 10 + system "clear" + display_main_menu_title + puts "What would you like your tank to be named?" + tank_name = get_user_input + puts "How many fish would you like to keep? (Max = 10)" + tank_limit = get_user_input.to_i + if Tank.find_by(name: tank_name) + puts "Sorry, that tank name is already in use. Please choose a different name!" + sleep(2,) + system "clear" + create_tank + elsif tank_limit > 10 puts "Sorry, the tank is not big enough for more than 10 fish!" sleep(2,) system "clear" create_tank else - new_tank = Tank.create(name: tank_name, fish_limit: tank_limit) - TankOwnerId.create(owner_id: current_user.id , tank_id: new_tank.id) + new_tank = Tank.create(name: tank_name, fish_limit: tank_limit) + TankOwnerId.create(owner_id: current_user.id , tank_id: new_tank.id) end puts "Congratulations! Your new tank #{tank_name} has been created." sleep(2,) @@ -175,7 +185,7 @@ def remove_fish main_menu end -##################### END OF FISH ADD/REMOVE FEATURES ######################################## +################################# END OF FISH ADD/REMOVE FEATURES ######################################## def see_your_tank display_tank_view_selection @@ -208,12 +218,12 @@ def add_owner_to_tank my_tank = Tank.find_by(name: add_owner_to) #ASK WHAT OWNER TO ADD puts "Please type the name of the owner you would like to add" - additonal_owner = get_user_input + additonal_owner = get_user_input.downcase #DOES THAT OWNER EXIST, IF YES THEN RUN METHOD IF NO = ELSE. new_owner = Owner.find_by(name: additonal_owner) if Owner.find_by(name: additonal_owner) && !TankOwnerId.find_by(owner_id: new_owner.id, tank_id: my_tank.id) TankOwnerId.create(owner_id: new_owner.id , tank_id: my_tank.id) - puts "New owner, #{new_owner.name} has been added to #{my_tank.name}" + puts "New owner, #{new_owner.name.capitalize} has been added to #{my_tank.name}" sleep(2,) main_menu else @@ -332,7 +342,7 @@ def display_main_menu_title ############################### DISPLAY SECTION END ######################################### - ############################### SOUND EFFECTS ##################################### + ################################## SOUND EFFECTS ############################################ def bubble_sound pid = fork{exec 'afplay', "lib/Large_bubble_sound.mp3"} @@ -349,153 +359,57 @@ def glass_sound def water_splash pid = fork{exec 'afplay', "lib/water_splash.mp3"} end - ############################### SOUND EFFECTS END ##################################### + ############################### SOUND EFFECTS END ########################################## - ################################## VISUAL IMAGES ################################## + ################################# VISUAL IMAGES ############################################ def show_intro_fish_tank display_title_intro - puts" ".blue - puts" ___ ___ ___ ___ (( ".blue - puts" |___|___|___|___| (()) ".blue - puts" |:_:_:_:_:_| ".blue + "><>".red + " )) ".blue - puts" |_:_,--.:_:| ".blue + "<><".red + " (/// ) ".blue - puts" |:_:|__|_:_| ".blue + "><>".red + " _ ) )) (( ".blue - puts" _ |_ _ :_:| _ _ _ (_) (((( /))` ".blue - puts" | |_| |_| | _| | |_| |_| | o )))) (( ( ".blue - puts" |_:_:_:_:/|_|_|_| :_:_:_:_/ . ".blue + "<><".red + " (( )))) ".blue - puts" |_,-._:_:_:_:_:_:_:_.-,_| o )) ((// ".blue - puts" |:|_|:_:_:,---,:_:_:|_|:| o ,-. )/ ".blue - puts" |_:_:_:_,' `,_:_:_:_| _ o ,;'))(( ".blue - puts" |:_:_:_/ _ | _ _:_:_:| (_O (( )) ".blue - puts"_____|_:_:_| (o)-(o) |_:_:_|--'`-. ,--. (((('/ ".blue - puts" ', ;|:_:_:| -( .-. )- |:_:_:| ', ; `--._|oo|,---.~ ``)) ".blue - puts". ` |_:_:_| (`-') |_:_:_|. ` . ` |()|.__( ) .,-----' `-((( ".blue - puts" ', ;|:_:_:| `-' |:_:_:| ', ; ', ; `--'| \ ', ; ', ; ',')).,-- ".blue - puts" . ` ` . ` . ` . ` . ` . ` . ` . . ` . ` . ` . ` . ` ".yellow - puts" ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ', ; ".yellow + Visual.show_intro_fish_tank end def display_empty_tank - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue - puts "| |".blue - puts "| |".blue - puts "| _\\/_ |".blue - puts "| /o\\ |".blue - puts "| | |".blue - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow - puts "|_____________________________________________________|".yellow + Visual.display_empty_tank end def display_full_tank - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" .blue - puts "| ><> <>< <>< |" .blue - puts "| ><> <>< |" .blue - puts "| ><> _\\/_ |".blue - puts "| <>< ><> /o\\ |".blue - puts "| <>< | <><|" .blue - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" .yellow - puts "|_____________________________________________________|" .yellow - + Visual.display_full_tank end def display_tank_one - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue - puts "| |".blue - puts "| |".blue - puts "| _\\/_ |".blue - puts "| ><> /o\\ |".blue - puts "| | |" .blue - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow - puts "|_____________________________________________________|".yellow + Visual.display_tank_one end def display_tank_two - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue - puts "| |".blue - puts "| |".blue - puts "| ><> _\\/_ |".blue - puts "| /o\\ |".blue - puts "| <>< | |" .blue - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow - puts "|_____________________________________________________|".yellow + Visual.display_tank_two end def display_tank_three - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue - puts "| |".blue - puts "| <>< |".blue - puts "| ><> _\\/_ |".blue - puts "| /o\\ |".blue - puts "| <>< | |" .blue - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow - puts "|_____________________________________________________|".yellow + Visual.display_tank_three end def display_tank_four - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue - puts "| <>< <>< |".blue - puts "| |".blue - puts "| ><> _\\/_ |".blue - puts "| /o\\ |".blue - puts "| ><> | |" .blue - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow - puts "|_____________________________________________________|".yellow + Visual.display_tank_four end def display_tank_five - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue - puts "| <>< <>< |".blue - puts "| ><> |".blue - puts "| ><> _\\/_ |".blue - puts "| /o\\ |".blue - puts "| ><> | |" .blue - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow - puts "|_____________________________________________________|".yellow + Visual.display_tank_five end def display_tank_six - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue - puts "| <>< |".blue - puts "| ><> |".blue - puts "| ><> <>< _\\/_ |".blue - puts "| <>< /o\\ |".blue - puts "| ><> | |" .blue - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow - puts "|_____________________________________________________|".yellow + Visual.display_tank_six end def display_tank_seven - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue - puts "| ><> <>< |".blue - puts "| <>< |".blue - puts "| <>< _\\/_ |".blue - puts "| ><> <>< /o\\ |".blue - puts "| ><> | |" .blue - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow - puts "|_____________________________________________________|".yellow + Visual.display_tank_seven end def display_tank_eight - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue - puts "| ><> <>< |".blue - puts "| ><> ><> |".blue - puts "| ><> _\\/_ |".blue - puts "| <>< ><> /o\\ |".blue - puts "| <>< | |" .blue - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow - puts "|_____________________________________________________|".yellow + Visual.display_tank_eight end def display_tank_nine - puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue - puts "| ><> <>< ><> |".blue - puts "| <>< |".blue - puts "| ><> _\\/_ |".blue - puts "| <>< <>< /o\\ |".blue - puts "| ><> <>< | |" .blue - puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow - puts "|_____________________________________________________|".yellow + Visual.display_tank_nine end end diff --git a/lib/visual.rb b/lib/visual.rb new file mode 100644 index 00000000..00a8fbc8 --- /dev/null +++ b/lib/visual.rb @@ -0,0 +1,146 @@ +class Visual + + def self.show_intro_fish_tank + puts" ".blue + puts" ___ ___ ___ ___ (( ".blue + puts" |___|___|___|___| (()) ".blue + puts" |:_:_:_:_:_| ".blue + "><>".red + " )) ".blue + puts" |_:_,--.:_:| ".blue + "<><".red + " (/// ) ".blue + puts" |:_:|__|_:_| ".blue + "><>".red + " _ ) )) (( ".blue + puts" _ |_ _ :_:| _ _ _ (_) (((( /))` ".blue + puts" | |_| |_| | _| | |_| |_| | o )))) (( ( ".blue + puts" |_:_:_:_:/|_|_|_| :_:_:_:_/ . ".blue + "<><".red + " (( )))) ".blue + puts" |_,-._:_:_:_:_:_:_:_.-,_| o )) ((// ".blue + puts" |:|_|:_:_:,---,:_:_:|_|:| o ,-. )/ ".blue + puts" |_:_:_:_,' `,_:_:_:_| _ o ,;'))(( ".blue + puts" |:_:_:_/ _ | _ _:_:_:| (_O (( )) ".blue + puts"_____|_:_:_| (o)-(o) |_:_:_|--'`-. ,--. (((('/ ".blue + puts" ', ;|:_:_:| -( .-. )- |:_:_:| ', ; `--._|oo|,---.~ ``)) ".blue + puts". ` |_:_:_| (`-') |_:_:_|. ` . ` |()|.__( ) .,-----' `-((( ".blue + puts" ', ;|:_:_:| `-' |:_:_:| ', ; ', ; `--'| \ ', ; ', ; ',')).,-- ".blue + puts" . ` ` . ` . ` . ` . ` . ` . ` . . ` . ` . ` . ` . ` ".yellow + puts" ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ; ', ', ; ".yellow + end + + def self.display_empty_tank + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| |".blue + puts "| |".blue + puts "| _\\/_ |".blue + puts "| /o\\ |".blue + puts "| | |".blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yellow + end + + def self.display_full_tank + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|" .blue + puts "| ><> <>< <>< |" .blue + puts "| ><> <>< |" .blue + puts "| ><> _\\/_ |".blue + puts "| <>< ><> /o\\ |".blue + puts "| <>< | <><|" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|" .yellow + puts "|_____________________________________________________|" .yellow + + end + + def self.display_tank_one + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| |".blue + puts "| |".blue + puts "| _\\/_ |".blue + puts "| ><> /o\\ |".blue + puts "| | |" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yellow + end + + def self.display_tank_two + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| |".blue + puts "| |".blue + puts "| ><> _\\/_ |".blue + puts "| /o\\ |".blue + puts "| <>< | |" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yellow + end + + def self.display_tank_three + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| |".blue + puts "| <>< |".blue + puts "| ><> _\\/_ |".blue + puts "| /o\\ |".blue + puts "| <>< | |" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yellow + end + + def self.display_tank_four + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| <>< <>< |".blue + puts "| |".blue + puts "| ><> _\\/_ |".blue + puts "| /o\\ |".blue + puts "| ><> | |" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yellow + end + + def self.display_tank_five + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| <>< <>< |".blue + puts "| ><> |".blue + puts "| ><> _\\/_ |".blue + puts "| /o\\ |".blue + puts "| ><> | |" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yellow + end + + def self.display_tank_six + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| <>< |".blue + puts "| ><> |".blue + puts "| ><> <>< _\\/_ |".blue + puts "| <>< /o\\ |".blue + puts "| ><> | |" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yellow + end + + def self.display_tank_seven + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| ><> <>< |".blue + puts "| <>< |".blue + puts "| <>< _\\/_ |".blue + puts "| ><> <>< /o\\ |".blue + puts "| ><> | |" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yellow + end + + def self.display_tank_eight + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| ><> <>< |".blue + puts "| ><> ><> |".blue + puts "| ><> _\\/_ |".blue + puts "| <>< ><> /o\\ |".blue + puts "| <>< | |" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yellow + end + + def self.display_tank_nine + puts "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|".blue + puts "| ><> <>< ><> |".blue + puts "| <>< |".blue + puts "| ><> _\\/_ |".blue + puts "| <>< <>< /o\\ |".blue + puts "| ><> <>< | |" .blue + puts "|,,,,......,,,,...,,..,.,..,,..,,..,,,,,,,..,.,.|..,.,|".yellow + puts "|_____________________________________________________|".yellow + end +end \ No newline at end of file From 546ea019b4566a032b3c22af51549e318cb4f0e8 Mon Sep 17 00:00:00 2001 From: dszarkiel Date: Sun, 15 Nov 2020 13:48:28 -0600 Subject: [PATCH 15/15] Final Submission --- CONTRIBUTING.md | 54 ++++++++++++++++++++++++------------------------- LICENSE.md | 21 +++++++++++++++---- README.md | 35 +++++++++++++++++++++++++++++++- 3 files changed, 78 insertions(+), 32 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 14b18f92..3621b2a6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,37 +1,37 @@ -# Contributing to Learn.co Curriculum +Contributor Code of Conduct -We're really excited that you're about to contribute to the [open curriculum](https://learn.co/content-license) on [Learn.co](https://learn.co). If this is your first time contributing, please continue reading to learn how to make the most meaningful and useful impact possible. +Our Pledge -## Raising an Issue to Encourage a Contribution +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. -If you notice a problem with the curriculum that you believe needs improvement -but you're unable to make the change yourself, you should raise a Github issue -containing a clear description of the problem. Include relevant snippets of -the content and/or screenshots if applicable. Curriculum owners regularly review -issue lists and your issue will be prioritized and addressed as appropriate. +Our Standards -## Submitting a Pull Request to Suggest an Improvement +Examples of behavior that contributes to creating a positive environment include: +Using welcoming and inclusive language +Being respectful of differing viewpoints and experiences +Gracefully accepting constructive criticism +Focusing on what is best for the community +Showing empathy towards other community members +Examples of unacceptable behavior by participants include: +The use of sexualized language or imagery and unwelcome sexual attention or advances +Trolling, insulting/derogatory comments, and personal or political attacks -If you see an opportunity for improvement and can make the change yourself go -ahead and use a typical git workflow to make it happen: +Public or private harassment -* Fork this curriculum repository -* Make the change on your fork, with descriptive commits in the standard format -* Open a Pull Request against this repo +Publishing others’ private information, such as a physical or electronic address, without explicit permission +Other conduct which could reasonably be considered inappropriate in a professional setting -A curriculum owner will review your change and approve or comment on it in due -course. +Our Responsibilities -# Why Contribute? +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. -Curriculum on Learn is publicly and freely available under Learn's -[Educational Content License](https://learn.co/content-license). By -embracing an open-source contribution model, our goal is for the curriculum -on Learn to become, in time, the best educational content the world has -ever seen. +Scope -We need help from the community of Learners to maintain and improve the -educational content. Everything from fixing typos, to correcting -out-dated information, to improving exposition, to adding better examples, -to fixing tests—all contributions to making the curriculum more effective are -welcome. +This Code of Conduct applies within all project spaces, and it also applies when an individual is representing the project or its community in public spaces. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [INSERT EMAIL ADDRESS]. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with +regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project’s leadership. \ No newline at end of file diff --git a/LICENSE.md b/LICENSE.md index 6802f2b8..9db510f7 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,7 +1,20 @@ -#Learn.co Educational Content License +MIT License -Copyright (c) 2015 Flatiron School, Inc +Copyright (c) [2020] [Ruby Tank] -The Flatiron School, Inc. owns this Educational Content. However, the Flatiron School supports the development and availability of educational materials in the public domain. Therefore, the Flatiron School grants Users of the Flatiron Educational Content set forth in this repository certain rights to reuse, build upon and share such Educational Content subject to the terms of the Educational Content License set forth [here](http://learn.co/content-license) (http://learn.co/content-license). You must read carefully the terms and conditions contained in the Educational Content License as such terms govern access to and use of the Educational Content. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -Flatiron School is willing to allow you access to and use of the Educational Content only on the condition that you accept all of the terms and conditions contained in the Educational Content License set forth [here](http://learn.co/content-license) (http://learn.co/content-license). By accessing and/or using the Educational Content, you are agreeing to all of the terms and conditions contained in the Educational Content License. If you do not agree to any or all of the terms of the Educational Content License, you are prohibited from accessing, reviewing or using in any way the Educational Content. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md index ab47b932..be7e0f64 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,35 @@ -Link to Demo: +Application Features: + +- A user can create a new user profile +- A user can create a virtual fish tank with a name and a specified number of fish +- User can add and remove fish from each tank that was created +- User can add other existing users as owners to their tank allowing the user to update the tank +- User can view their exisiting tanks +- User can update their tank and the tanks to which they are added to as an owner +- User can delete their existing tanks + +Built With: +- Ruby +- SQLite3 as database for Active Record +- Gems Used: + tty-prompt, + tty-font, + colorize + +Install Instructions: + - Run bundle install + - Run ruby bin/run.rb + +Contributing: +Constributing.md + +Authors: +- Dominik Szarkiel +- Bartosz Minczuk + +Supporting Authors: +- Derick Castillo + +License: +License.md

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