From 2aad47f0766db403309521643271ab62690fe60d Mon Sep 17 00:00:00 2001 From: jm-rives Date: Mon, 31 Oct 2016 18:52:23 -0700 Subject: [PATCH 01/37] INITIAL commit with .gitignore and updated gemfiles. --- .gitignore | 22 +++ Gemfile | 61 +++++++ Gemfile.lock | 162 ++++++++++++++++++ README.md | 70 ++------ README.rdoc | 28 +++ Rakefile | 6 + app/assets/images/.keep | 0 app/assets/javascripts/application.js | 16 ++ app/assets/stylesheets/application.css | 15 ++ app/controllers/application_controller.rb | 5 + app/controllers/concerns/.keep | 0 app/helpers/application_helper.rb | 2 + app/mailers/.keep | 0 app/models/.keep | 0 app/models/concerns/.keep | 0 app/views/layouts/application.html.erb | 14 ++ bin/bundle | 3 + bin/rails | 9 + bin/rake | 9 + bin/setup | 29 ++++ bin/spring | 16 ++ config.ru | 4 + config/application.rb | 26 +++ config/boot.rb | 3 + config/database.yml | 25 +++ config/environment.rb | 5 + config/environments/development.rb | 41 +++++ config/environments/production.rb | 79 +++++++++ config/environments/test.rb | 42 +++++ config/initializers/assets.rb | 11 ++ config/initializers/backtrace_silencers.rb | 7 + config/initializers/cookies_serializer.rb | 3 + .../initializers/filter_parameter_logging.rb | 4 + config/initializers/inflections.rb | 16 ++ config/initializers/mime_types.rb | 4 + config/initializers/session_store.rb | 3 + config/initializers/wrap_parameters.rb | 14 ++ config/locales/en.yml | 23 +++ config/routes.rb | 56 ++++++ config/secrets.yml | 22 +++ db/seeds.rb | 7 + lib/assets/.keep | 0 lib/tasks/.keep | 0 log/.keep | 0 public/404.html | 67 ++++++++ public/422.html | 67 ++++++++ public/500.html | 66 +++++++ public/favicon.ico | 0 public/robots.txt | 5 + test/controllers/.keep | 0 test/fixtures/.keep | 0 test/helpers/.keep | 0 test/integration/.keep | 0 test/mailers/.keep | 0 test/models/.keep | 0 test/test_helper.rb | 10 ++ vendor/assets/javascripts/.keep | 0 vendor/assets/stylesheets/.keep | 0 58 files changed, 1022 insertions(+), 55 deletions(-) create mode 100644 .gitignore create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 README.rdoc create mode 100644 Rakefile create mode 100644 app/assets/images/.keep create mode 100644 app/assets/javascripts/application.js create mode 100644 app/assets/stylesheets/application.css create mode 100644 app/controllers/application_controller.rb create mode 100644 app/controllers/concerns/.keep create mode 100644 app/helpers/application_helper.rb create mode 100644 app/mailers/.keep create mode 100644 app/models/.keep create mode 100644 app/models/concerns/.keep create mode 100644 app/views/layouts/application.html.erb create mode 100755 bin/bundle create mode 100755 bin/rails create mode 100755 bin/rake create mode 100755 bin/setup create mode 100755 bin/spring create mode 100644 config.ru create mode 100644 config/application.rb create mode 100644 config/boot.rb create mode 100644 config/database.yml create mode 100644 config/environment.rb create mode 100644 config/environments/development.rb create mode 100644 config/environments/production.rb create mode 100644 config/environments/test.rb create mode 100644 config/initializers/assets.rb create mode 100644 config/initializers/backtrace_silencers.rb create mode 100644 config/initializers/cookies_serializer.rb create mode 100644 config/initializers/filter_parameter_logging.rb create mode 100644 config/initializers/inflections.rb create mode 100644 config/initializers/mime_types.rb create mode 100644 config/initializers/session_store.rb create mode 100644 config/initializers/wrap_parameters.rb create mode 100644 config/locales/en.yml create mode 100644 config/routes.rb create mode 100644 config/secrets.yml create mode 100644 db/seeds.rb create mode 100644 lib/assets/.keep create mode 100644 lib/tasks/.keep create mode 100644 log/.keep create mode 100644 public/404.html create mode 100644 public/422.html create mode 100644 public/500.html create mode 100644 public/favicon.ico create mode 100644 public/robots.txt create mode 100644 test/controllers/.keep create mode 100644 test/fixtures/.keep create mode 100644 test/helpers/.keep create mode 100644 test/integration/.keep create mode 100644 test/mailers/.keep create mode 100644 test/models/.keep create mode 100644 test/test_helper.rb create mode 100644 vendor/assets/javascripts/.keep create mode 100644 vendor/assets/stylesheets/.keep diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..f620b0cd4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,22 @@ +# See https://help.github.com/articles/ignoring-files for more about ignoring files. +# +# If you find yourself ignoring temporary files generated by your text editor +# or operating system, you probably want to add a global ignore instead: +# git config --global core.excludesfile '~/.gitignore_global' + +# Ignore bundler config. +/.bundle + +# Ignore the default SQLite database. +/db/*.sqlite3 +/db/*.sqlite3-journal + +# Ignore all logfiles and tempfiles. +/log/* +!/log/.keep +/tmp +.env +/#.env # hides all files that end +.DS_store + + diff --git a/Gemfile b/Gemfile new file mode 100644 index 000000000..f71aa7941 --- /dev/null +++ b/Gemfile @@ -0,0 +1,61 @@ +source 'https://rubygems.org' + + +# Required due to an incompatibility between TurboLinks and Foundation. +gem 'jquery-turbolinks' + +# gem 'faker' + +gem 'awesome_print' + +# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' +gem 'rails', '4.2.7' +# Use sqlite3 as the database for Active Record +gem 'sqlite3' +# Use SCSS for stylesheets +gem 'sass-rails', '~> 5.0' +# Use Uglifier as compressor for JavaScript assets +gem 'uglifier', '>= 1.3.0' +# Use CoffeeScript for .coffee assets and views +gem 'coffee-rails', '~> 4.1.0' +# See https://github.com/rails/execjs#readme for more supported runtimes +# gem 'therubyracer', platforms: :ruby + +# Use jquery as the JavaScript library +gem 'jquery-rails' +# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks +gem 'turbolinks' +# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder +gem 'jbuilder', '~> 2.0' +# bundle exec rake doc:rails generates the API under doc/api. +gem 'sdoc', '~> 0.4.0', group: :doc + +# Use ActiveModel has_secure_password +# gem 'bcrypt', '~> 3.1.7' + +# Use Unicorn as the app server +# gem 'unicorn' + +# Use Capistrano for deployment +# gem 'capistrano-rails', group: :development + +# API GEMS +gem 'httparty' + +gem 'foundation-rails' + + +group :development, :test do + # Call 'byebug' anywhere in the code to stop execution and get a debugger console + gem 'byebug' + gem 'dotenv-rails' + gem 'better_errors' +end + +group :development do + # Access an IRB console on exception pages or by using <%= console %> in views + gem 'web-console', '~> 2.0' + + # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring + gem 'spring' +end diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 000000000..c1dccfc10 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,162 @@ +GEM + remote: https://rubygems.org/ + specs: + actionmailer (4.2.7) + actionpack (= 4.2.7) + actionview (= 4.2.7) + activejob (= 4.2.7) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 1.0, >= 1.0.5) + actionpack (4.2.7) + actionview (= 4.2.7) + activesupport (= 4.2.7) + rack (~> 1.6) + rack-test (~> 0.6.2) + rails-dom-testing (~> 1.0, >= 1.0.5) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + actionview (4.2.7) + activesupport (= 4.2.7) + builder (~> 3.1) + erubis (~> 2.7.0) + rails-dom-testing (~> 1.0, >= 1.0.5) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + activejob (4.2.7) + activesupport (= 4.2.7) + globalid (>= 0.3.0) + activemodel (4.2.7) + activesupport (= 4.2.7) + builder (~> 3.1) + activerecord (4.2.7) + activemodel (= 4.2.7) + activesupport (= 4.2.7) + arel (~> 6.0) + activesupport (4.2.7) + i18n (~> 0.7) + json (~> 1.7, >= 1.7.7) + minitest (~> 5.1) + thread_safe (~> 0.3, >= 0.3.4) + tzinfo (~> 1.1) + arel (6.0.3) + binding_of_caller (0.7.2) + debug_inspector (>= 0.0.1) + builder (3.2.2) + byebug (9.0.6) + coffee-rails (4.1.1) + coffee-script (>= 2.2.0) + railties (>= 4.0.0, < 5.1.x) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.10.0) + concurrent-ruby (1.0.2) + debug_inspector (0.0.2) + erubis (2.7.0) + execjs (2.7.0) + globalid (0.3.7) + activesupport (>= 4.1.0) + i18n (0.7.0) + jbuilder (2.6.0) + activesupport (>= 3.0.0, < 5.1) + multi_json (~> 1.2) + jquery-rails (4.2.1) + rails-dom-testing (>= 1, < 3) + railties (>= 4.2.0) + thor (>= 0.14, < 2.0) + json (1.8.3) + loofah (2.0.3) + nokogiri (>= 1.5.9) + mail (2.6.4) + mime-types (>= 1.16, < 4) + mime-types (3.1) + mime-types-data (~> 3.2015) + mime-types-data (3.2016.0521) + mini_portile2 (2.1.0) + minitest (5.9.1) + multi_json (1.12.1) + nokogiri (1.6.8.1) + mini_portile2 (~> 2.1.0) + rack (1.6.4) + rack-test (0.6.3) + rack (>= 1.0) + rails (4.2.7) + actionmailer (= 4.2.7) + actionpack (= 4.2.7) + actionview (= 4.2.7) + activejob (= 4.2.7) + activemodel (= 4.2.7) + activerecord (= 4.2.7) + activesupport (= 4.2.7) + bundler (>= 1.3.0, < 2.0) + railties (= 4.2.7) + sprockets-rails + rails-deprecated_sanitizer (1.0.3) + activesupport (>= 4.2.0.alpha) + rails-dom-testing (1.0.7) + activesupport (>= 4.2.0.beta, < 5.0) + nokogiri (~> 1.6.0) + rails-deprecated_sanitizer (>= 1.0.1) + rails-html-sanitizer (1.0.3) + loofah (~> 2.0) + railties (4.2.7) + actionpack (= 4.2.7) + activesupport (= 4.2.7) + rake (>= 0.8.7) + thor (>= 0.18.1, < 2.0) + rake (11.3.0) + rdoc (4.2.2) + json (~> 1.4) + sass (3.4.22) + sass-rails (5.0.6) + railties (>= 4.0.0, < 6) + sass (~> 3.1) + sprockets (>= 2.8, < 4.0) + sprockets-rails (>= 2.0, < 4.0) + tilt (>= 1.1, < 3) + sdoc (0.4.2) + json (~> 1.7, >= 1.7.7) + rdoc (~> 4.0) + spring (2.0.0) + activesupport (>= 4.2) + sprockets (3.7.0) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-rails (3.2.0) + actionpack (>= 4.0) + activesupport (>= 4.0) + sprockets (>= 3.0.0) + sqlite3 (1.3.12) + thor (0.19.1) + thread_safe (0.3.5) + tilt (2.0.5) + turbolinks (5.0.1) + turbolinks-source (~> 5) + turbolinks-source (5.0.0) + tzinfo (1.2.2) + thread_safe (~> 0.1) + uglifier (3.0.3) + execjs (>= 0.3.0, < 3) + web-console (2.3.0) + activemodel (>= 4.0) + binding_of_caller (>= 0.7.2) + railties (>= 4.0) + sprockets-rails (>= 2.0, < 4.0) + +PLATFORMS + ruby + +DEPENDENCIES + byebug + coffee-rails (~> 4.1.0) + jbuilder (~> 2.0) + jquery-rails + rails (= 4.2.7) + sass-rails (~> 5.0) + sdoc (~> 0.4.0) + spring + sqlite3 + turbolinks + uglifier (>= 1.3.0) + web-console (~> 2.0) + +BUNDLED WITH + 1.13.6 diff --git a/README.md b/README.md index afd643dd4..dd4e97e22 100644 --- a/README.md +++ b/README.md @@ -1,68 +1,28 @@ -# Recipe API Consumer +== README -## Learning Goals: -- Configure an API for consumption -- Create authenticated API requests using HTTParty -- Consume JSON responses from an API -- Map response to application-specific data -- Separate API logic from application logic +This README would normally document whatever steps are necessary to get the +application up and running. -## Purpose -Create a web application that will display recipes based on a search term. We will utilize an API from Edamam called the [Recipe Search API](https://developer.edamam.com/edamam-recipe-api). +Things you may want to cover: +* Ruby version -### Baseline -Before you start writing _any_ code: +* System dependencies -- Explore the API documentation to become familiar with the request(s) you can make -- If desired, create a Trello board to manage tasks +* Configuration -Once you've explored the API docs, this project: +* Database creation -- requires an individual **branch** and fork -- Use better_errors for debugging purposes -- requires you to create a Rails application - - conform to Rails conventions on naming and inflection - - by using `rails new .` you will create a new rails app _inside_ of the fork folder instead of creating a _new_ folder for your rails app - -**You shall submit a pull request _with a meaningful pull request description_ once you are done with the baseline which shall be merged before moving onto implementing the requirements. _Do not push any additional code until your baseline PR has been merged_** +* Database initialization +* How to run the test suite -### Detailed Requirements -**Search**: -- The user shall type in a search term that will: - - Make a request to the API using the search term - - Display the results in a list to the user - -**List View**: -- This shall show a **paged** list of recipes for a given search term, _ten at a time_ -- This view shall show the name of the recipe and the corresponding photo -- The view shall have a link from the recipe to a recipe show view +* Services (job queues, cache servers, search engines, etc.) -**Show View**: -- This shall show the details about a given recipe. These details include: - - Name - - Link to the original recipe (opens in a new tab) - - Ingredients - - Dietary information - -**Additional Requirements**: -- One of the things that permits us to use this API, it providing attibution to the API's created. We must provide this somewhere on our site. Example locations include the footer or an about page. - - [Examples from the API site](https://www.dropbox.com/sh/ss34tnh4kyfxkxu/AADNJ_pB7Ou8_MVrYxgM4aQYa?dl=0&preview=Attribution+examples.pdf) -- You must also create tests for your API Wrapper & any classes as well as controller tests using VCR -- Your site must have a **responsive** look and feel, use semantic HTML as well as any grid formatting using Zurb Foundation +* Deployment instructions -### Important Notes: -- Using this API as a developer limits the number of API calls in a month to 5000. This means that we must try to minimize API calls for testing purposes as much as possible, to ensure you do not exceed this number of API calls in the one week of development we have. +* ... -### Optional Requirements: -- Keep track of most recent search terms and allow user's to return to those searches -- Implement an OAuth strategy using Google - - Allow users to save recipes to a "favorites" section that they can return to -- Provide checkboxes or other controls to limit the search to options such as: - - Peanut Free - - Soy Free - - High Protein - - Etc - +Please feel free to use a different markup language if you do not plan to run +rake doc:app. diff --git a/README.rdoc b/README.rdoc new file mode 100644 index 000000000..dd4e97e22 --- /dev/null +++ b/README.rdoc @@ -0,0 +1,28 @@ +== README + +This README would normally document whatever steps are necessary to get the +application up and running. + +Things you may want to cover: + +* Ruby version + +* System dependencies + +* Configuration + +* Database creation + +* Database initialization + +* How to run the test suite + +* Services (job queues, cache servers, search engines, etc.) + +* Deployment instructions + +* ... + + +Please feel free to use a different markup language if you do not plan to run +rake doc:app. diff --git a/Rakefile b/Rakefile new file mode 100644 index 000000000..ba6b733dd --- /dev/null +++ b/Rakefile @@ -0,0 +1,6 @@ +# Add your own tasks in files placed in lib/tasks ending in .rake, +# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. + +require File.expand_path('../config/application', __FILE__) + +Rails.application.load_tasks diff --git a/app/assets/images/.keep b/app/assets/images/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js new file mode 100644 index 000000000..e07c5a830 --- /dev/null +++ b/app/assets/javascripts/application.js @@ -0,0 +1,16 @@ +// This is a manifest file that'll be compiled into application.js, which will include all the files +// listed below. +// +// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, +// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path. +// +// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the +// compiled file. +// +// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details +// about supported directives. +// +//= require jquery +//= require jquery_ujs +//= require turbolinks +//= require_tree . diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css new file mode 100644 index 000000000..f9cd5b348 --- /dev/null +++ b/app/assets/stylesheets/application.css @@ -0,0 +1,15 @@ +/* + * This is a manifest file that'll be compiled into application.css, which will include all the files + * listed below. + * + * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, + * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path. + * + * You're free to add application-wide styles to this file and they'll appear at the bottom of the + * compiled file so the styles you add here take precedence over styles defined in any styles + * defined in the other CSS/SCSS files in this directory. It is generally better to create a new + * file per style scope. + * + *= require_tree . + *= require_self + */ diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb new file mode 100644 index 000000000..d83690e1b --- /dev/null +++ b/app/controllers/application_controller.rb @@ -0,0 +1,5 @@ +class ApplicationController < ActionController::Base + # Prevent CSRF attacks by raising an exception. + # For APIs, you may want to use :null_session instead. + protect_from_forgery with: :exception +end diff --git a/app/controllers/concerns/.keep b/app/controllers/concerns/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb new file mode 100644 index 000000000..de6be7945 --- /dev/null +++ b/app/helpers/application_helper.rb @@ -0,0 +1,2 @@ +module ApplicationHelper +end diff --git a/app/mailers/.keep b/app/mailers/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/app/models/.keep b/app/models/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/app/models/concerns/.keep b/app/models/concerns/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb new file mode 100644 index 000000000..237dbba45 --- /dev/null +++ b/app/views/layouts/application.html.erb @@ -0,0 +1,14 @@ + + + + ApiMuncher + <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> + <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> + <%= csrf_meta_tags %> + + + +<%= yield %> + + + diff --git a/bin/bundle b/bin/bundle new file mode 100755 index 000000000..66e9889e8 --- /dev/null +++ b/bin/bundle @@ -0,0 +1,3 @@ +#!/usr/bin/env ruby +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) +load Gem.bin_path('bundler', 'bundle') diff --git a/bin/rails b/bin/rails new file mode 100755 index 000000000..0138d79b7 --- /dev/null +++ b/bin/rails @@ -0,0 +1,9 @@ +#!/usr/bin/env ruby +begin + load File.expand_path('../spring', __FILE__) +rescue LoadError => e + raise unless e.message.include?('spring') +end +APP_PATH = File.expand_path('../../config/application', __FILE__) +require_relative '../config/boot' +require 'rails/commands' diff --git a/bin/rake b/bin/rake new file mode 100755 index 000000000..d87d5f578 --- /dev/null +++ b/bin/rake @@ -0,0 +1,9 @@ +#!/usr/bin/env ruby +begin + load File.expand_path('../spring', __FILE__) +rescue LoadError => e + raise unless e.message.include?('spring') +end +require_relative '../config/boot' +require 'rake' +Rake.application.run diff --git a/bin/setup b/bin/setup new file mode 100755 index 000000000..acdb2c138 --- /dev/null +++ b/bin/setup @@ -0,0 +1,29 @@ +#!/usr/bin/env ruby +require 'pathname' + +# path to your application root. +APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) + +Dir.chdir APP_ROOT do + # This script is a starting point to setup your application. + # Add necessary setup steps to this file: + + puts "== Installing dependencies ==" + system "gem install bundler --conservative" + system "bundle check || bundle install" + + # puts "\n== Copying sample files ==" + # unless File.exist?("config/database.yml") + # system "cp config/database.yml.sample config/database.yml" + # end + + puts "\n== Preparing database ==" + system "bin/rake db:setup" + + puts "\n== Removing old logs and tempfiles ==" + system "rm -f log/*" + system "rm -rf tmp/cache" + + puts "\n== Restarting application server ==" + system "touch tmp/restart.txt" +end diff --git a/bin/spring b/bin/spring new file mode 100755 index 000000000..9bc076b9e --- /dev/null +++ b/bin/spring @@ -0,0 +1,16 @@ +#!/usr/bin/env ruby + +# This file loads spring without using Bundler, in order to be fast. +# It gets overwritten when you run the `spring binstub` command. + +unless defined?(Spring) + require 'rubygems' + require 'bundler' + + lockfile = Bundler::LockfileParser.new(Bundler.default_lockfile.read) + if spring = lockfile.specs.detect { |spec| spec.name == "spring" } + Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, *Gem.path + gem 'spring', spring.version + require 'spring/binstub' + end +end diff --git a/config.ru b/config.ru new file mode 100644 index 000000000..bd83b2541 --- /dev/null +++ b/config.ru @@ -0,0 +1,4 @@ +# This file is used by Rack-based servers to start the application. + +require ::File.expand_path('../config/environment', __FILE__) +run Rails.application diff --git a/config/application.rb b/config/application.rb new file mode 100644 index 000000000..20568697a --- /dev/null +++ b/config/application.rb @@ -0,0 +1,26 @@ +require File.expand_path('../boot', __FILE__) + +require 'rails/all' + +# Require the gems listed in Gemfile, including any gems +# you've limited to :test, :development, or :production. +Bundler.require(*Rails.groups) + +module ApiMuncher + class Application < Rails::Application + # Settings in config/environments/* take precedence over those specified here. + # Application configuration should go into files in config/initializers + # -- all .rb files in that directory are automatically loaded. + + # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. + # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. + # config.time_zone = 'Central Time (US & Canada)' + + # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. + # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] + # config.i18n.default_locale = :de + + # Do not swallow errors in after_commit/after_rollback callbacks. + config.active_record.raise_in_transactional_callbacks = true + end +end diff --git a/config/boot.rb b/config/boot.rb new file mode 100644 index 000000000..6b750f00b --- /dev/null +++ b/config/boot.rb @@ -0,0 +1,3 @@ +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) + +require 'bundler/setup' # Set up gems listed in the Gemfile. diff --git a/config/database.yml b/config/database.yml new file mode 100644 index 000000000..1c1a37ca8 --- /dev/null +++ b/config/database.yml @@ -0,0 +1,25 @@ +# SQLite version 3.x +# gem install sqlite3 +# +# Ensure the SQLite 3 gem is defined in your Gemfile +# gem 'sqlite3' +# +default: &default + adapter: sqlite3 + pool: 5 + timeout: 5000 + +development: + <<: *default + database: db/development.sqlite3 + +# Warning: The database defined as "test" will be erased and +# re-generated from your development database when you run "rake". +# Do not set this db to the same as development or production. +test: + <<: *default + database: db/test.sqlite3 + +production: + <<: *default + database: db/production.sqlite3 diff --git a/config/environment.rb b/config/environment.rb new file mode 100644 index 000000000..ee8d90dc6 --- /dev/null +++ b/config/environment.rb @@ -0,0 +1,5 @@ +# Load the Rails application. +require File.expand_path('../application', __FILE__) + +# Initialize the Rails application. +Rails.application.initialize! diff --git a/config/environments/development.rb b/config/environments/development.rb new file mode 100644 index 000000000..b55e2144b --- /dev/null +++ b/config/environments/development.rb @@ -0,0 +1,41 @@ +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # In the development environment your application's code is reloaded on + # every request. This slows down response time but is perfect for development + # since you don't have to restart the web server when you make code changes. + config.cache_classes = false + + # Do not eager load code on boot. + config.eager_load = false + + # Show full error reports and disable caching. + config.consider_all_requests_local = true + config.action_controller.perform_caching = false + + # Don't care if the mailer can't send. + config.action_mailer.raise_delivery_errors = false + + # Print deprecation notices to the Rails logger. + config.active_support.deprecation = :log + + # Raise an error on page load if there are pending migrations. + config.active_record.migration_error = :page_load + + # Debug mode disables concatenation and preprocessing of assets. + # This option may cause significant delays in view rendering with a large + # number of complex assets. + config.assets.debug = true + + # Asset digests allow you to set far-future HTTP expiration dates on all assets, + # yet still be able to expire them through the digest params. + config.assets.digest = true + + # Adds additional error checking when serving assets at runtime. + # Checks for improperly declared sprockets dependencies. + # Raises helpful error messages. + config.assets.raise_runtime_errors = true + + # Raises error for missing translations + # config.action_view.raise_on_missing_translations = true +end diff --git a/config/environments/production.rb b/config/environments/production.rb new file mode 100644 index 000000000..5c1b32e48 --- /dev/null +++ b/config/environments/production.rb @@ -0,0 +1,79 @@ +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # Code is not reloaded between requests. + config.cache_classes = true + + # Eager load code on boot. This eager loads most of Rails and + # your application in memory, allowing both threaded web servers + # and those relying on copy on write to perform better. + # Rake tasks automatically ignore this option for performance. + config.eager_load = true + + # Full error reports are disabled and caching is turned on. + config.consider_all_requests_local = false + config.action_controller.perform_caching = true + + # Enable Rack::Cache to put a simple HTTP cache in front of your application + # Add `rack-cache` to your Gemfile before enabling this. + # For large-scale production use, consider using a caching reverse proxy like + # NGINX, varnish or squid. + # config.action_dispatch.rack_cache = true + + # Disable serving static files from the `/public` folder by default since + # Apache or NGINX already handles this. + config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present? + + # Compress JavaScripts and CSS. + config.assets.js_compressor = :uglifier + # config.assets.css_compressor = :sass + + # Do not fallback to assets pipeline if a precompiled asset is missed. + config.assets.compile = false + + # Asset digests allow you to set far-future HTTP expiration dates on all assets, + # yet still be able to expire them through the digest params. + config.assets.digest = true + + # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb + + # Specifies the header that your server uses for sending files. + # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache + # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX + + # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. + # config.force_ssl = true + + # Use the lowest log level to ensure availability of diagnostic information + # when problems arise. + config.log_level = :debug + + # Prepend all log lines with the following tags. + # config.log_tags = [ :subdomain, :uuid ] + + # Use a different logger for distributed setups. + # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) + + # Use a different cache store in production. + # config.cache_store = :mem_cache_store + + # Enable serving of images, stylesheets, and JavaScripts from an asset server. + # config.action_controller.asset_host = 'http://assets.example.com' + + # Ignore bad email addresses and do not raise email delivery errors. + # Set this to true and configure the email server for immediate delivery to raise delivery errors. + # config.action_mailer.raise_delivery_errors = false + + # Enable locale fallbacks for I18n (makes lookups for any locale fall back to + # the I18n.default_locale when a translation cannot be found). + config.i18n.fallbacks = true + + # Send deprecation notices to registered listeners. + config.active_support.deprecation = :notify + + # Use default logging formatter so that PID and timestamp are not suppressed. + config.log_formatter = ::Logger::Formatter.new + + # Do not dump schema after migrations. + config.active_record.dump_schema_after_migration = false +end diff --git a/config/environments/test.rb b/config/environments/test.rb new file mode 100644 index 000000000..1c19f08b2 --- /dev/null +++ b/config/environments/test.rb @@ -0,0 +1,42 @@ +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # The test environment is used exclusively to run your application's + # test suite. You never need to work with it otherwise. Remember that + # your test database is "scratch space" for the test suite and is wiped + # and recreated between test runs. Don't rely on the data there! + config.cache_classes = true + + # Do not eager load code on boot. This avoids loading your whole application + # just for the purpose of running a single test. If you are using a tool that + # preloads Rails for running tests, you may have to set it to true. + config.eager_load = false + + # Configure static file server for tests with Cache-Control for performance. + config.serve_static_files = true + config.static_cache_control = 'public, max-age=3600' + + # Show full error reports and disable caching. + config.consider_all_requests_local = true + config.action_controller.perform_caching = false + + # Raise exceptions instead of rendering exception templates. + config.action_dispatch.show_exceptions = false + + # Disable request forgery protection in test environment. + config.action_controller.allow_forgery_protection = false + + # Tell Action Mailer not to deliver emails to the real world. + # The :test delivery method accumulates sent emails in the + # ActionMailer::Base.deliveries array. + config.action_mailer.delivery_method = :test + + # Randomize the order test cases are executed. + config.active_support.test_order = :random + + # Print deprecation notices to the stderr. + config.active_support.deprecation = :stderr + + # Raises error for missing translations + # config.action_view.raise_on_missing_translations = true +end diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb new file mode 100644 index 000000000..01ef3e663 --- /dev/null +++ b/config/initializers/assets.rb @@ -0,0 +1,11 @@ +# Be sure to restart your server when you modify this file. + +# Version of your assets, change this if you want to expire all your assets. +Rails.application.config.assets.version = '1.0' + +# Add additional assets to the asset load path +# Rails.application.config.assets.paths << Emoji.images_path + +# Precompile additional assets. +# application.js, application.css, and all non-JS/CSS in app/assets folder are already added. +# Rails.application.config.assets.precompile += %w( search.js ) diff --git a/config/initializers/backtrace_silencers.rb b/config/initializers/backtrace_silencers.rb new file mode 100644 index 000000000..59385cdf3 --- /dev/null +++ b/config/initializers/backtrace_silencers.rb @@ -0,0 +1,7 @@ +# Be sure to restart your server when you modify this file. + +# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. +# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } + +# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. +# Rails.backtrace_cleaner.remove_silencers! diff --git a/config/initializers/cookies_serializer.rb b/config/initializers/cookies_serializer.rb new file mode 100644 index 000000000..7f70458de --- /dev/null +++ b/config/initializers/cookies_serializer.rb @@ -0,0 +1,3 @@ +# Be sure to restart your server when you modify this file. + +Rails.application.config.action_dispatch.cookies_serializer = :json diff --git a/config/initializers/filter_parameter_logging.rb b/config/initializers/filter_parameter_logging.rb new file mode 100644 index 000000000..4a994e1e7 --- /dev/null +++ b/config/initializers/filter_parameter_logging.rb @@ -0,0 +1,4 @@ +# Be sure to restart your server when you modify this file. + +# Configure sensitive parameters which will be filtered from the log file. +Rails.application.config.filter_parameters += [:password] diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb new file mode 100644 index 000000000..ac033bf9d --- /dev/null +++ b/config/initializers/inflections.rb @@ -0,0 +1,16 @@ +# Be sure to restart your server when you modify this file. + +# Add new inflection rules using the following format. Inflections +# are locale specific, and you may define rules for as many different +# locales as you wish. All of these examples are active by default: +# ActiveSupport::Inflector.inflections(:en) do |inflect| +# inflect.plural /^(ox)$/i, '\1en' +# inflect.singular /^(ox)en/i, '\1' +# inflect.irregular 'person', 'people' +# inflect.uncountable %w( fish sheep ) +# end + +# These inflection rules are supported but not enabled by default: +# ActiveSupport::Inflector.inflections(:en) do |inflect| +# inflect.acronym 'RESTful' +# end diff --git a/config/initializers/mime_types.rb b/config/initializers/mime_types.rb new file mode 100644 index 000000000..dc1899682 --- /dev/null +++ b/config/initializers/mime_types.rb @@ -0,0 +1,4 @@ +# Be sure to restart your server when you modify this file. + +# Add new mime types for use in respond_to blocks: +# Mime::Type.register "text/richtext", :rtf diff --git a/config/initializers/session_store.rb b/config/initializers/session_store.rb new file mode 100644 index 000000000..6cc0e03e4 --- /dev/null +++ b/config/initializers/session_store.rb @@ -0,0 +1,3 @@ +# Be sure to restart your server when you modify this file. + +Rails.application.config.session_store :cookie_store, key: '_api-muncher_session' diff --git a/config/initializers/wrap_parameters.rb b/config/initializers/wrap_parameters.rb new file mode 100644 index 000000000..33725e95f --- /dev/null +++ b/config/initializers/wrap_parameters.rb @@ -0,0 +1,14 @@ +# Be sure to restart your server when you modify this file. + +# This file contains settings for ActionController::ParamsWrapper which +# is enabled by default. + +# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. +ActiveSupport.on_load(:action_controller) do + wrap_parameters format: [:json] if respond_to?(:wrap_parameters) +end + +# To enable root element in JSON for ActiveRecord objects. +# ActiveSupport.on_load(:active_record) do +# self.include_root_in_json = true +# end diff --git a/config/locales/en.yml b/config/locales/en.yml new file mode 100644 index 000000000..065395716 --- /dev/null +++ b/config/locales/en.yml @@ -0,0 +1,23 @@ +# Files in the config/locales directory are used for internationalization +# and are automatically loaded by Rails. If you want to use locales other +# than English, add the necessary files in this directory. +# +# To use the locales, use `I18n.t`: +# +# I18n.t 'hello' +# +# In views, this is aliased to just `t`: +# +# <%= t('hello') %> +# +# To use a different locale, set it with `I18n.locale`: +# +# I18n.locale = :es +# +# This would use the information in config/locales/es.yml. +# +# To learn more, please read the Rails Internationalization guide +# available at http://guides.rubyonrails.org/i18n.html. + +en: + hello: "Hello world" diff --git a/config/routes.rb b/config/routes.rb new file mode 100644 index 000000000..3f66539d5 --- /dev/null +++ b/config/routes.rb @@ -0,0 +1,56 @@ +Rails.application.routes.draw do + # The priority is based upon order of creation: first created -> highest priority. + # See how all your routes lay out with "rake routes". + + # You can have the root of your site routed with "root" + # root 'welcome#index' + + # Example of regular route: + # get 'products/:id' => 'catalog#view' + + # Example of named route that can be invoked with purchase_url(id: product.id) + # get 'products/:id/purchase' => 'catalog#purchase', as: :purchase + + # Example resource route (maps HTTP verbs to controller actions automatically): + # resources :products + + # Example resource route with options: + # resources :products do + # member do + # get 'short' + # post 'toggle' + # end + # + # collection do + # get 'sold' + # end + # end + + # Example resource route with sub-resources: + # resources :products do + # resources :comments, :sales + # resource :seller + # end + + # Example resource route with more complex sub-resources: + # resources :products do + # resources :comments + # resources :sales do + # get 'recent', on: :collection + # end + # end + + # Example resource route with concerns: + # concern :toggleable do + # post 'toggle' + # end + # resources :posts, concerns: :toggleable + # resources :photos, concerns: :toggleable + + # Example resource route within a namespace: + # namespace :admin do + # # Directs /admin/products/* to Admin::ProductsController + # # (app/controllers/admin/products_controller.rb) + # resources :products + # end +end diff --git a/config/secrets.yml b/config/secrets.yml new file mode 100644 index 000000000..94bdfea6c --- /dev/null +++ b/config/secrets.yml @@ -0,0 +1,22 @@ +# Be sure to restart your server when you modify this file. + +# Your secret key is used for verifying the integrity of signed cookies. +# If you change this key, all old signed cookies will become invalid! + +# Make sure the secret is at least 30 characters and all random, +# no regular words or you'll be exposed to dictionary attacks. +# You can use `rake secret` to generate a secure secret key. + +# Make sure the secrets in this file are kept private +# if you're sharing your code publicly. + +development: + secret_key_base: ccabdf51bb8a93593f3662cabc55cc276128db83e6ebb03ada038cd1d1bd8611c69f79cf3ca868628e8bdfa785a4258e53d1481e50cc0619d4ac904375e3fd02 + +test: + secret_key_base: 3dbfba3d6064c6908884ae4743b5ecc88df42f147d45cbc0595431d172fba2afd0905f8c77316cd964f853be01088a44469a6f3a268d45dfcb323ec5fb38b8a7 + +# Do not keep production secrets in the repository, +# instead read values from the environment. +production: + secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> diff --git a/db/seeds.rb b/db/seeds.rb new file mode 100644 index 000000000..4edb1e857 --- /dev/null +++ b/db/seeds.rb @@ -0,0 +1,7 @@ +# This file should contain all the record creation needed to seed the database with its default values. +# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup). +# +# Examples: +# +# cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }]) +# Mayor.create(name: 'Emanuel', city: cities.first) diff --git a/lib/assets/.keep b/lib/assets/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/lib/tasks/.keep b/lib/tasks/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/log/.keep b/log/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/public/404.html b/public/404.html new file mode 100644 index 000000000..b612547fc --- /dev/null +++ b/public/404.html @@ -0,0 +1,67 @@ + + + + The page you were looking for doesn't exist (404) + + + + + + +
+
+

