Skip to content

elliolson/omnicalc_ruby

 
 

Repository files navigation

Omnicalc Ruby

Introduction

The goal of this project is to get more practice with writing Ruby programs. You will execute the code simply by visiting a particular URL in your browser. Your visit will trigger the execution of the Ruby code, and the output will appear in your browser window.

Target

Ultimately, you will build this application:

http://omnicalc-target.herokuapp.com/

It is a collection of calculators that do various things; count the number of words in a block of text, the monthly payment for a loan, etc. Over time, we may add more and more calculators if we feel like it (if you have a suggestion for a calculator you think we should add, please let us know).

Setup

  1. Ensure that this repo is a fork on your own account.

  2. Setup a Cloud9 workspace as usual.

  3. In a Terminal, run bin/setup.

  4. Run Project and visit your app in Chrome.

  5. If all went well, you should see the New Word Count form. If not, let us know right away.

  6. Type in some text and submit the form.

  7. On the results page, you will currently see just a bunch of placeholders.

  8. In Atom, find the /app/controllers/calculations_controller.rb file.

  9. Locate the part of the file that looks like this:

    def word_count
      @text = params[:user_text]
      @special_word = params[:user_word]
    
      # ================================================================================
      # Your code goes below.
      # The text the user input is in the string @text.
      # The special word the user input is in the string @special_word.
      # ================================================================================
    
    
      @character_count_with_spaces = "Replace this string with your answer."
    
      @character_count_without_spaces = "Replace this string with your answer."
    
      @word_count = "Replace this string with your answer."
    
      @occurrences = "Replace this string with your answer."
    end
    
  10. The code between the def word_count and end is the program that gets executed. I have already written some code that retrieves the inputs from the form and places them into variables for you to use, @text and @special_word.

  11. Your job is to write code below the comments and, ultimately, store the correct values in the variables I created at the bottom of the method. For example, to solve the first part, call .length on the user's input, @text, and assign the result to @character_count_with_spaces.

    @character_count_with_spaces = @text.length
    
  12. You have to figure out how to calculate the correct value for the rest: @character_count_without_spaces, @word_count, and @occurrences. Don't change the names of these variables; if you do, your results won't appear in the browser in the end.

  13. Refresh the results page in your browser to re-run your code and see new output.

  14. You can write as much or as little code as it takes to produce the correct answer; create intermediate variables if you want, or do anything else that you learned about from class. It's all just the same Ruby as before.

  15. Use the Continuous Integration workflow to save and submit your work after you complete each little task.

  16. Next, work on the Loan Payment calculator. You'll again be working in the same file, /app/controllers/calculations_controller.rb. This time, scroll down to the method def loan_payment and write your code in there as indicated by the comments.

  17. Some tasks are easier, some are much harder. For example, in the Descriptive Statistics calculator, finding the mode (the number that occurs most frequently in a list of numbers) is surprisingly hard. Do your best, but don't get discouraged if you can't quite solve it.

  18. For the mode calculation, just worry about the simplest case; when there's one number that occurs most frequently, that should be shown as the mode. I won't be testing the case that there's a tie.

  19. Make lots of commits and Push them to GitHub as you are working.

  20. I suggest making a new branch for every new feature that you start working on.

  21. Ask lots of questions!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 53.5%
  • CSS 28.8%
  • HTML 16.6%
  • JavaScript 1.1%