The page you were looking for doesn't exist.

+

You may have mistyped the address or the page may have moved.

+
+

If you are the application owner check the logs for more information.

+
+ + diff --git a/public/422.html b/public/422.html new file mode 100644 index 000000000..a21f82b3b --- /dev/null +++ b/public/422.html @@ -0,0 +1,67 @@ + + + + The change you wanted was rejected (422) + + + + + + +
+
+

The change you wanted was rejected.

+

Maybe you tried to change something you didn't have access to.

+
+

If you are the application owner check the logs for more information.

+
+ + diff --git a/public/500.html b/public/500.html new file mode 100644 index 000000000..061abc587 --- /dev/null +++ b/public/500.html @@ -0,0 +1,66 @@ + + + + We're sorry, but something went wrong (500) + + + + + + +
+
+

We're sorry, but something went wrong.

+
+

If you are the application owner check the logs for more information.

+
+ + diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 000000000..e69de29bb diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 000000000..3c9c7c01f --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,5 @@ +# See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file +# +# To ban all spiders from the entire site uncomment the next two lines: +# User-agent: * +# Disallow: / diff --git a/test/controllers/.keep b/test/controllers/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/test/fixtures/.keep b/test/fixtures/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/test/helpers/.keep b/test/helpers/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/test/integration/.keep b/test/integration/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/test/mailers/.keep b/test/mailers/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/test/models/.keep b/test/models/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/test/test_helper.rb b/test/test_helper.rb new file mode 100644 index 000000000..92e39b2d7 --- /dev/null +++ b/test/test_helper.rb @@ -0,0 +1,10 @@ +ENV['RAILS_ENV'] ||= 'test' +require File.expand_path('../../config/environment', __FILE__) +require 'rails/test_help' + +class ActiveSupport::TestCase + # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order. + fixtures :all + + # Add more helper methods to be used by all tests here... +end diff --git a/vendor/assets/javascripts/.keep b/vendor/assets/javascripts/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/assets/stylesheets/.keep b/vendor/assets/stylesheets/.keep new file mode 100644 index 000000000..e69de29bb From ee2948353c44d7038f45708909493d7652293b8f Mon Sep 17 00:00:00 2001 From: jm-rives Date: Tue, 1 Nov 2016 08:10:59 -0700 Subject: [PATCH 02/37] UPDATE gemfile, add search controller --- Gemfile | 1 + Gemfile.lock | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/Gemfile b/Gemfile index f71aa7941..37326f601 100644 --- a/Gemfile +++ b/Gemfile @@ -50,6 +50,7 @@ group :development, :test do gem 'byebug' gem 'dotenv-rails' gem 'better_errors' + gem 'minitest-reporters' end group :development do diff --git a/Gemfile.lock b/Gemfile.lock index c1dccfc10..43a2051bb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -36,11 +36,22 @@ GEM minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) + ansi (1.5.0) arel (6.0.3) + awesome_print (1.7.0) + babel-source (5.8.35) + babel-transpiler (0.7.0) + babel-source (>= 4.0, < 6) + execjs (~> 2.0) + better_errors (2.1.1) + coderay (>= 1.0.0) + erubis (>= 2.6.6) + rack (>= 0.9.0) binding_of_caller (0.7.2) debug_inspector (>= 0.0.1) builder (3.2.2) byebug (9.0.6) + coderay (1.1.1) coffee-rails (4.1.1) coffee-script (>= 2.2.0) railties (>= 4.0.0, < 5.1.x) @@ -50,10 +61,20 @@ GEM coffee-script-source (1.10.0) concurrent-ruby (1.0.2) debug_inspector (0.0.2) + dotenv (2.1.1) + dotenv-rails (2.1.1) + dotenv (= 2.1.1) + railties (>= 4.0, < 5.1) erubis (2.7.0) execjs (2.7.0) + foundation-rails (6.2.4.0) + railties (>= 3.1.0) + sass (>= 3.3.0, < 3.5) + sprockets-es6 (>= 0.9.0) globalid (0.3.7) activesupport (>= 4.1.0) + httparty (0.14.0) + multi_xml (>= 0.5.2) i18n (0.7.0) jbuilder (2.6.0) activesupport (>= 3.0.0, < 5.1) @@ -62,6 +83,9 @@ GEM rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) + jquery-turbolinks (2.1.0) + railties (>= 3.1.0) + turbolinks json (1.8.3) loofah (2.0.3) nokogiri (>= 1.5.9) @@ -72,7 +96,13 @@ GEM mime-types-data (3.2016.0521) mini_portile2 (2.1.0) minitest (5.9.1) + minitest-reporters (1.1.12) + ansi + builder + minitest (>= 5.0) + ruby-progressbar multi_json (1.12.1) + multi_xml (0.5.5) nokogiri (1.6.8.1) mini_portile2 (~> 2.1.0) rack (1.6.4) @@ -105,6 +135,7 @@ GEM rake (11.3.0) rdoc (4.2.2) json (~> 1.4) + ruby-progressbar (1.8.1) sass (3.4.22) sass-rails (5.0.6) railties (>= 4.0.0, < 6) @@ -120,6 +151,10 @@ GEM sprockets (3.7.0) concurrent-ruby (~> 1.0) rack (> 1, < 3) + sprockets-es6 (0.9.2) + babel-source (>= 5.8.11) + babel-transpiler + sprockets (>= 3.0.0) sprockets-rails (3.2.0) actionpack (>= 4.0) activesupport (>= 4.0) @@ -145,10 +180,17 @@ PLATFORMS ruby DEPENDENCIES + awesome_print + better_errors byebug coffee-rails (~> 4.1.0) + dotenv-rails + foundation-rails + httparty jbuilder (~> 2.0) jquery-rails + jquery-turbolinks + minitest-reporters rails (= 4.2.7) sass-rails (~> 5.0) sdoc (~> 0.4.0) From fbcef375daffe333bc021b6d07db7de574b2a482 Mon Sep 17 00:00:00 2001 From: jm-rives Date: Tue, 1 Nov 2016 08:17:53 -0700 Subject: [PATCH 03/37] ADD test controller file --- app/controllers/search_controller.rb | 9 +++++++++ test/controllers/test_search_controller.rb | 7 +++++++ 2 files changed, 16 insertions(+) create mode 100644 app/controllers/search_controller.rb create mode 100644 test/controllers/test_search_controller.rb diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb new file mode 100644 index 000000000..5d40a7f2a --- /dev/null +++ b/app/controllers/search_controller.rb @@ -0,0 +1,9 @@ +# this serves as the controller for my landing page + +class Search_Controller < ActionController::Base + def index + + end + + +end \ No newline at end of file diff --git a/test/controllers/test_search_controller.rb b/test/controllers/test_search_controller.rb new file mode 100644 index 000000000..0ede6f8c3 --- /dev/null +++ b/test/controllers/test_search_controller.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class TestSearchController < ActionController::TestCase + # test "the truth" do + # assert true + # end +end \ No newline at end of file From c42cc24c77bda506a4b4b2bbbf05a493b76ced8f Mon Sep 17 00:00:00 2001 From: jm-rives Date: Tue, 1 Nov 2016 12:55:39 -0700 Subject: [PATCH 04/37] ADD controllers for search, show, and list --- app/controllers/search_controller.rb | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 app/controllers/search_controller.rb diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb deleted file mode 100644 index 5d40a7f2a..000000000 --- a/app/controllers/search_controller.rb +++ /dev/null @@ -1,9 +0,0 @@ -# this serves as the controller for my landing page - -class Search_Controller < ActionController::Base - def index - - end - - -end \ No newline at end of file From 56278ad0fd34bcf78e7aecd81ec12d8dd1161208 Mon Sep 17 00:00:00 2001 From: jm-rives Date: Tue, 1 Nov 2016 13:39:01 -0700 Subject: [PATCH 05/37] ADD test helper method VCR configuration. --- Gemfile | 8 +++-- Gemfile.lock | 31 ++++++++++++++++---- test/controllers/test_search_controller.rb | 7 ----- test/test_helper.rb | 34 +++++++++++++++++++++- 4 files changed, 64 insertions(+), 16 deletions(-) delete mode 100644 test/controllers/test_search_controller.rb diff --git a/Gemfile b/Gemfile index 37326f601..7d776ffb7 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,5 @@ source 'https://rubygems.org' - # Required due to an incompatibility between TurboLinks and Foundation. gem 'jquery-turbolinks' @@ -49,8 +48,13 @@ group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem 'byebug' gem 'dotenv-rails' - gem 'better_errors' + gem 'minitest-reporters' + gem 'simplecov' + + # these must be in this order + gem 'minitest-vcr' + gem 'webmock' end group :development do diff --git a/Gemfile.lock b/Gemfile.lock index 43a2051bb..d616fc3b2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -36,6 +36,7 @@ GEM minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) + addressable (2.4.0) ansi (1.5.0) arel (6.0.3) awesome_print (1.7.0) @@ -43,15 +44,10 @@ GEM babel-transpiler (0.7.0) babel-source (>= 4.0, < 6) execjs (~> 2.0) - better_errors (2.1.1) - coderay (>= 1.0.0) - erubis (>= 2.6.6) - rack (>= 0.9.0) binding_of_caller (0.7.2) debug_inspector (>= 0.0.1) builder (3.2.2) byebug (9.0.6) - coderay (1.1.1) coffee-rails (4.1.1) coffee-script (>= 2.2.0) railties (>= 4.0.0, < 5.1.x) @@ -60,7 +56,10 @@ GEM execjs coffee-script-source (1.10.0) concurrent-ruby (1.0.2) + crack (0.4.3) + safe_yaml (~> 1.0.0) debug_inspector (0.0.2) + docile (1.1.5) dotenv (2.1.1) dotenv-rails (2.1.1) dotenv (= 2.1.1) @@ -73,6 +72,7 @@ GEM sprockets-es6 (>= 0.9.0) globalid (0.3.7) activesupport (>= 4.1.0) + hashdiff (0.3.0) httparty (0.14.0) multi_xml (>= 0.5.2) i18n (0.7.0) @@ -95,12 +95,18 @@ GEM mime-types-data (~> 3.2015) mime-types-data (3.2016.0521) mini_portile2 (2.1.0) + minispec-metadata (2.0.0) + minitest minitest (5.9.1) minitest-reporters (1.1.12) ansi builder minitest (>= 5.0) ruby-progressbar + minitest-vcr (1.4.0) + minispec-metadata (~> 2.0) + minitest (>= 4.7.5) + vcr (>= 2.9) multi_json (1.12.1) multi_xml (0.5.5) nokogiri (1.6.8.1) @@ -136,6 +142,7 @@ GEM rdoc (4.2.2) json (~> 1.4) ruby-progressbar (1.8.1) + safe_yaml (1.0.4) sass (3.4.22) sass-rails (5.0.6) railties (>= 4.0.0, < 6) @@ -146,6 +153,11 @@ GEM sdoc (0.4.2) json (~> 1.7, >= 1.7.7) rdoc (~> 4.0) + simplecov (0.12.0) + docile (~> 1.1.0) + json (>= 1.8, < 3) + simplecov-html (~> 0.10.0) + simplecov-html (0.10.0) spring (2.0.0) activesupport (>= 4.2) sprockets (3.7.0) @@ -170,18 +182,22 @@ GEM thread_safe (~> 0.1) uglifier (3.0.3) execjs (>= 0.3.0, < 3) + vcr (3.0.3) web-console (2.3.0) activemodel (>= 4.0) binding_of_caller (>= 0.7.2) railties (>= 4.0) sprockets-rails (>= 2.0, < 4.0) + webmock (2.1.0) + addressable (>= 2.3.6) + crack (>= 0.3.2) + hashdiff PLATFORMS ruby DEPENDENCIES awesome_print - better_errors byebug coffee-rails (~> 4.1.0) dotenv-rails @@ -191,14 +207,17 @@ DEPENDENCIES jquery-rails jquery-turbolinks minitest-reporters + minitest-vcr rails (= 4.2.7) sass-rails (~> 5.0) sdoc (~> 0.4.0) + simplecov spring sqlite3 turbolinks uglifier (>= 1.3.0) web-console (~> 2.0) + webmock BUNDLED WITH 1.13.6 diff --git a/test/controllers/test_search_controller.rb b/test/controllers/test_search_controller.rb deleted file mode 100644 index 0ede6f8c3..000000000 --- a/test/controllers/test_search_controller.rb +++ /dev/null @@ -1,7 +0,0 @@ -require 'test_helper' - -class TestSearchController < ActionController::TestCase - # test "the truth" do - # assert true - # end -end \ No newline at end of file diff --git a/test/test_helper.rb b/test/test_helper.rb index 92e39b2d7..d04d9e95e 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,10 +1,42 @@ +require 'minitest/reporters' +Minitest::Reporters.use! + +# require 'simplecov' +# simplecov.start + ENV['RAILS_ENV'] ||= 'test' require File.expand_path('../../config/environment', __FILE__) + require 'rails/test_help' + +require 'vcr' +require 'webmock/minitest' + + + class ActiveSupport::TestCase # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order. fixtures :all - # Add more helper methods to be used by all tests here... + # helper method to keep api calls under limit(ish) + VCR.configure do |config| + config.cassette_library_dir = 'test/cassettes' # don't forget to delete these if you update your app, new ones will be recorded + config.hook_into :webmock + + config.default_cassette_options = {:record => :new_episodes, :match_requests_on => [:method, :uri, :body]} + end end + + + + + + + + + + + + + From 9ea1ef35c29d50742fd435d84272a5dfd0379580 Mon Sep 17 00:00:00 2001 From: jm-rives Date: Wed, 2 Nov 2016 15:19:58 -0700 Subject: [PATCH 06/37] ADD Gemfile.lock updated --- Gemfile.lock | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/Gemfile.lock b/Gemfile.lock index c1dccfc10..d07d4fa38 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -37,10 +37,20 @@ GEM thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) arel (6.0.3) + awesome_print (1.7.0) + babel-source (5.8.35) + babel-transpiler (0.7.0) + babel-source (>= 4.0, < 6) + execjs (~> 2.0) + better_errors (2.1.1) + coderay (>= 1.0.0) + erubis (>= 2.6.6) + rack (>= 0.9.0) binding_of_caller (0.7.2) debug_inspector (>= 0.0.1) builder (3.2.2) byebug (9.0.6) + coderay (1.1.1) coffee-rails (4.1.1) coffee-script (>= 2.2.0) railties (>= 4.0.0, < 5.1.x) @@ -50,10 +60,20 @@ GEM coffee-script-source (1.10.0) concurrent-ruby (1.0.2) debug_inspector (0.0.2) + dotenv (2.1.1) + dotenv-rails (2.1.1) + dotenv (= 2.1.1) + railties (>= 4.0, < 5.1) erubis (2.7.0) execjs (2.7.0) + foundation-rails (6.2.4.0) + railties (>= 3.1.0) + sass (>= 3.3.0, < 3.5) + sprockets-es6 (>= 0.9.0) globalid (0.3.7) activesupport (>= 4.1.0) + httparty (0.14.0) + multi_xml (>= 0.5.2) i18n (0.7.0) jbuilder (2.6.0) activesupport (>= 3.0.0, < 5.1) @@ -62,6 +82,9 @@ GEM rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) + jquery-turbolinks (2.1.0) + railties (>= 3.1.0) + turbolinks json (1.8.3) loofah (2.0.3) nokogiri (>= 1.5.9) @@ -73,6 +96,7 @@ GEM mini_portile2 (2.1.0) minitest (5.9.1) multi_json (1.12.1) + multi_xml (0.5.5) nokogiri (1.6.8.1) mini_portile2 (~> 2.1.0) rack (1.6.4) @@ -120,6 +144,10 @@ GEM sprockets (3.7.0) concurrent-ruby (~> 1.0) rack (> 1, < 3) + sprockets-es6 (0.9.2) + babel-source (>= 5.8.11) + babel-transpiler + sprockets (>= 3.0.0) sprockets-rails (3.2.0) actionpack (>= 4.0) activesupport (>= 4.0) @@ -145,10 +173,16 @@ PLATFORMS ruby DEPENDENCIES + awesome_print + better_errors byebug coffee-rails (~> 4.1.0) + dotenv-rails + foundation-rails + httparty jbuilder (~> 2.0) jquery-rails + jquery-turbolinks rails (= 4.2.7) sass-rails (~> 5.0) sdoc (~> 0.4.0) From b00d9dbe309aefb66e35e62d5e84e3d452f44bfc Mon Sep 17 00:00:00 2001 From: jm-rives Date: Wed, 2 Nov 2016 15:33:43 -0700 Subject: [PATCH 07/37] UPDATE gemfile --- Gemfile | 5 ++++- Gemfile.lock | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index f71aa7941..cd351ee85 100644 --- a/Gemfile +++ b/Gemfile @@ -41,7 +41,8 @@ gem 'sdoc', '~> 0.4.0', group: :doc # API GEMS gem 'httparty' - +gem 'minitest-vcr' +gem 'webmock' gem 'foundation-rails' @@ -50,6 +51,8 @@ group :development, :test do gem 'byebug' gem 'dotenv-rails' gem 'better_errors' + gem 'minitest-reporters' + gem 'simplecov' end group :development do diff --git a/Gemfile.lock b/Gemfile.lock index d07d4fa38..98faf062e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -36,6 +36,8 @@ GEM minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) + addressable (2.4.0) + ansi (1.5.0) arel (6.0.3) awesome_print (1.7.0) babel-source (5.8.35) @@ -59,7 +61,10 @@ GEM execjs coffee-script-source (1.10.0) concurrent-ruby (1.0.2) + crack (0.4.3) + safe_yaml (~> 1.0.0) debug_inspector (0.0.2) + docile (1.1.5) dotenv (2.1.1) dotenv-rails (2.1.1) dotenv (= 2.1.1) @@ -72,6 +77,7 @@ GEM sprockets-es6 (>= 0.9.0) globalid (0.3.7) activesupport (>= 4.1.0) + hashdiff (0.3.0) httparty (0.14.0) multi_xml (>= 0.5.2) i18n (0.7.0) @@ -94,7 +100,18 @@ GEM mime-types-data (~> 3.2015) mime-types-data (3.2016.0521) mini_portile2 (2.1.0) + minispec-metadata (2.0.0) + minitest minitest (5.9.1) + minitest-reporters (1.1.12) + ansi + builder + minitest (>= 5.0) + ruby-progressbar + minitest-vcr (1.4.0) + minispec-metadata (~> 2.0) + minitest (>= 4.7.5) + vcr (>= 2.9) multi_json (1.12.1) multi_xml (0.5.5) nokogiri (1.6.8.1) @@ -129,6 +146,8 @@ GEM rake (11.3.0) rdoc (4.2.2) json (~> 1.4) + ruby-progressbar (1.8.1) + safe_yaml (1.0.4) sass (3.4.22) sass-rails (5.0.6) railties (>= 4.0.0, < 6) @@ -139,6 +158,11 @@ GEM sdoc (0.4.2) json (~> 1.7, >= 1.7.7) rdoc (~> 4.0) + simplecov (0.12.0) + docile (~> 1.1.0) + json (>= 1.8, < 3) + simplecov-html (~> 0.10.0) + simplecov-html (0.10.0) spring (2.0.0) activesupport (>= 4.2) sprockets (3.7.0) @@ -163,11 +187,16 @@ GEM thread_safe (~> 0.1) uglifier (3.0.3) execjs (>= 0.3.0, < 3) + vcr (3.0.3) web-console (2.3.0) activemodel (>= 4.0) binding_of_caller (>= 0.7.2) railties (>= 4.0) sprockets-rails (>= 2.0, < 4.0) + webmock (2.1.0) + addressable (>= 2.3.6) + crack (>= 0.3.2) + hashdiff PLATFORMS ruby @@ -183,14 +212,18 @@ DEPENDENCIES jbuilder (~> 2.0) jquery-rails jquery-turbolinks + minitest-reporters + minitest-vcr rails (= 4.2.7) sass-rails (~> 5.0) sdoc (~> 0.4.0) + simplecov spring sqlite3 turbolinks uglifier (>= 1.3.0) web-console (~> 2.0) + webmock BUNDLED WITH 1.13.6 From 9e112e06090df4c11c4d8851c21d1bbe711967a3 Mon Sep 17 00:00:00 2001 From: jm-rives Date: Thu, 3 Nov 2016 13:10:04 -0700 Subject: [PATCH 08/37] ADD Search controller --- app/controllers/application_controller.rb | 2 +- config/application.rb | 10 +--------- config/environments/development.rb | 1 + config/routes.rb | 10 ++++++++++ test/test_helper.rb | 2 ++ 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index d83690e1b..c6423961e 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,5 +1,5 @@ class ApplicationController < ActionController::Base - # Prevent CSRF attacks by raising an exception. + # Prevent CSRF attacks by raising an exce ption. # For APIs, you may want to use :null_session instead. protect_from_forgery with: :exception end diff --git a/config/application.rb b/config/application.rb index 20568697a..89ce4ebe7 100644 --- a/config/application.rb +++ b/config/application.rb @@ -1,3 +1,4 @@ + require File.expand_path('../boot', __FILE__) require 'rails/all' @@ -12,15 +13,6 @@ class Application < Rails::Application # Application configuration should go into files in config/initializers # -- all .rb files in that directory are automatically loaded. - # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. - # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. - # config.time_zone = 'Central Time (US & Canada)' - - # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. - # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] - # config.i18n.default_locale = :de - - # Do not swallow errors in after_commit/after_rollback callbacks. config.active_record.raise_in_transactional_callbacks = true end end diff --git a/config/environments/development.rb b/config/environments/development.rb index b55e2144b..faf72d468 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -1,6 +1,7 @@ Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. + # In the development environment your application's code is reloaded on # every request. This slows down response time but is perfect for development # since you don't have to restart the web server when you make code changes. diff --git a/config/routes.rb b/config/routes.rb index 3f66539d5..88d584ce5 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,4 +1,14 @@ Rails.application.routes.draw do + get 'search/new' + + get 'search/create' + + get 'search/update' + + get 'search/destroy' + + get 'search/show' + # The priority is based upon order of creation: first created -> highest priority. # See how all your routes lay out with "rake routes". diff --git a/test/test_helper.rb b/test/test_helper.rb index 92e39b2d7..af24b197a 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,6 +1,8 @@ ENV['RAILS_ENV'] ||= 'test' require File.expand_path('../../config/environment', __FILE__) require 'rails/test_help' +require 'vcr' +require 'webmock/minitest' class ActiveSupport::TestCase # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order. From 3682bdf417c246672fe25a495e714b0fc0ca9c5c Mon Sep 17 00:00:00 2001 From: jm-rives Date: Thu, 3 Nov 2016 13:11:39 -0700 Subject: [PATCH 09/37] ADD Search controller : --- app/assets/javascripts/search.coffee | 3 +++ app/assets/stylesheets/search.scss | 3 +++ app/controllers/search_controller.rb | 16 ++++++++++++ app/helpers/search_helper.rb | 2 ++ app/views/search/create.html.erb | 2 ++ app/views/search/destroy.html.erb | 2 ++ app/views/search/new.html.erb | 2 ++ app/views/search/show.html.erb | 2 ++ app/views/search/update.html.erb | 2 ++ test/controllers/search_controller_test.rb | 29 ++++++++++++++++++++++ 10 files changed, 63 insertions(+) create mode 100644 app/assets/javascripts/search.coffee create mode 100644 app/assets/stylesheets/search.scss create mode 100644 app/controllers/search_controller.rb create mode 100644 app/helpers/search_helper.rb create mode 100644 app/views/search/create.html.erb create mode 100644 app/views/search/destroy.html.erb create mode 100644 app/views/search/new.html.erb create mode 100644 app/views/search/show.html.erb create mode 100644 app/views/search/update.html.erb create mode 100644 test/controllers/search_controller_test.rb diff --git a/app/assets/javascripts/search.coffee b/app/assets/javascripts/search.coffee new file mode 100644 index 000000000..24f83d18b --- /dev/null +++ b/app/assets/javascripts/search.coffee @@ -0,0 +1,3 @@ +# Place all the behaviors and hooks related to the matching controller here. +# All this logic will automatically be available in application.js. +# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/stylesheets/search.scss b/app/assets/stylesheets/search.scss new file mode 100644 index 000000000..c44f0d7e9 --- /dev/null +++ b/app/assets/stylesheets/search.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the Search controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb new file mode 100644 index 000000000..6449807c2 --- /dev/null +++ b/app/controllers/search_controller.rb @@ -0,0 +1,16 @@ +class SearchController < ApplicationController + def new + end + + def create + end + + def update + end + + def destroy + end + + def show + end +end diff --git a/app/helpers/search_helper.rb b/app/helpers/search_helper.rb new file mode 100644 index 000000000..b3ce20acb --- /dev/null +++ b/app/helpers/search_helper.rb @@ -0,0 +1,2 @@ +module SearchHelper +end diff --git a/app/views/search/create.html.erb b/app/views/search/create.html.erb new file mode 100644 index 000000000..321d4be2b --- /dev/null +++ b/app/views/search/create.html.erb @@ -0,0 +1,2 @@ +

Search#create

+

Find me in app/views/search/create.html.erb

diff --git a/app/views/search/destroy.html.erb b/app/views/search/destroy.html.erb new file mode 100644 index 000000000..68a8829d6 --- /dev/null +++ b/app/views/search/destroy.html.erb @@ -0,0 +1,2 @@ +

Search#destroy

+

Find me in app/views/search/destroy.html.erb

diff --git a/app/views/search/new.html.erb b/app/views/search/new.html.erb new file mode 100644 index 000000000..5d73ff675 --- /dev/null +++ b/app/views/search/new.html.erb @@ -0,0 +1,2 @@ +

Search#new

+

Find me in app/views/search/new.html.erb

diff --git a/app/views/search/show.html.erb b/app/views/search/show.html.erb new file mode 100644 index 000000000..ee5257b08 --- /dev/null +++ b/app/views/search/show.html.erb @@ -0,0 +1,2 @@ +

Search#show

+

Find me in app/views/search/show.html.erb

diff --git a/app/views/search/update.html.erb b/app/views/search/update.html.erb new file mode 100644 index 000000000..6269333a3 --- /dev/null +++ b/app/views/search/update.html.erb @@ -0,0 +1,2 @@ +

Search#update

+

Find me in app/views/search/update.html.erb

diff --git a/test/controllers/search_controller_test.rb b/test/controllers/search_controller_test.rb new file mode 100644 index 000000000..449bd4e66 --- /dev/null +++ b/test/controllers/search_controller_test.rb @@ -0,0 +1,29 @@ +require 'test_helper' + +class SearchControllerTest < ActionController::TestCase + test "should get new" do + get :new + assert_response :success + end + + test "should get create" do + get :create + assert_response :success + end + + test "should get update" do + get :update + assert_response :success + end + + test "should get destroy" do + get :destroy + assert_response :success + end + + test "should get show" do + get :show + assert_response :success + end + +end From 20e3ca91c61e1898c5179ea537e8d7919e75a1ed Mon Sep 17 00:00:00 2001 From: jm-rives Date: Thu, 3 Nov 2016 13:13:47 -0700 Subject: [PATCH 10/37] ADD Results controller --- app/assets/javascripts/results.coffee | 3 ++ app/assets/stylesheets/results.scss | 3 ++ app/controllers/results_controller.rb | 22 ++++++++++++ app/helpers/results_helper.rb | 2 ++ app/views/results/create.html.erb | 2 ++ app/views/results/destroy.html.erb | 2 ++ app/views/results/edit.html.erb | 2 ++ app/views/results/index.html.erb | 2 ++ app/views/results/new.html.erb | 2 ++ app/views/results/show.html.erb | 2 ++ app/views/results/update.html.erb | 2 ++ config/routes.rb | 14 ++++++++ test/controllers/results_controller_test.rb | 39 +++++++++++++++++++++ 13 files changed, 97 insertions(+) create mode 100644 app/assets/javascripts/results.coffee create mode 100644 app/assets/stylesheets/results.scss create mode 100644 app/controllers/results_controller.rb create mode 100644 app/helpers/results_helper.rb create mode 100644 app/views/results/create.html.erb create mode 100644 app/views/results/destroy.html.erb create mode 100644 app/views/results/edit.html.erb create mode 100644 app/views/results/index.html.erb create mode 100644 app/views/results/new.html.erb create mode 100644 app/views/results/show.html.erb create mode 100644 app/views/results/update.html.erb create mode 100644 test/controllers/results_controller_test.rb diff --git a/app/assets/javascripts/results.coffee b/app/assets/javascripts/results.coffee new file mode 100644 index 000000000..24f83d18b --- /dev/null +++ b/app/assets/javascripts/results.coffee @@ -0,0 +1,3 @@ +# Place all the behaviors and hooks related to the matching controller here. +# All this logic will automatically be available in application.js. +# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/stylesheets/results.scss b/app/assets/stylesheets/results.scss new file mode 100644 index 000000000..df1dfd628 --- /dev/null +++ b/app/assets/stylesheets/results.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the Results controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/results_controller.rb b/app/controllers/results_controller.rb new file mode 100644 index 000000000..875d83070 --- /dev/null +++ b/app/controllers/results_controller.rb @@ -0,0 +1,22 @@ +class ResultsController < ApplicationController + def index + end + + def new + end + + def create + end + + def show + end + + def edit + end + + def update + end + + def destroy + end +end diff --git a/app/helpers/results_helper.rb b/app/helpers/results_helper.rb new file mode 100644 index 000000000..c3fd7a5d5 --- /dev/null +++ b/app/helpers/results_helper.rb @@ -0,0 +1,2 @@ +module ResultsHelper +end diff --git a/app/views/results/create.html.erb b/app/views/results/create.html.erb new file mode 100644 index 000000000..1e823d6fc --- /dev/null +++ b/app/views/results/create.html.erb @@ -0,0 +1,2 @@ +

Results#create

+

Find me in app/views/results/create.html.erb

diff --git a/app/views/results/destroy.html.erb b/app/views/results/destroy.html.erb new file mode 100644 index 000000000..c988514f6 --- /dev/null +++ b/app/views/results/destroy.html.erb @@ -0,0 +1,2 @@ +

Results#destroy

+

Find me in app/views/results/destroy.html.erb

diff --git a/app/views/results/edit.html.erb b/app/views/results/edit.html.erb new file mode 100644 index 000000000..bbe79b6be --- /dev/null +++ b/app/views/results/edit.html.erb @@ -0,0 +1,2 @@ +

Results#edit

+

Find me in app/views/results/edit.html.erb

diff --git a/app/views/results/index.html.erb b/app/views/results/index.html.erb new file mode 100644 index 000000000..ba83ee918 --- /dev/null +++ b/app/views/results/index.html.erb @@ -0,0 +1,2 @@ +

Results#index

+

Find me in app/views/results/index.html.erb

diff --git a/app/views/results/new.html.erb b/app/views/results/new.html.erb new file mode 100644 index 000000000..651eda639 --- /dev/null +++ b/app/views/results/new.html.erb @@ -0,0 +1,2 @@ +

Results#new

+

Find me in app/views/results/new.html.erb

diff --git a/app/views/results/show.html.erb b/app/views/results/show.html.erb new file mode 100644 index 000000000..469d6ef1b --- /dev/null +++ b/app/views/results/show.html.erb @@ -0,0 +1,2 @@ +

Results#show

+

Find me in app/views/results/show.html.erb

diff --git a/app/views/results/update.html.erb b/app/views/results/update.html.erb new file mode 100644 index 000000000..b6cdb3070 --- /dev/null +++ b/app/views/results/update.html.erb @@ -0,0 +1,2 @@ +

Results#update

+

Find me in app/views/results/update.html.erb

diff --git a/config/routes.rb b/config/routes.rb index 88d584ce5..a1ecdedc9 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,4 +1,18 @@ Rails.application.routes.draw do + get 'results/index' + + get 'results/new' + + get 'results/create' + + get 'results/show' + + get 'results/edit' + + get 'results/update' + + get 'results/destroy' + get 'search/new' get 'search/create' diff --git a/test/controllers/results_controller_test.rb b/test/controllers/results_controller_test.rb new file mode 100644 index 000000000..c87c711bd --- /dev/null +++ b/test/controllers/results_controller_test.rb @@ -0,0 +1,39 @@ +require 'test_helper' + +class ResultsControllerTest < ActionController::TestCase + test "should get index" do + get :index + assert_response :success + end + + test "should get new" do + get :new + assert_response :success + end + + test "should get create" do + get :create + assert_response :success + end + + test "should get show" do + get :show + assert_response :success + end + + test "should get edit" do + get :edit + assert_response :success + end + + test "should get update" do + get :update + assert_response :success + end + + test "should get destroy" do + get :destroy + assert_response :success + end + +end From 424d14462df8625901fd5d1d020937782367d75f Mon Sep 17 00:00:00 2001 From: jm-rives Date: Thu, 3 Nov 2016 13:26:39 -0700 Subject: [PATCH 11/37] ADD Recipe controller --- app/assets/javascripts/recipe.coffee | 3 +++ app/assets/stylesheets/recipe.scss | 3 +++ app/controllers/recipe_controller.rb | 13 ++++++++++++ app/helpers/recipe_helper.rb | 2 ++ app/views/recipe/destroy.html.erb | 2 ++ app/views/recipe/new.html.erb | 2 ++ app/views/recipe/show.html.erb | 2 ++ app/views/recipe/update.html.erb | 2 ++ config/routes.rb | 8 ++++++++ test/controllers/recipe_controller_test.rb | 24 ++++++++++++++++++++++ 10 files changed, 61 insertions(+) create mode 100644 app/assets/javascripts/recipe.coffee create mode 100644 app/assets/stylesheets/recipe.scss create mode 100644 app/controllers/recipe_controller.rb create mode 100644 app/helpers/recipe_helper.rb create mode 100644 app/views/recipe/destroy.html.erb create mode 100644 app/views/recipe/new.html.erb create mode 100644 app/views/recipe/show.html.erb create mode 100644 app/views/recipe/update.html.erb create mode 100644 test/controllers/recipe_controller_test.rb diff --git a/app/assets/javascripts/recipe.coffee b/app/assets/javascripts/recipe.coffee new file mode 100644 index 000000000..24f83d18b --- /dev/null +++ b/app/assets/javascripts/recipe.coffee @@ -0,0 +1,3 @@ +# Place all the behaviors and hooks related to the matching controller here. +# All this logic will automatically be available in application.js. +# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/stylesheets/recipe.scss b/app/assets/stylesheets/recipe.scss new file mode 100644 index 000000000..e7c0bf6d0 --- /dev/null +++ b/app/assets/stylesheets/recipe.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the Recipe controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/recipe_controller.rb b/app/controllers/recipe_controller.rb new file mode 100644 index 000000000..716773c29 --- /dev/null +++ b/app/controllers/recipe_controller.rb @@ -0,0 +1,13 @@ +class RecipeController < ApplicationController + def new + end + + def update + end + + def show + end + + def destroy + end +end diff --git a/app/helpers/recipe_helper.rb b/app/helpers/recipe_helper.rb new file mode 100644 index 000000000..57b4c1e99 --- /dev/null +++ b/app/helpers/recipe_helper.rb @@ -0,0 +1,2 @@ +module RecipeHelper +end diff --git a/app/views/recipe/destroy.html.erb b/app/views/recipe/destroy.html.erb new file mode 100644 index 000000000..b80863b16 --- /dev/null +++ b/app/views/recipe/destroy.html.erb @@ -0,0 +1,2 @@ +

Recipe#destroy

+

Find me in app/views/recipe/destroy.html.erb

diff --git a/app/views/recipe/new.html.erb b/app/views/recipe/new.html.erb new file mode 100644 index 000000000..1843e6614 --- /dev/null +++ b/app/views/recipe/new.html.erb @@ -0,0 +1,2 @@ +

Recipe#new

+

Find me in app/views/recipe/new.html.erb

diff --git a/app/views/recipe/show.html.erb b/app/views/recipe/show.html.erb new file mode 100644 index 000000000..2214e27b8 --- /dev/null +++ b/app/views/recipe/show.html.erb @@ -0,0 +1,2 @@ +

Recipe#show

+

Find me in app/views/recipe/show.html.erb

diff --git a/app/views/recipe/update.html.erb b/app/views/recipe/update.html.erb new file mode 100644 index 000000000..dfa8e2663 --- /dev/null +++ b/app/views/recipe/update.html.erb @@ -0,0 +1,2 @@ +

Recipe#update

+

Find me in app/views/recipe/update.html.erb

diff --git a/config/routes.rb b/config/routes.rb index a1ecdedc9..fb6d8cf2a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,4 +1,12 @@ Rails.application.routes.draw do + get 'recipe/new' + + get 'recipe/update' + + get 'recipe/show' + + get 'recipe/destroy' + get 'results/index' get 'results/new' diff --git a/test/controllers/recipe_controller_test.rb b/test/controllers/recipe_controller_test.rb new file mode 100644 index 000000000..eb08718fc --- /dev/null +++ b/test/controllers/recipe_controller_test.rb @@ -0,0 +1,24 @@ +require 'test_helper' + +class RecipeControllerTest < ActionController::TestCase + test "should get new" do + get :new + assert_response :success + end + + test "should get update" do + get :update + assert_response :success + end + + test "should get show" do + get :show + assert_response :success + end + + test "should get destroy" do + get :destroy + assert_response :success + end + +end From 19e366ddcdcb4b03d478941398f23d020fc0a1f5 Mon Sep 17 00:00:00 2001 From: jm-rives Date: Thu, 3 Nov 2016 14:59:17 -0700 Subject: [PATCH 12/37] ADD wrapper for api_muncher --- app/views/search/create.html.erb | 3 +- app/views/search/new.html.erb | 6 ++- config/application.rb | 1 + config/environments/development.rb | 3 +- config/routes.rb | 60 +++--------------------------- 5 files changed, 14 insertions(+), 59 deletions(-) diff --git a/app/views/search/create.html.erb b/app/views/search/create.html.erb index 321d4be2b..8b1378917 100644 --- a/app/views/search/create.html.erb +++ b/app/views/search/create.html.erb @@ -1,2 +1 @@ -

Search#create

-

Find me in app/views/search/create.html.erb

+ diff --git a/app/views/search/new.html.erb b/app/views/search/new.html.erb index 5d73ff675..d5e503fe9 100644 --- a/app/views/search/new.html.erb +++ b/app/views/search/new.html.erb @@ -1,2 +1,4 @@ -

Search#new

-

Find me in app/views/search/new.html.erb

+

Search for Recipes here!

+ + +

Powered by Edamam

\ No newline at end of file diff --git a/config/application.rb b/config/application.rb index 89ce4ebe7..eaf518b1e 100644 --- a/config/application.rb +++ b/config/application.rb @@ -9,6 +9,7 @@ module ApiMuncher class Application < Rails::Application + # Settings in config/environments/* take precedence over those specified here. # Application configuration should go into files in config/initializers # -- all .rb files in that directory are automatically loaded. diff --git a/config/environments/development.rb b/config/environments/development.rb index faf72d468..c8135fd55 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -1,7 +1,8 @@ Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. - + + config.debug_exception_response_format = :default # In the development environment your application's code is reloaded on # every request. This slows down response time but is perfect for development # since you don't have to restart the web server when you make code changes. diff --git a/config/routes.rb b/config/routes.rb index fb6d8cf2a..330bff478 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,4 +1,7 @@ Rails.application.routes.draw do + root to: 'search#new' + + # Recipe routes get 'recipe/new' get 'recipe/update' @@ -7,6 +10,7 @@ get 'recipe/destroy' + # Results routes get 'results/index' get 'results/new' @@ -21,6 +25,7 @@ get 'results/destroy' + # Search routes get 'search/new' get 'search/create' @@ -31,58 +36,5 @@ get 'search/show' - # The priority is based upon order of creation: first created -> highest priority. - # See how all your routes lay out with "rake routes". - - # You can have the root of your site routed with "root" - # root 'welcome#index' - - # Example of regular route: - # get 'products/:id' => 'catalog#view' - - # Example of named route that can be invoked with purchase_url(id: product.id) - # get 'products/:id/purchase' => 'catalog#purchase', as: :purchase - - # Example resource route (maps HTTP verbs to controller actions automatically): - # resources :products - - # Example resource route with options: - # resources :products do - # member do - # get 'short' - # post 'toggle' - # end - # - # collection do - # get 'sold' - # end - # end - - # Example resource route with sub-resources: - # resources :products do - # resources :comments, :sales - # resource :seller - # end - - # Example resource route with more complex sub-resources: - # resources :products do - # resources :comments - # resources :sales do - # get 'recent', on: :collection - # end - # end - - # Example resource route with concerns: - # concern :toggleable do - # post 'toggle' - # end - # resources :posts, concerns: :toggleable - # resources :photos, concerns: :toggleable - - # Example resource route within a namespace: - # namespace :admin do - # # Directs /admin/products/* to Admin::ProductsController - # # (app/controllers/admin/products_controller.rb) - # resources :products - # end + end From 7cc633141251861540158d93112a7250749a3fec Mon Sep 17 00:00:00 2001 From: jm-rives Date: Thu, 3 Nov 2016 15:02:56 -0700 Subject: [PATCH 13/37] ADD empty wrapper class --- lib/api_muncher_wrapper.rb | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 lib/api_muncher_wrapper.rb diff --git a/lib/api_muncher_wrapper.rb b/lib/api_muncher_wrapper.rb new file mode 100644 index 000000000..35111b1a6 --- /dev/null +++ b/lib/api_muncher_wrapper.rb @@ -0,0 +1,5 @@ +require 'httparty' + +class ApiMuncherWrapper + +end \ No newline at end of file From e352e823189ed0291ffd576f69252cb4e13debe9 Mon Sep 17 00:00:00 2001 From: jm-rives Date: Thu, 3 Nov 2016 15:10:05 -0700 Subject: [PATCH 14/37] UPDATE gemfile/ gemlock --- Gemfile | 5 ++--- Gemfile.lock | 4 ---- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/Gemfile b/Gemfile index d56e5801b..cd17c9a4a 100644 --- a/Gemfile +++ b/Gemfile @@ -49,11 +49,10 @@ group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem 'byebug' gem 'dotenv-rails' -<<<<<<< HEAD gem 'better_errors' gem 'minitest-reporters' gem 'simplecov' -======= + gem 'minitest-reporters' gem 'simplecov' @@ -61,7 +60,7 @@ group :development, :test do # these must be in this order gem 'minitest-vcr' gem 'webmock' ->>>>>>> 56278ad0fd34bcf78e7aecd81ec12d8dd1161208 + end group :development do diff --git a/Gemfile.lock b/Gemfile.lock index 20e3996de..98faf062e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -44,12 +44,10 @@ GEM babel-transpiler (0.7.0) babel-source (>= 4.0, < 6) execjs (~> 2.0) - better_errors (2.1.1) coderay (>= 1.0.0) erubis (>= 2.6.6) rack (>= 0.9.0) - binding_of_caller (0.7.2) debug_inspector (>= 0.0.1) builder (3.2.2) @@ -205,9 +203,7 @@ PLATFORMS DEPENDENCIES awesome_print - better_errors - byebug coffee-rails (~> 4.1.0) dotenv-rails From 9a50203bfc1ff64523d401cc76445b5d174566a6 Mon Sep 17 00:00:00 2001 From: jm-rives Date: Thu, 3 Nov 2016 15:44:10 -0700 Subject: [PATCH 15/37] ADD attr_reader to api muncher --- lib/ApiMuncherWrapper.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 lib/ApiMuncherWrapper.rb diff --git a/lib/ApiMuncherWrapper.rb b/lib/ApiMuncherWrapper.rb new file mode 100644 index 000000000..e177cd59a --- /dev/null +++ b/lib/ApiMuncherWrapper.rb @@ -0,0 +1,10 @@ +require 'httparty' + +class ApiMuncherWrapper + BASE_URL = "https://api.edamam.com/search" + APP_ID = 'APP_ID' + APP_KEY = 'APP_KEY' + + attr_reader :recipe, :query, :url, :image, :returns, :r + +end \ No newline at end of file From 05e22e75ba4a6c604532115266bdbdcfc498ca07 Mon Sep 17 00:00:00 2001 From: jm-rives Date: Thu, 3 Nov 2016 15:46:25 -0700 Subject: [PATCH 16/37] ADD empty initialize method --- lib/ApiMuncherWrapper.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/ApiMuncherWrapper.rb b/lib/ApiMuncherWrapper.rb index e177cd59a..08466fcc6 100644 --- a/lib/ApiMuncherWrapper.rb +++ b/lib/ApiMuncherWrapper.rb @@ -5,6 +5,9 @@ class ApiMuncherWrapper APP_ID = 'APP_ID' APP_KEY = 'APP_KEY' - attr_reader :recipe, :query, :url, :image, :returns, :r - + # from Edamam q = query, r = return + attr_reader :recipe, :q, :url, :image, :returns, :r + def initialize(recipe, q, url, image, returns, r) + + end end \ No newline at end of file From 821b582c16fad653deec283e0a3ce28a934ed2df Mon Sep 17 00:00:00 2001 From: jm-rives Date: Thu, 3 Nov 2016 16:46:23 -0700 Subject: [PATCH 17/37] ADD partial wrapper and search view --- app/views/search/new.html.erb | 4 ++++ lib/ApiMuncherWrapper.rb | 10 +++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/views/search/new.html.erb b/app/views/search/new.html.erb index d5e503fe9..1c2749ec3 100644 --- a/app/views/search/new.html.erb +++ b/app/views/search/new.html.erb @@ -1,4 +1,8 @@

Search for Recipes here!

+<%= form_tag(recipe_new_path, :method => 'get', uri: "search-form") do %> + <%= text_field_tag :search, params[:q], placeholder: "Enter your crave!" %> + <%= submit_tag "Search", :name => nil %> +<% end %>

Powered by Edamam

\ No newline at end of file diff --git a/lib/ApiMuncherWrapper.rb b/lib/ApiMuncherWrapper.rb index 08466fcc6..0622e197f 100644 --- a/lib/ApiMuncherWrapper.rb +++ b/lib/ApiMuncherWrapper.rb @@ -4,10 +4,14 @@ class ApiMuncherWrapper BASE_URL = "https://api.edamam.com/search" APP_ID = 'APP_ID' APP_KEY = 'APP_KEY' - - # from Edamam q = query, r = return + + # https://developer.edamam.com/edamam-docs-recipe-api + # from Edamam q = query text, r = return of recipe based on it's id attr_reader :recipe, :q, :url, :image, :returns, :r def initialize(recipe, q, url, image, returns, r) - + @recipe = recipe + @q = q + @url = url + @image = image end end \ No newline at end of file From 83234c721c77886633d64a01cbbbee638e04eeee Mon Sep 17 00:00:00 2001 From: jm-rives Date: Sat, 5 Nov 2016 14:56:21 -0700 Subject: [PATCH 18/37] ADD config autoload path, FIX Error in wrapper. --- app/views/search/new.html.erb | 1 + config/application.rb | 1 + lib/ApiMuncherWrapper.rb | 5 +++-- lib/api_muncher_wrapper.rb | 5 ----- 4 files changed, 5 insertions(+), 7 deletions(-) delete mode 100644 lib/api_muncher_wrapper.rb diff --git a/app/views/search/new.html.erb b/app/views/search/new.html.erb index 1c2749ec3..9d6a546b6 100644 --- a/app/views/search/new.html.erb +++ b/app/views/search/new.html.erb @@ -1,3 +1,4 @@ +

Search for Recipes here!

<%= form_tag(recipe_new_path, :method => 'get', uri: "search-form") do %> diff --git a/config/application.rb b/config/application.rb index eaf518b1e..316298b0a 100644 --- a/config/application.rb +++ b/config/application.rb @@ -15,5 +15,6 @@ class Application < Rails::Application # -- all .rb files in that directory are automatically loaded. config.active_record.raise_in_transactional_callbacks = true + config.autoload_paths << Rails.root.join('lib') end end diff --git a/lib/ApiMuncherWrapper.rb b/lib/ApiMuncherWrapper.rb index 0622e197f..81278872f 100644 --- a/lib/ApiMuncherWrapper.rb +++ b/lib/ApiMuncherWrapper.rb @@ -2,8 +2,9 @@ class ApiMuncherWrapper BASE_URL = "https://api.edamam.com/search" - APP_ID = 'APP_ID' - APP_KEY = 'APP_KEY' + # should this be listed as Token/ id instead/ + APP_ID = ENV['APP_ID'] + APP_KEY = ENV['APP_KEY'] # https://developer.edamam.com/edamam-docs-recipe-api # from Edamam q = query text, r = return of recipe based on it's id diff --git a/lib/api_muncher_wrapper.rb b/lib/api_muncher_wrapper.rb deleted file mode 100644 index 35111b1a6..000000000 --- a/lib/api_muncher_wrapper.rb +++ /dev/null @@ -1,5 +0,0 @@ -require 'httparty' - -class ApiMuncherWrapper - -end \ No newline at end of file From 66d8d51d9ad2074109c441c3d036b1d222e15755 Mon Sep 17 00:00:00 2001 From: jm-rives Date: Sat, 5 Nov 2016 15:06:59 -0700 Subject: [PATCH 19/37] UPDATED routes --- config/routes.rb | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/config/routes.rb b/config/routes.rb index 330bff478..c794008a6 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,14 +1,16 @@ Rails.application.routes.draw do root to: 'search#new' + + # Search routes + get 'search/show' - # Recipe routes - get 'recipe/new' + get 'search/new' - get 'recipe/update' + get 'search/create' - get 'recipe/show' + get 'search/update' - get 'recipe/destroy' + get 'search/destroy' # Results routes get 'results/index' @@ -25,16 +27,13 @@ get 'results/destroy' - # Search routes - get 'search/new' - - get 'search/create' + # Recipe routes + get 'recipe/new' - get 'search/update' + get 'recipe/update' - get 'search/destroy' + get 'recipe/show' - get 'search/show' + get 'recipe/destroy' - end From 8155bd0d6c5842ad8639201db4cbd30f67a8eadb Mon Sep 17 00:00:00 2001 From: jm-rives Date: Sat, 5 Nov 2016 15:42:02 -0700 Subject: [PATCH 20/37] ADD index view --- app/controllers/results_controller.rb | 10 ++++++++++ app/controllers/search_controller.rb | 5 +++++ app/mailers/.keep | 0 app/views/search/new.html.erb | 2 +- config/routes.rb | 6 ++++++ 5 files changed, 22 insertions(+), 1 deletion(-) delete mode 100644 app/mailers/.keep diff --git a/app/controllers/results_controller.rb b/app/controllers/results_controller.rb index 875d83070..36480166a 100644 --- a/app/controllers/results_controller.rb +++ b/app/controllers/results_controller.rb @@ -1,4 +1,14 @@ class ResultsController < ApplicationController + + # https://developer.edamam.com/edamam-docs-recipe-api + # from Edamam q = query text, r = return of recipe based on it's id + attr_reader :q, :uri + + # def initialize(q, uri) + # # @q = q + # # @uri = uri + # end + def index end diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index 6449807c2..7109ddfa6 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -1,4 +1,9 @@ class SearchController < ApplicationController + + def index + + end + def new end diff --git a/app/mailers/.keep b/app/mailers/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app/views/search/new.html.erb b/app/views/search/new.html.erb index 9d6a546b6..2364405c5 100644 --- a/app/views/search/new.html.erb +++ b/app/views/search/new.html.erb @@ -1,7 +1,7 @@

Search for Recipes here!

-<%= form_tag(recipe_new_path, :method => 'get', uri: "search-form") do %> +<%= form_tag(search_index_path, :method => 'get', uri: "search-form") do %> <%= text_field_tag :search, params[:q], placeholder: "Enter your crave!" %> <%= submit_tag "Search", :name => nil %> diff --git a/config/routes.rb b/config/routes.rb index c794008a6..eadbb9ecd 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -2,8 +2,14 @@ root to: 'search#new' # Search routes + + # should return the list of search results + get 'search/index' + + # should "show" a selected recipe from the list of search results' get 'search/show' + #for a new search get 'search/new' get 'search/create' From 94e485b7c8feadd3585b4cf04e630346b3a22d57 Mon Sep 17 00:00:00 2001 From: jm-rives Date: Sat, 5 Nov 2016 17:32:11 -0700 Subject: [PATCH 21/37] ADD working index view, updates to search controller and Api Muncher Wrapper. --- app/controllers/search_controller.rb | 5 ++- app/views/search/index.html.erb | 6 ++++ lib/ApiMuncherWrapper.rb | 51 ++++++++++++++++++++++------ 3 files changed, 51 insertions(+), 11 deletions(-) create mode 100644 app/views/search/index.html.erb diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index 7109ddfa6..0a5218160 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -1,6 +1,9 @@ +require "#{Rails.root}/lib/ApiMuncherWrapper.rb" +# require "#{Rails.root}/lib/recipe.rb" class SearchController < ApplicationController - + def index + @results = ApiMuncherWrapper.get_recipe end diff --git a/app/views/search/index.html.erb b/app/views/search/index.html.erb new file mode 100644 index 000000000..e267f571f --- /dev/null +++ b/app/views/search/index.html.erb @@ -0,0 +1,6 @@ +

See your Recipes here!

+<% @results.each do |recipe|%> + <%= recipe[:name] %> + <%= image_tag(recipe[:pic]) %> +<% end %> +

Powered by Edamam

\ No newline at end of file diff --git a/lib/ApiMuncherWrapper.rb b/lib/ApiMuncherWrapper.rb index 81278872f..8f17eb168 100644 --- a/lib/ApiMuncherWrapper.rb +++ b/lib/ApiMuncherWrapper.rb @@ -1,18 +1,49 @@ require 'httparty' - +# did you change this ? Then restart the server! class ApiMuncherWrapper BASE_URL = "https://api.edamam.com/search" # should this be listed as Token/ id instead/ - APP_ID = ENV['APP_ID'] - APP_KEY = ENV['APP_KEY'] + APP_ID = ENV['app_id'] + APP_KEY = ENV['app_key'] # https://developer.edamam.com/edamam-docs-recipe-api # from Edamam q = query text, r = return of recipe based on it's id - attr_reader :recipe, :q, :url, :image, :returns, :r - def initialize(recipe, q, url, image, returns, r) - @recipe = recipe - @q = q - @url = url - @image = image + # attr_reader :recipe, :q, :url, :image, :returns, :r + # def initialize(recipe, q, url, image, returns, r) + # @recipe = recipe + # @q = q + # @url = url + # @image = image + # end + + def self.get_recipe + url = BASE_URL + "?q=bacon&from=0&to=10" + "&app_id=#{APP_ID}" + "&app_key=#{APP_KEY}" + data = HTTParty.get(url) + # return data['hits'][0]['recipe']['label'] + recipes = [] + + if data['hits'] + data['hits'].each do |recipe| + label = recipe["recipe"]["label"] + image = recipe["recipe"]["image"] + recipes << { + name: label, + pic: image + } + end + end + return recipes end -end \ No newline at end of file +end + + + + + + + + + + + + From b9dc8fdbd412195d0cf8dba5af2f6fab6cecff45 Mon Sep 17 00:00:00 2001 From: jm-rives Date: Sat, 5 Nov 2016 17:41:11 -0700 Subject: [PATCH 22/37] ADD cassettes to .gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f620b0cd4..f98221c46 100644 --- a/.gitignore +++ b/.gitignore @@ -18,5 +18,5 @@ .env /#.env # hides all files that end .DS_store - +/cassettes From f8cf55e1f48f219b569df624ea004cefc080322c Mon Sep 17 00:00:00 2001 From: jm-rives Date: Mon, 7 Nov 2016 09:27:18 -0800 Subject: [PATCH 23/37] ADD UPDATE to README --- .gitignore | 1 + README.md | 22 +++++++--------------- app/views/search/index.html.erb | 3 ++- app/views/search/new.html.erb | 2 +- 4 files changed, 11 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index f98221c46..544b42f7e 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ .DS_store /cassettes + diff --git a/README.md b/README.md index dd4e97e22..603e92878 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,20 @@ == README -This README would normally document whatever steps are necessary to get the -application up and running. +***Reflections on API - Muncher*** +Focusing was difficult last week, to much noise, to much light in the environment. Probably too many nerves about the upcoming conference and the mock interviews, but I didn't recognize my difficulties early and did not seek out the quieter areas avaialble to us. -Things you may want to cover: +I had trouble integrating the new ideas into my project. I found myself rewatching the panopto videos feeling I had missed something and I fell into the trap of seeing how far my class mates were progressing. I didn't recoginize the need to ask for help earlier to get myself unstuck when I felt blocked. -* Ruby version +I spent too much time trying to fix a class name error and ended up reseting my project to the last working commit after shelling out every class in my program trying to debugg it. -* System dependencies +Nov 5th, I got back on track, and was able to spend three consecutive hours getting the functionality of my project working. I learned that I needed to reset the rails server after each change to my api-wrapper module. -* Configuration +I learned how to use symbols with json by assigning the calls results to variables. -* Database creation +Melissa has done an excellent job with her project. I looks very clean and nice, and the pagination is beautiful. She was able to integrate models to help her build it (she's taking them out to finish her product). -* Database initialization -* How to run the test suite -* Services (job queues, cache servers, search engines, etc.) -* Deployment instructions -* ... - -Please feel free to use a different markup language if you do not plan to run -rake doc:app. diff --git a/app/views/search/index.html.erb b/app/views/search/index.html.erb index e267f571f..72c510362 100644 --- a/app/views/search/index.html.erb +++ b/app/views/search/index.html.erb @@ -3,4 +3,5 @@ <%= recipe[:name] %> <%= image_tag(recipe[:pic]) %> <% end %> -

Powered by Edamam

\ No newline at end of file + +

Powered by Edamam Edamam Logo

\ No newline at end of file diff --git a/app/views/search/new.html.erb b/app/views/search/new.html.erb index 2364405c5..1b188813c 100644 --- a/app/views/search/new.html.erb +++ b/app/views/search/new.html.erb @@ -6,4 +6,4 @@ <%= submit_tag "Search", :name => nil %> <% end %> -

Powered by Edamam

\ No newline at end of file +

Powered by Edamam Edamam Logo

\ No newline at end of file From 9676305ef305b9b21c1d0c7133c5ce771f7c9531 Mon Sep 17 00:00:00 2001 From: jm-rives Date: Sat, 12 Nov 2016 18:20:53 -0800 Subject: [PATCH 24/37] Pre-checkout committ --- lib/ApiMuncherWrapper.rb | 9 --------- 1 file changed, 9 deletions(-) diff --git a/lib/ApiMuncherWrapper.rb b/lib/ApiMuncherWrapper.rb index 8f17eb168..92593f794 100644 --- a/lib/ApiMuncherWrapper.rb +++ b/lib/ApiMuncherWrapper.rb @@ -6,15 +6,6 @@ class ApiMuncherWrapper APP_ID = ENV['app_id'] APP_KEY = ENV['app_key'] - # https://developer.edamam.com/edamam-docs-recipe-api - # from Edamam q = query text, r = return of recipe based on it's id - # attr_reader :recipe, :q, :url, :image, :returns, :r - # def initialize(recipe, q, url, image, returns, r) - # @recipe = recipe - # @q = q - # @url = url - # @image = image - # end def self.get_recipe url = BASE_URL + "?q=bacon&from=0&to=10" + "&app_id=#{APP_ID}" + "&app_key=#{APP_KEY}" From 02ae263edee4013c7bd80dadb95e48d823a26459 Mon Sep 17 00:00:00 2001 From: jm-rives Date: Sat, 12 Nov 2016 18:24:07 -0800 Subject: [PATCH 25/37] ADD comments --- lib/ApiMuncherWrapper.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/ApiMuncherWrapper.rb b/lib/ApiMuncherWrapper.rb index 92593f794..ed8c8c235 100644 --- a/lib/ApiMuncherWrapper.rb +++ b/lib/ApiMuncherWrapper.rb @@ -8,6 +8,8 @@ class ApiMuncherWrapper def self.get_recipe + + #url = "#{BASE_URL}search?q=#{search_term}&from=#{start_index}&app_id=#{APP_ID}&app_key#{APP_KEY}" url = BASE_URL + "?q=bacon&from=0&to=10" + "&app_id=#{APP_ID}" + "&app_key=#{APP_KEY}" data = HTTParty.get(url) # return data['hits'][0]['recipe']['label'] From 695f4dd5034141ffc97565a3d9fab3e1775f728f Mon Sep 17 00:00:00 2001 From: jm-rives Date: Sun, 13 Nov 2016 11:46:59 -0800 Subject: [PATCH 26/37] ADD working logo, working search, working link to one recipe --- app/controllers/recipe_controller.rb | 5 ++-- app/controllers/results_controller.rb | 41 ++++++++++++--------------- app/controllers/search_controller.rb | 6 ++-- app/views/search/index.html.erb | 14 +++++++-- app/views/search/new.html.erb | 6 +++- lib/ApiMuncherWrapper.rb | 19 ++++++++++--- 6 files changed, 55 insertions(+), 36 deletions(-) diff --git a/app/controllers/recipe_controller.rb b/app/controllers/recipe_controller.rb index 716773c29..3bc7149a5 100644 --- a/app/controllers/recipe_controller.rb +++ b/app/controllers/recipe_controller.rb @@ -1,11 +1,10 @@ class RecipeController < ApplicationController - def new - end - def update + def index end def show + end def destroy diff --git a/app/controllers/results_controller.rb b/app/controllers/results_controller.rb index 36480166a..5218d764f 100644 --- a/app/controllers/results_controller.rb +++ b/app/controllers/results_controller.rb @@ -1,32 +1,27 @@ class ResultsController < ApplicationController - + # https://developer.edamam.com/edamam-docs-recipe-api # from Edamam q = query text, r = return of recipe based on it's id - attr_reader :q, :uri - - # def initialize(q, uri) - # # @q = q - # # @uri = uri - # end - + # attr_reader :query, :uri def index - end - - def new - end - - def create + @page = '/' end def show - end - - def edit - end - - def update - end - - def destroy + # @page = "/" + # @results = ApiMuncherWrapper.search(params[:query], params[:from]) + # @count = ApiMuncherWrapper.results(params[:query]) + # @query = params[:query] + + # # expect user to be redirected to new search + # if @results == false + # redirect_to results_index_path + # flash[:notice] = "Recipe not found. Try Again Please!" + # else # expect user to be shown serach results + # @results_start = params[:from].to_i + 1 + # @results_end = @results_start + @results.length - 1 + # # do I need to reset query here, should I clear the field? + + end end end diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index 0a5218160..9b5ba7701 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -3,8 +3,10 @@ class SearchController < ApplicationController def index - @results = ApiMuncherWrapper.get_recipe - + @results = ApiMuncherWrapper.get_recipes(params[:search]) + # puts "!!!!!!!!!!!!!!" + # puts params.inspect + # puts "!!!!!!!!!!!!!!" end def new diff --git a/app/views/search/index.html.erb b/app/views/search/index.html.erb index 72c510362..e14ad0862 100644 --- a/app/views/search/index.html.erb +++ b/app/views/search/index.html.erb @@ -1,7 +1,15 @@

See your Recipes here!

<% @results.each do |recipe|%> - <%= recipe[:name] %> - <%= image_tag(recipe[:pic]) %> + <%= link_to recipe[:uri] do %> + <%= recipe[:name] %>
+ <%= image_tag(recipe[:pic]) %> + + <% end %> +


<% end %> -

Powered by Edamam Edamam Logo

\ No newline at end of file +
+

Powered by Edamam + Edamam Logo +

+

\ No newline at end of file diff --git a/app/views/search/new.html.erb b/app/views/search/new.html.erb index 1b188813c..dbb03cc05 100644 --- a/app/views/search/new.html.erb +++ b/app/views/search/new.html.erb @@ -6,4 +6,8 @@ <%= submit_tag "Search", :name => nil %> <% end %> -

Powered by Edamam Edamam Logo

\ No newline at end of file +
+

Powered by Edamam + Edamam Logo +

+

\ No newline at end of file diff --git a/lib/ApiMuncherWrapper.rb b/lib/ApiMuncherWrapper.rb index ed8c8c235..3603becec 100644 --- a/lib/ApiMuncherWrapper.rb +++ b/lib/ApiMuncherWrapper.rb @@ -1,16 +1,21 @@ require 'httparty' # did you change this ? Then restart the server! class ApiMuncherWrapper + BASE_URL = "https://api.edamam.com/search" # should this be listed as Token/ id instead/ APP_ID = ENV['app_id'] APP_KEY = ENV['app_key'] - def self.get_recipe + def self.get_recipes(query, from=nil) + + url = BASE_URL + "?q=#{query}" + "&app_id=#{APP_ID}" + "&app_key=#{APP_KEY}" + "#{from}" + + puts "*******" + url + "*******" + + # url = BASE_URL + "?q=bacon&from=0&to=10" + "&app_id=#{APP_ID}" + "&app_key=#{APP_KEY}" - #url = "#{BASE_URL}search?q=#{search_term}&from=#{start_index}&app_id=#{APP_ID}&app_key#{APP_KEY}" - url = BASE_URL + "?q=bacon&from=0&to=10" + "&app_id=#{APP_ID}" + "&app_key=#{APP_KEY}" data = HTTParty.get(url) # return data['hits'][0]['recipe']['label'] recipes = [] @@ -19,14 +24,20 @@ def self.get_recipe data['hits'].each do |recipe| label = recipe["recipe"]["label"] image = recipe["recipe"]["image"] + uri = recipe["recipe"]["uri"] recipes << { name: label, - pic: image + pic: image, + uri: uri } end end return recipes end + + def self.get_one_recipe + + end end From db7f004fe713be0c1d1094462854278cbec79288 Mon Sep 17 00:00:00 2001 From: jm-rives Date: Sun, 13 Nov 2016 11:59:41 -0800 Subject: [PATCH 27/37] ADD updated png file --- app/assets/images/edamam_logo.png | Bin 0 -> 4558 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 app/assets/images/edamam_logo.png diff --git a/app/assets/images/edamam_logo.png b/app/assets/images/edamam_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..19ab019c59500f29a64673d3ab25ca8c3d028f55 GIT binary patch literal 4558 zcmbVQX*^W@-yS7o8AOzIEMst%-HR zU7-@Orqruu&QuR)WsIo08t4)QK_l?OlF=ZFmnWWtps0%e#fzZLe{VxXL4TQ$Jyb>i zcFM{K1=1uCu^@TyMOkMk3=f0%hD`lNdb5=nj(uQiTz>F z!jhbcIBznJfCv3%L^~0D$*Q6>PyarGm$#A8zr=XbKY^l!3_?MBLttPi#LMgVx&E>y zkxj7w>&AbyCYc3zV<9G362X_~Ov{Ih*dH)0cK==Iw;|0NgfS6EOA6Xki{R|*g~gNg zv{XfDU%(g~2BC#iR@8naV77kZb(AH7V zfGQ}`pxSUH9ZelgO=ToZTNA0Iqyhbd)x(p>XuLD_k1md;`wtfRU$F>HA{I?15X}e# z&p#D_awCulBsYRLNYhjfWQoIL2>zts$@%-NT38~^4~x+u61+fvMHhkl59*pQML9(c z<%>$%P$g|R45oZhUQS0@Q(jREsi7gKh!p(?i~0XV3_^1T^1C$tPpSObqSfE;>A!_f zTm0KPSUjy?h_uGweaJBe0004cT1Yd>(1P7bGgC{x_sf&mfI%*hc(4qTUJG+CM_M|f z8)0?d@tW=hi#()?jc+R7B_WU3=IDHFj5}kgZz~;68iy?psAz4(+TGu$W-hMfQT5*ywF&~)m{5HPpDO2I;rADgFFjILjp`l=`0 z?P5BHh`=O?mDm}+j2N+rRzuOEW=-ep)&%(R@z*RO=cR7-EI9W-M@^zLc8!cdzVq2v zrWe-4xE?a;ofHM!Ki-f_sK~H()1H%)j7~TmQ_<;>+Pvret!C-VyR^HE7eub#E_)!c zDV9Oq|0X1>O#iD<$%6G}xpHBXIJqq28bx>Ac%@{EMQm0siv5P;7ctcptNpeBO*fWb zMDvn{l*r-%KmMVFfL!9RjOBo>m3d=NV*kErxX4;T;Gn`jn@5h`LQHnZEJRwb-PXr` zoo*$g@tm2v*RmMB376#n4s!b2z|C6j>-cpUXCa4Xa};1an!CT>1o823<9_**SEFoA;g@>{eEWWvOn8Q zTFN2cm+t$-R68*|RTEw?3=qO}@IeMzne4y=yCU%+^cbs2AFM zX{cVV&!;Zmbh!t?My(25?CP)2s(VviJAqnn?BST(x&OKHnNFR@OBLu-9-j*t!iv%A zGC4+XBRYQke3pIegNgsQ2x0lFQjOyP7M7MRj-h8FynJQcL0`MBQ>s@-V$P&F+K)OA z(_uMsv4}0+vKH-i^J=qq3!=<&UNclUzmMLf^z5xwjv-48 zf7L6o$^F5ghy(@`N?tck;t{E+z0WtJUL2lxfa}PI9pZe#ED=DVo~l*zq%qkH;ocUG zhx(`3zqbaYEJwP9@S%+F?B28<$zs$H(tBV3sJKLuoXWQ3cOCE|xg%Q{ zQNz=mUfI|*XCUA!DWOYHzF0?e_O0aifFBQdMC6$c#VtacL$L);>BS0)QK@WkyBE4P zttAVQD$y+BM=b&)Wh-5M54Hh%tLudRqlu{3?F^q~(+B3Wf%T=F1Kez}*NbtY<_qZ^ zQj!6OMPifEw`v{L-*`&B5_(k!IE;#_k%qTzV^qYsng%>c;~A*wJIy|Iqw)siyTBGR zBkDoa>3QxZl+JU^*Oo2!h~AmmDl>r16_;JDJ`kzHx64x-cf7bOMdoH z7wUZSen753wU@>5T}kFf*43n6krVuE@%0WsFW%uEkJ$o?tZ@KU!m?oC>w_GK-WF}C^J>L;!<-pF&{Hkj$Wqaui1U|M@j zuTG63;2NBuNvgIxnr%8M@3&5jnR|wZ;`5kvA-+;4daa<3RFq#R!mst;AIpE|7^Ez2MeFD`$*lgc z6=znx@U1RNj$3!aC-&)Ilg!oS+v*o1{ZMClB&>S9%ic}s_NJqRqr1((JT_-Px0o3W zHV_2!?NGX3?q`V&a&6xnC>rgrabOa8Q5m@mFP9Z7dXOKEdWEdEf1Sr5k~*Di7(y)6 z%Uj%(;_dP-JP7#ki7x&-@B14U4JX}tE`PA9I#tt8W_J5!UA|xf`vneu7zg$1p}G~i zy3Qb{qmx?Vj0)ZJHrZ!QywB@?d{)dqm+)%~TD1O7>rBM=?0j_#=L&y(9hA9iuFN4P za=<)&54ud(dVl)!d(Jw6H^ZTjppNZBAn=F1<07OHq2IK78QdyGI#CPx+OOdFt}Z2^ zNc;lDL8N%Mk{iZ=UAM+cs$nF6esbUdRf%}e;0Ng-wvJj$g9 zZaaL@p%yMqpl&kDc;|Qy0iK%+#xMQ68X7}Jk1x&jD8jPnpRl2}i$X?c(?o|d69RG) zlgN)HA?7B%bo_FRQ!l@UZU6*%0r9obF?&O)+~<-8v`ya5g1=Wqd3m(OXYx+C?(k-I zo9560+%6eA%B~@6tbzLHSsdPO2(JNj86WZ`Ne0jsS zXbJr&d{)VWv4p#B;u-U#{7XV-?CNyi@Y+C>`Xlw--1|G)1x~i>bnCAZyR1It=d;*ZF+r?gL?K$8k8oHat;u0tfr&lPY7DlRqbwD)D^006zYG+l6(u;dJf9u|c%myf=Z4du=NPNc20dRh>KgGma%H)st?@lGLh{*! zfWf6WsYoq^!`MFm6P{{QzG;=>4Xxd~0=*z_*;^koZyEpW7M*H;FtpV+W^SFY)SZ3I zt@G;)f849+PI;T46quFP_btCgdnG+4$>M7NxD{hN!~*@!flC436v@7c7pj4DC_-Da zD};k(O0PfU;8YXy*Y$R=A(q`@&+SbW%)N9jVLG}{*7tI*j6B(ZTuNAbfvWBP0Fl9&oF*=eq@GNZD+2eEdM6aOE|u zI|laFItbV$*&giLSdtmf*x^}GE&TQB%_hjw1%;w@LFV?2ZdPkw)27)wZ)QjO3y8ta zQ9Lynr132rTTH&5gQ~b$zHv>59m#XW!j^x!dDZb(Xu@MIHJ$k=om>ajy;xBBNa^~| zH_>5Y`tIBI2PK5W@(j%^k3g2eGh7GM#i&qo!7huJ_isrWIajV`+}UJT2M5}Ig?8cv z+kak=gqJ<9*=R2lI~ccQVU@L?Olm4TE=|hsi1?P7ddc%v$4J_xb&Euw@H<8@ zXSw4)SKxbH^5|8${g4!QV zn^(sb3zYHTN)jq(o-u7&J|R5hdk3>nw{w;vJyBszm1&9 z{wjY`%Ez>mnmpfPoD@H{7oYOcu(R#6F=g)=;5dM?- Date: Sun, 13 Nov 2016 12:25:08 -0800 Subject: [PATCH 28/37] UPDATE to removed hard coding of range --- app/controllers/search_controller.rb | 6 +++++- lib/ApiMuncherWrapper.rb | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index 9b5ba7701..39d598c29 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -3,7 +3,11 @@ class SearchController < ApplicationController def index - @results = ApiMuncherWrapper.get_recipes(params[:search]) + search = params[:search] + from = params[:from] + + @results = ApiMuncherWrapper.get_recipes(search, from) + # puts "!!!!!!!!!!!!!!" # puts params.inspect # puts "!!!!!!!!!!!!!!" diff --git a/lib/ApiMuncherWrapper.rb b/lib/ApiMuncherWrapper.rb index 3603becec..b561d2c69 100644 --- a/lib/ApiMuncherWrapper.rb +++ b/lib/ApiMuncherWrapper.rb @@ -10,7 +10,7 @@ class ApiMuncherWrapper def self.get_recipes(query, from=nil) - url = BASE_URL + "?q=#{query}" + "&app_id=#{APP_ID}" + "&app_key=#{APP_KEY}" + "#{from}" + url = BASE_URL + "?q=#{query}" + "&app_id=#{APP_ID}" + "&app_key=#{APP_KEY}" + "&from=#{from}" puts "*******" + url + "*******" From 1bba5c416cc87ad1b7ce3ec5974b611c3b9556f7 Mon Sep 17 00:00:00 2001 From: jm-rives Date: Sun, 13 Nov 2016 13:20:15 -0800 Subject: [PATCH 29/37] ADD scaffolding code --- app/controllers/search_controller.rb | 9 +++++---- app/views/search/index.html.erb | 11 +++++++++++ lib/ApiMuncherWrapper.rb | 2 +- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index 39d598c29..1bf07b968 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -5,12 +5,13 @@ class SearchController < ApplicationController def index search = params[:search] from = params[:from] - + # from is nil here + if from == nil + from = 0 + end @results = ApiMuncherWrapper.get_recipes(search, from) - # puts "!!!!!!!!!!!!!!" - # puts params.inspect - # puts "!!!!!!!!!!!!!!" + @foobar = "hello world" end def new diff --git a/app/views/search/index.html.erb b/app/views/search/index.html.erb index e14ad0862..0be5d6aee 100644 --- a/app/views/search/index.html.erb +++ b/app/views/search/index.html.erb @@ -1,4 +1,15 @@ +

See your Recipes here!

+ +<%= link_to search_index_path + "?search=fish" + "&from=10" do %> +Next +<%# search_index_path + "?search=beef" + "&from=10" %> +<% end %> + +
+
+
+ <% @results.each do |recipe|%> <%= link_to recipe[:uri] do %> <%= recipe[:name] %>
diff --git a/lib/ApiMuncherWrapper.rb b/lib/ApiMuncherWrapper.rb index b561d2c69..5a88fdbac 100644 --- a/lib/ApiMuncherWrapper.rb +++ b/lib/ApiMuncherWrapper.rb @@ -8,7 +8,7 @@ class ApiMuncherWrapper APP_KEY = ENV['app_key'] - def self.get_recipes(query, from=nil) + def self.get_recipes(query, from) url = BASE_URL + "?q=#{query}" + "&app_id=#{APP_ID}" + "&app_key=#{APP_KEY}" + "&from=#{from}" From ae4222e10d8593a489ba50907c60e4fce9140f74 Mon Sep 17 00:00:00 2001 From: jm-rives Date: Sun, 13 Nov 2016 14:05:59 -0800 Subject: [PATCH 30/37] ADD next, prev, and home navigation to search --- app/controllers/search_controller.rb | 21 ++++++--------------- app/views/search/index.html.erb | 9 +++------ 2 files changed, 9 insertions(+), 21 deletions(-) diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index 1bf07b968..f416e289c 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -5,27 +5,18 @@ class SearchController < ApplicationController def index search = params[:search] from = params[:from] - # from is nil here + if from == nil from = 0 + else + from = from.to_i end - @results = ApiMuncherWrapper.get_recipes(search, from) - @foobar = "hello world" + @next_page = search_index_path + "?search=#{search}&from=#{from + 10}" + @prev_page = search_index_path + "?search=#{search}&from=#{from - 10}" + @results = ApiMuncherWrapper.get_recipes(search, from) end def new end - - def create - end - - def update - end - - def destroy - end - - def show - end end diff --git a/app/views/search/index.html.erb b/app/views/search/index.html.erb index 0be5d6aee..7fbc11a54 100644 --- a/app/views/search/index.html.erb +++ b/app/views/search/index.html.erb @@ -1,10 +1,7 @@ -

See your Recipes here!

- -<%= link_to search_index_path + "?search=fish" + "&from=10" do %> -Next -<%# search_index_path + "?search=beef" + "&from=10" %> -<% end %> +<%= link_to "Home", root_path %> +<%= link_to "Prev", @prev_page %> +<%= link_to "Next", @next_page %>

From f55a3ada28703e7dac4eea5f69eaa78eb20719a8 Mon Sep 17 00:00:00 2001 From: jm-rives Date: Sun, 13 Nov 2016 14:46:56 -0800 Subject: [PATCH 31/37] DELETED extraneous routes --- app/views/search/index.html.erb | 3 ++- config/routes.rb | 25 ------------------------- lib/ApiMuncherWrapper.rb | 4 ---- 3 files changed, 2 insertions(+), 30 deletions(-) diff --git a/app/views/search/index.html.erb b/app/views/search/index.html.erb index 7fbc11a54..3440717fe 100644 --- a/app/views/search/index.html.erb +++ b/app/views/search/index.html.erb @@ -1,4 +1,5 @@

See your Recipes here!

+ <%= link_to "Home", root_path %> <%= link_to "Prev", @prev_page %> <%= link_to "Next", @next_page %> @@ -15,7 +16,7 @@ <% end %>


<% end %> - +