diff --git a/.gitignore b/.gitignore index 03f3ce7..edd0586 100644 --- a/.gitignore +++ b/.gitignore @@ -63,3 +63,7 @@ build-iPhoneSimulator/ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this: .rvmrc + +/.env + +config/initializers/yelp.rb diff --git a/Gemfile b/Gemfile index 288bb87..9b7f1e7 100644 --- a/Gemfile +++ b/Gemfile @@ -23,23 +23,47 @@ gem 'sdoc', '~> 0.4.0', group: :doc # Use ActiveModel has_secure_password # gem 'bcrypt', '~> 3.1.7' - +gem 'httparty' # Use Unicorn as the app server # gem 'unicorn' # Use Capistrano for deployment # gem 'capistrano-rails', group: :development +gem 'yelp', require: 'yelp' +gem 'rspotify', require: 'rspotify' + +gem 'rest-client' +gem "omniauth" +gem 'omniauth-spotify' +gem 'omniauth-oauth2', '~> 1.3.1' + + group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem 'byebug' + gem 'dotenv-rails' + gem 'pry-rails' + gem 'minitest-vcr' + gem 'minitest-reporters' + gem 'webmock' + gem 'simplecov' + end group :development do # Access an IRB console on exception pages or by using <%= console %> in views gem 'web-console', '~> 2.0' - + gem 'better_errors' + gem 'pry-rails' + gem 'erd' + gem 'bootstrap-sass', '~>3.2.0' + gem "binding_of_caller" + gem "rest-client" # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring gem 'spring' end +group :production do + gem 'rails_12factor' +end diff --git a/Gemfile.lock b/Gemfile.lock index 6ff0f39..f5ffd9b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -36,11 +36,21 @@ 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) + 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) + bootstrap-sass (3.2.0.2) + sass (~> 3.2) builder (3.2.2) - byebug (8.2.5) + byebug (9.0.3) + choice (0.2.0) + coderay (1.1.1) coffee-rails (4.1.1) coffee-script (>= 2.2.0) railties (>= 4.0.0, < 5.1.x) @@ -49,11 +59,34 @@ 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) + domain_name (0.5.20160310) + unf (>= 0.0.5, < 1.0.0) + dotenv (2.1.1) + dotenv-rails (2.1.1) + dotenv (= 2.1.1) + railties (>= 4.0, < 5.1) + erd (0.4.0) + nokogiri + rails-erd (>= 0.4.5) erubis (2.7.0) execjs (2.6.0) + faraday (0.9.2) + multipart-post (>= 1.2, < 3) + faraday_middleware (0.10.0) + faraday (>= 0.7.4, < 0.10) globalid (0.3.6) activesupport (>= 4.1.0) + hashdiff (0.3.0) + hashie (3.4.4) + http-cookie (1.0.2) + domain_name (~> 0.5) + httparty (0.13.7) + json (~> 1.8) + multi_xml (>= 0.5.2) i18n (0.7.0) jbuilder (2.4.1) activesupport (>= 3.0.0, < 5.1) @@ -63,19 +96,53 @@ GEM railties (>= 4.2.0) thor (>= 0.14, < 2.0) json (1.8.3) + jwt (1.5.1) loofah (2.0.3) nokogiri (>= 1.5.9) mail (2.6.4) mime-types (>= 1.16, < 4) - mime-types (3.0) - mime-types-data (~> 3.2015) - mime-types-data (3.2016.0221) + method_source (0.8.2) + mime-types (2.99.1) mini_portile2 (2.0.0) - minitest (5.8.4) - multi_json (1.12.0) + minispec-metadata (2.0.0) + minitest + minitest (5.9.0) + minitest-reporters (1.1.9) + 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) + multipart-post (2.0.0) + netrc (0.11.0) nokogiri (1.6.7.2) mini_portile2 (~> 2.0.0.rc2) + oauth2 (1.1.0) + faraday (>= 0.8, < 0.10) + jwt (~> 1.0, < 1.5.2) + multi_json (~> 1.3) + multi_xml (~> 0.5) + rack (>= 1.2, < 3) + omniauth (1.3.1) + hashie (>= 1.2, < 4) + rack (>= 1.0, < 3) + omniauth-oauth2 (1.3.1) + oauth2 (~> 1.0) + omniauth (~> 1.2) + omniauth-spotify (0.0.9) + omniauth-oauth2 (~> 1.1) pg (0.18.4) + pry (0.10.3) + coderay (~> 1.1.0) + method_source (~> 0.8.1) + slop (~> 3.4) + pry-rails (0.3.4) + pry (>= 0.9.10) rack (1.6.4) rack-test (0.6.3) rack (>= 1.0) @@ -96,8 +163,18 @@ GEM activesupport (>= 4.2.0.beta, < 5.0) nokogiri (~> 1.6.0) rails-deprecated_sanitizer (>= 1.0.1) + rails-erd (1.4.7) + activerecord (>= 3.2) + activesupport (>= 3.2) + choice (~> 0.2.0) + ruby-graphviz (~> 1.2) rails-html-sanitizer (1.0.3) loofah (~> 2.0) + rails_12factor (0.0.3) + rails_serve_static_assets + rails_stdout_logging + rails_serve_static_assets (0.0.5) + rails_stdout_logging (0.0.5) railties (4.2.6) actionpack (= 4.2.6) activesupport (= 4.2.6) @@ -106,6 +183,16 @@ GEM rake (11.1.2) rdoc (4.2.2) json (~> 1.4) + rest-client (1.8.0) + http-cookie (>= 1.0.2, < 2.0) + mime-types (>= 1.16, < 3.0) + netrc (~> 0.7) + rspotify (1.18.0) + omniauth-oauth2 (~> 1.3.1) + rest-client (~> 1.7) + ruby-graphviz (1.2.2) + ruby-progressbar (1.8.1) + safe_yaml (1.0.4) sass (3.4.22) sass-rails (5.0.4) railties (>= 4.0.0, < 5.0) @@ -116,6 +203,13 @@ GEM sdoc (0.4.1) json (~> 1.7, >= 1.7.7) rdoc (~> 4.0) + simple_oauth (0.3.1) + simplecov (0.11.2) + docile (~> 1.1.0) + json (~> 1.8) + simplecov-html (~> 0.10.0) + simplecov-html (0.10.0) + slop (3.6.0) spring (1.7.1) sprockets (3.6.0) concurrent-ruby (~> 1.0) @@ -126,32 +220,65 @@ GEM sprockets (>= 3.0.0) thor (0.19.1) thread_safe (0.3.5) - tilt (2.0.2) + tilt (2.0.4) tzinfo (1.2.2) thread_safe (~> 0.1) uglifier (3.0.0) execjs (>= 0.3.0, < 3) + unf (0.1.4) + unf_ext + unf_ext (0.0.7.2) + 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.0.3) + addressable (>= 2.3.6) + crack (>= 0.3.2) + hashdiff + yelp (2.1.2) + faraday (~> 0.8, >= 0.8.0) + faraday_middleware (~> 0.8, >= 0.8.0) + simple_oauth (~> 0.3.1) PLATFORMS ruby DEPENDENCIES + better_errors + binding_of_caller + bootstrap-sass (~> 3.2.0) byebug coffee-rails (~> 4.1.0) + dotenv-rails + erd + httparty jbuilder (~> 2.0) jquery-rails + minitest-reporters + minitest-vcr + omniauth + omniauth-oauth2 (~> 1.3.1) + omniauth-spotify pg (~> 0.15) + pry-rails rails (= 4.2.6) + rails_12factor + rest-client + rspotify sass-rails (~> 5.0) sdoc (~> 0.4.0) + simplecov spring uglifier (>= 1.3.0) web-console (~> 2.0) + webmock + yelp + +RUBY VERSION + ruby 2.3.1p112 BUNDLED WITH - 1.12.3 + 1.12.4 diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 646c5ab..4f6c679 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -13,3 +13,71 @@ //= require jquery //= require jquery_ujs //= require_tree . +$(document).ready(function() { +$(".btn-pref .btn").click(function () { + $(".btn-pref .btn").removeClass("btn-primary").addClass("btn-default"); + // $(".tab").addClass("active"); // instead of this do the below + $(this).removeClass("btn-default").addClass("btn-primary"); +}); +}); + +(function() { + + function login(callback) { + var CLIENT_ID = '6b284830006843e7ae7b170725715aed'; + var REDIRECT_URI = 'http://jmperezperez.com/spotify-oauth-jsfiddle-proxy/'; + function getLoginURL(scopes) { + return 'https://accounts.spotify.com/authorize?client_id=' + CLIENT_ID + + '&redirect_uri=' + encodeURIComponent(REDIRECT_URI) + + '&scope=' + encodeURIComponent(scopes.join(' ')) + + '&response_type=token'; + } + + var url = getLoginURL([ + 'user-read-email' + ]); + + var width = 450, + height = 730, + left = (screen.width / 2) - (width / 2), + top = (screen.height / 2) - (height / 2); + + window.addEventListener("message", function(event) { + var hash = JSON.parse(event.data); + if (hash.type == 'access_token') { + callback(hash.access_token); + } + }, false); + + var w = window.open(url, + 'Spotify', + 'menubar=no,location=no,resizable=no,scrollbars=no,status=no, width=' + width + ', height=' + height + ', top=' + top + ', left=' + left + ); + + } + + function getUserData(accessToken) { + return $.ajax({ + url: 'https://api.spotify.com/v1/me', + headers: { + 'Authorization': 'Bearer ' + accessToken + } + }); + } + + var templateSource = document.getElementById('result-template').innerHTML, + template = Handlebars.compile(templateSource), + resultsPlaceholder = document.getElementById('result'), + loginButton = document.getElementById('btn-login'); + + loginButton.addEventListener('click', function() { + login(function(accessToken) { + getUserData(accessToken) + .then(function(response) { + loginButton.style.display = 'none'; + resultsPlaceholder.innerHTML = template(response); + }); + }); + }); + +})(); diff --git a/app/assets/javascripts/home.coffee b/app/assets/javascripts/home.coffee new file mode 100644 index 0000000..24f83d1 --- /dev/null +++ b/app/assets/javascripts/home.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/javascripts/sessions.coffee b/app/assets/javascripts/sessions.coffee new file mode 100644 index 0000000..380e2e7 --- /dev/null +++ b/app/assets/javascripts/sessions.coffee @@ -0,0 +1,64 @@ +# 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/ + +(function() { + + function login(callback) { + var CLIENT_ID = '6b284830006843e7ae7b170725715aed'; + var REDIRECT_URI = 'http://jmperezperez.com/spotify-oauth-jsfiddle-proxy/'; + function getLoginURL(scopes) { + return 'https://accounts.spotify.com/authorize?client_id=' + CLIENT_ID + + '&redirect_uri=' + encodeURIComponent(REDIRECT_URI) + + '&scope=' + encodeURIComponent(scopes.join(' ')) + + '&response_type=token'; + } + + var url = getLoginURL([ + 'user-read-email' + ]); + + var width = 450, + height = 730, + left = (screen.width / 2) - (width / 2), + top = (screen.height / 2) - (height / 2); + + window.addEventListener("message", function(event) { + var hash = JSON.parse(event.data); + if (hash.type == 'access_token') { + callback(hash.access_token); + } + }, false); + + var w = window.open(url, + 'Spotify', + 'menubar=no,location=no,resizable=no,scrollbars=no,status=no, width=' + width + ', height=' + height + ', top=' + top + ', left=' + left + ); + + } + + function getUserData(accessToken) { + return $.ajax({ + url: 'https://api.spotify.com/v1/me', + headers: { + 'Authorization': 'Bearer ' + accessToken + } + }); + } + + var templateSource = document.getElementById('result-template').innerHTML, + template = Handlebars.compile(templateSource), + resultsPlaceholder = document.getElementById('result'), + loginButton = document.getElementById('btn-login'); + + loginButton.addEventListener('click', function() { + login(function(accessToken) { + getUserData(accessToken) + .then(function(response) { + loginButton.style.display = 'none'; + resultsPlaceholder.innerHTML = template(response); + }); + }); + }); + +})(); diff --git a/app/assets/javascripts/suggestions.coffee b/app/assets/javascripts/suggestions.coffee new file mode 100644 index 0000000..24f83d1 --- /dev/null +++ b/app/assets/javascripts/suggestions.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/javascripts/user.coffee b/app/assets/javascripts/user.coffee new file mode 100644 index 0000000..24f83d1 --- /dev/null +++ b/app/assets/javascripts/user.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/application.css b/app/assets/stylesheets/application.css index f9cd5b3..e08be1c 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -13,3 +13,14 @@ *= require_tree . *= require_self */ + .album-picture{ + width: 20%; + margin: 0; + + + } + + img{ + width: 20%; + padding: 0; + } diff --git a/app/assets/stylesheets/home.scss b/app/assets/stylesheets/home.scss new file mode 100644 index 0000000..cb52089 --- /dev/null +++ b/app/assets/stylesheets/home.scss @@ -0,0 +1,35 @@ +// Place all the styles related to the users controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ + + + +.album-picture img{ + float: none; + margin: 0 auto; + width: 20%; + height: 20%; + -webkit-border-radius: 10% !important; + -moz-border-radius: 10% !important; + border-radius: 10% !important; +} + +.ranking{ + text-align: left; + padding: 0; +} + +.title { + text-transform: uppercase; + color: cadetblue; +} + + + img { + vertical-align: middle; + width: 20%; + +} +.image{ + width: 20%; +} diff --git a/app/assets/stylesheets/sessions.scss b/app/assets/stylesheets/sessions.scss new file mode 100644 index 0000000..d8e2c26 --- /dev/null +++ b/app/assets/stylesheets/sessions.scss @@ -0,0 +1,117 @@ +// Place all the styles related to the sessions controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ + +.spotify_logo img{ + width: 100%; +} + +body{ + position:absolute; + width:100%; + height:100%; + margin:0; + padding:0; + background-image:url(http://www.matthewlewicki.com/codefest/images/spotify-background.jpg);} +h1{ + margin:0 0 .5em 0; + padding:0; + color:#fff; + font-family:helvetica; + font-size:30px; + font-weight:100; + letter-spacing:1px; + text-align:center; + text-shadow: 0 1px 2px rgba(0,0,0,1);} +section{ + position:relative; + top:50%; + width:300px; + max-width:96%; + margin:0 auto; + padding-top:120px; + -webkit-transform:translateY(-50%); + -ms-transform:translateY(-50%); + transform:translateY(-50%); + background-image:url(http://www.matthewlewicki.com/codefest/images/spotify-logo-small.png); + background-position:top center; + background-repeat:no-repeat; + background-size:100px;} +form{ + padding:0; + border-radius: 4px; + background-color:rgba(255,255,255,.75); + box-shadow: 0 2px 5px 0px rgba(38,38,38,0.5);} +fieldset{ + display: block; + width:100%; + margin:0 auto; + padding:1em 0 1em 0; + border: none; + border-bottom: 1px solid #ccc;} +fieldset:first-child{ + margin-bottom:0;} +fieldset:last-child{ + border-bottom: none; + margin-top:0; + padding:0;} +input{ + display:block; + width: 90%; + height:20px; + margin:0 auto; + padding: 5px 0; + color: #81b71a; + border: 1px solid #ccc; + text-align:center; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + -o-border-radius: 4px; + border-radius: 4px;} +input[type="submit"]{ + display: block; + -webkit-appearance: none; + -moz-appearance: none; + width:100%; + max-width:100% !important; + height:3em; + margin: 0 auto; + padding: 7px 5px 5px 5px; + background-color:#262626; + font-family: helvetica, arial, sans-serif; + font-size: 1em; + text-transform: uppercase; + text-align:center; + color:#81b71a; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border:none; + border-radius: 0 0 4px 4px; + -webkit-transition: all 0.5s ease-out; + -moz-transition: all 0.5s ease-out; + -o-transition: all 0.5s ease-out; + transition: all 0.5s ease-out;} +input[type="submit"]:hover{ + background-color: #333; + text-shadow:none;} +input::-webkit-input-placeholder{ + -webkit-transition: all 0.5s ease; + -moz-transition: all 0.5s ease; + -o-transition: all 0.5s ease; + transition: all 0.5s ease;} +input:hover::-webkit-input-placeholder{ + color:#81b71a;} +input:focus::-webkit-input-placeholder{ + opacity:0;} +input[type="text"]:focus,input[type="text"]:active,[type="password"]:focus,input[type="password"]:active{ + outline:0; + -webkit-appearance: none; + -moz-appearance: none; + border-image:none; + -moz-box-shadow: 0 0 20px rgba(129,183,26,0.5); + box-shadow: 0 0 20px rgba(129,183,26,0.5); + -webkit-animation: shadow-pulse 3s infinite ease-in-out;} +@-webkit-keyframes shadow-pulse { + 0% {-webkit-box-shadow: 0 0 20px rgba(129,183,26,0);} + 50% {-webkit-box-shadow: 0 0 20px rgba(129,183,26,1);} + 100% {-webkit-box-shadow: 0 0 20px rgba(129,183,26,0);}} diff --git a/app/assets/stylesheets/suggestions.scss b/app/assets/stylesheets/suggestions.scss new file mode 100644 index 0000000..efbd90d --- /dev/null +++ b/app/assets/stylesheets/suggestions.scss @@ -0,0 +1,148 @@ +// Place all the styles related to the suggestions controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ +/* -------------------------------------------------- + :: General + -------------------------------------------------- */ +body { + font-family: 'Open Sans', sans-serif; + color: #353535; +} +.content h1 { + text-align: center; +} +.content .content-footer p { + color: #6d6d6d; + font-size: 12px; + text-align: center; +} +.content .content-footer p a { + color: inherit; + font-weight: bold; +} + +/* -------------------------------------------------- + :: Table Filter + -------------------------------------------------- */ +.panel { + border: 1px solid #ddd; + background-color: #fcfcfc; +} +.panel .btn-group { + margin: 15px 0 30px; +} +.panel .btn-group .btn { + transition: background-color .3s ease; +} +.table-filter { + background-color: #fff; + border-bottom: 1px solid #eee; +} +.table-filter tbody tr:hover { + cursor: pointer; + background-color: #eee; +} +.table-filter tbody tr td { + padding: 10px; + vertical-align: middle; + border-top-color: #eee; +} +.table-filter tbody tr.selected td { + background-color: #eee; +} +.table-filter tr td:first-child { + width: 38px; +} +.table-filter tr td:nth-child(2) { + width: 35px; +} +.ckbox { + position: relative; +} +.ckbox input[type="checkbox"] { + opacity: 0; +} +.ckbox label { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.ckbox label:before { + content: ''; + top: 1px; + left: 0; + width: 18px; + height: 18px; + display: block; + position: absolute; + border-radius: 2px; + border: 1px solid #bbb; + background-color: #fff; +} +.ckbox input[type="checkbox"]:checked + label:before { + border-color: #2BBCDE; + background-color: #2BBCDE; +} +.ckbox input[type="checkbox"]:checked + label:after { + top: 3px; + left: 3.5px; + content: '\e013'; + color: #fff; + font-size: 11px; + font-family: 'Glyphicons Halflings'; + position: absolute; +} +.table-filter .star { + color: #ccc; + text-align: center; + display: block; +} +.table-filter .star.star-checked { + color: #F0AD4E; +} +.table-filter .star:hover { + color: #ccc; +} +.table-filter .star.star-checked:hover { + color: #F0AD4E; +} +.table-filter .media-photo { + width: 35px; +} +.table-filter .media-body { + display: block; + /* Had to use this style to force the div to expand (wasn't necessary with my bootstrap version 3.3.6) */ +} +.table-filter .media-meta { + font-size: 11px; + color: #999; +} +.table-filter .media .title { + color: #2BBCDE; + font-size: 14px; + font-weight: bold; + line-height: normal; + margin: 0; +} +.table-filter .media .title span { + font-size: .8em; + margin-right: 20px; +} +.table-filter .media .title span.pagado { + color: #5cb85c; +} +.table-filter .media .title span.pendiente { + color: #f0ad4e; +} +.table-filter .media .title span.cancelado { + color: #d9534f; +} +.table-filter .media .summary { + font-size: 14px; +} + +img{ + width: 20%; + +} diff --git a/app/assets/stylesheets/user.scss b/app/assets/stylesheets/user.scss new file mode 100644 index 0000000..9d9d94b --- /dev/null +++ b/app/assets/stylesheets/user.scss @@ -0,0 +1,104 @@ +// Place all the styles related to the user controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ +/* USER PROFILE PAGE */ + + +.col-sm-6 { + width: 100%; +} + + .card { + margin-top: 20px; + padding: 30px; + background-color: rgba(214, 224, 226, 0.2); + -webkit-border-top-left-radius:5px; + -moz-border-top-left-radius:5px; + border-top-left-radius:5px; + -webkit-border-top-right-radius:5px; + -moz-border-top-right-radius:5px; + border-top-right-radius:5px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.card.hovercard { + position: relative; + padding-top: 0; + overflow: hidden; + text-align: center; + background-color: #fff; + background-color: rgba(255, 255, 255, 1); +} +.card.hovercard .card-background { + height: 130px; +} +.card-background img { + -webkit-filter: blur(25px); + -moz-filter: blur(25px); + -o-filter: blur(25px); + -ms-filter: blur(25px); + filter: blur(25px); + margin-left: -100px; + margin-top: -200px; + // min-width: 130%; +} +.card.hovercard .useravatar { + position: absolute; + top: 15px; + left: 0; + right: 0; +} +.card.hovercard .useravatar img { + width: 100px; + height: 100px; + max-width: 100px; + max-height: 100px; + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; + border: 5px solid rgba(255, 255, 255, 0.5); +} +.card.hovercard .card-info { + position: absolute; + bottom: 14px; + left: 0; + right: 0; +} +.card.hovercard .card-info .card-title { + padding:0 5px; + font-size: 20px; + line-height: 1; + color: #262626; + background-color: rgba(255, 255, 255, 0.1); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.card.hovercard .card-info { + overflow: hidden; + font-size: 12px; + line-height: 20px; + color: #737373; + text-overflow: ellipsis; +} +.card.hovercard .bottom { + padding: 0 20px; + margin-bottom: 17px; +} +.btn-pref .btn { + -webkit-border-radius:0 !important; +} + +.user-header-image{ + width: 20%; +} +.image_style{ + width: 20%; +} + +.db{ + height: 80px; + position: relative; + border: 1px solid #282828; +} diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index d83690e..a0ba5e3 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,5 +1,21 @@ 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 + helper_method :current_user + + before_action :require_login + + def current_user + @user ||= User.find_by(id: session[:user_id]) + end + + def require_login + if current_user.nil? + flash[:error] = "You must be logged in to view this section" + redirect_to login_path + end + end end diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb new file mode 100644 index 0000000..cd15f8b --- /dev/null +++ b/app/controllers/home_controller.rb @@ -0,0 +1,7 @@ +class HomeController < ApplicationController + skip_before_action :require_login, only: [:index] + + def index + @top_twenty = TunesTakeout.top_suggestions(20) + end +end diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb new file mode 100644 index 0000000..266fa1e --- /dev/null +++ b/app/controllers/sessions_controller.rb @@ -0,0 +1,24 @@ +class SessionsController < ApplicationController + skip_before_action :require_login, only: [:new, :create] + + def new + end + + def create + auth_hash = request.env['omniauth.auth'] + raise + user = User.find_or_create_from_omniauth(auth_hash) + if user + session[:user_id] = user.id + redirect_to "/user/#{user.id}" + else + redirect_to root_path, notice: "Failed to save the user" + end + end + + + def destroy + session.delete :user_id + redirect_to root_path + end +end diff --git a/app/controllers/suggestions_controller.rb b/app/controllers/suggestions_controller.rb new file mode 100644 index 0000000..77c5f0e --- /dev/null +++ b/app/controllers/suggestions_controller.rb @@ -0,0 +1,24 @@ +class SuggestionsController < ApplicationController + def index + # shows top 20 suggestions, ranked by total number of favorites + end + + def search + @result = TunesTakeout.search_results(params["search"]) + redirect_to user_path(id: params["id"], suggestions_search: params["search"]) + end + + def favorites + @result = TunesTakeout.favorites_by_user_id(params["user_id"]) + redirect_to user_favorites_path(params["user_id"]) + + end + + def favorite + # adds a suggestion into the favorite list for the signed-in User. This requires interaction with the Tunes & Takeout API. + end + + def unfavorite + # removes a suggestion from the favorite list for the signed-in User. This requires interaction with theTunes & Takeout API. + end +end diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb new file mode 100644 index 0000000..eb528a4 --- /dev/null +++ b/app/controllers/user_controller.rb @@ -0,0 +1,11 @@ +class UserController < ApplicationController + + def new + @user = User.new + end + + def show + end + + +end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index de6be79..852623f 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,2 +1,5 @@ module ApplicationHelper + def music_by_type + pairing = TunesTakeout.top_limit(20) + end end diff --git a/app/helpers/home_helper.rb b/app/helpers/home_helper.rb new file mode 100644 index 0000000..23de56a --- /dev/null +++ b/app/helpers/home_helper.rb @@ -0,0 +1,2 @@ +module HomeHelper +end diff --git a/app/helpers/sessions_helper.rb b/app/helpers/sessions_helper.rb new file mode 100644 index 0000000..309f8b2 --- /dev/null +++ b/app/helpers/sessions_helper.rb @@ -0,0 +1,2 @@ +module SessionsHelper +end diff --git a/app/helpers/suggestions_helper.rb b/app/helpers/suggestions_helper.rb new file mode 100644 index 0000000..0e358dd --- /dev/null +++ b/app/helpers/suggestions_helper.rb @@ -0,0 +1,2 @@ +module SuggestionsHelper +end diff --git a/app/helpers/user_helper.rb b/app/helpers/user_helper.rb new file mode 100644 index 0000000..0147c3f --- /dev/null +++ b/app/helpers/user_helper.rb @@ -0,0 +1,2 @@ +module UserHelper +end diff --git a/app/models/food.rb b/app/models/food.rb new file mode 100644 index 0000000..eeccf93 --- /dev/null +++ b/app/models/food.rb @@ -0,0 +1,15 @@ +require 'httparty' +require 'yelp' +require "erb" + + +class Food + + + def self.yelp_find_by_business(id) + id = ERB::Util.url_encode(id) + data = Yelp.client.business(id).business + end + + +end diff --git a/app/models/music.rb b/app/models/music.rb new file mode 100644 index 0000000..9c5e935 --- /dev/null +++ b/app/models/music.rb @@ -0,0 +1,30 @@ +require 'httparty' +require 'rspotify' + +class Music + BASE_URL = "https://api.spotify.com" + ALBUM_PICTURE = "http://marcoscolamedia.com/wp-content/uploads/2015/12/Music-Album-Blank-.jpg" + attr_reader :item_id, :type, :name, :url, :image_url + + def self.find(type, id) + result = "RSpotify::#{type}".constantize.find(id) + end + + def self.user_info + data = HTTParty.get("https://api.spotify.com/v1/me").parsed_response + end + + def self.picture?(image) + if image.nil? + return ALBUM_PICTURE + elsif image[0].nil? + return ALBUM_PICTURE + else + image[0]["url"] + end + end + + + private + +end diff --git a/app/models/user.rb b/app/models/user.rb new file mode 100644 index 0000000..38e60bb --- /dev/null +++ b/app/models/user.rb @@ -0,0 +1,24 @@ +require 'httparty' + +class User < ActiveRecord::Base + + validates :uid, :provider, presence: true + + def self.find_or_create_from_omniauth(auth_hash) + # find or create a user + user = User.find_by(uid: auth_hash["uid"], provider: auth_hash["provider"]) + if user + return user + else + # no user found + user = User.new + user.uid = auth_hash["uid"] + user.provider = auth_hash["provider"] + if user.save + return user + else + return nil + end + end + end +end diff --git a/app/views/home/index.html.erb b/app/views/home/index.html.erb new file mode 100644 index 0000000..993e01f --- /dev/null +++ b/app/views/home/index.html.erb @@ -0,0 +1,49 @@ +

HELLO

+<% count = 1 %> +
+

Top Twenty Suggestions

+ + + + + + + + + + <% @top_twenty.each do |suggestion| %> + <% music = Music.find(suggestion["music_type"].capitalize, suggestion["music_id"]) %> + <% food = Food.yelp_find_by_business(suggestion["food_id"]) %> + + + + + + + <% count += 1 %> + + + <% end %> + +
Ranking MusicRelease Date
<%= count %> +
+ <% album_picture = music.images if music.type == "album" %> + <% album_picture = music.images if music.type == "artist" %> + <% album_picture = music.album.images if music.type == "track" %> + + <%= link_to( image_tag(Music.picture?(album_picture)), image_path( music.external_urls["spotify"] )) %> +
+ <%= music.name%> +
+
+
+
+ + + <%= link_to( image_tag(food.image_url), image_path(food.url)) %> +
+ <%= food.name%> +
+
+
+
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 509d1a2..8394221 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -2,12 +2,23 @@ TunesTakeout - <%= stylesheet_link_tag 'application', media: 'all' %> - <%= javascript_include_tag 'application' %> - <%= csrf_meta_tags %> + + + + + + + + - + <%= yield %> diff --git a/app/views/sessions/new.html.erb b/app/views/sessions/new.html.erb new file mode 100644 index 0000000..f82b32f --- /dev/null +++ b/app/views/sessions/new.html.erb @@ -0,0 +1,24 @@ + + + + + + Spotify Login + + + <% if flash.now[:danger] %> +
<%= flash.now[:danger] %>
+ <% end %> +
+

Welcome to Tunes and Food

+

Log in with your Spotify account

+ + <%= link_to '/auth/spotify' do%> + + Sign in + <% end %> + + +
+ + diff --git a/app/views/sessions/new2.html.erb b/app/views/sessions/new2.html.erb new file mode 100644 index 0000000..9cd9d05 --- /dev/null +++ b/app/views/sessions/new2.html.erb @@ -0,0 +1,44 @@ + + + + + + Spotify Login + + + <% if flash.now[:danger] %> +
<%= flash.now[:danger] %>
+ <% end %> +
+

Welcome to Tunes and Food

+

Log in with your Spotify account

+ + <%= form_for :session, url: sign_in_path, class: "form" do |f| %> + +
+ <% f.email_field :email, :placeholder => "Email" %> +
+
+ <% f.password_field :password, :placeholder => "Password" %> +
+
+ <%= f.submit "Log in" %> +
+ <% end %> +
+

Search for an Artist

+

Type an artist name and click on "Search". Then, click on any album from the results to play 30 seconds of its first track.

+
+ + +
+
+
+ +
+ + diff --git a/app/views/shared/_suggestion.html.erb b/app/views/shared/_suggestion.html.erb new file mode 100644 index 0000000..22e7c8f --- /dev/null +++ b/app/views/shared/_suggestion.html.erb @@ -0,0 +1,48 @@ +<% count = 1 %> + +
+

+ + + + + + + + + + <% result.each do |suggestion| %> + <% music = Music.find(suggestion["music_type"].capitalize, suggestion["music_id"]) %> + <% food = Food.yelp_find_by_business(suggestion["food_id"]) %> + + + + + + + <% count += 1 %> + + <% end %> + +
Ranking MusicRelease Date
<%= count %> +
+ <% album_picture = music.images if music.type == "album" %> + <% album_picture = music.images if music.type == "artist" %> + <% album_picture = music.album.images if music.type == "track" %> + + <%= link_to( image_tag(Music.picture?(album_picture)), image_path( music.external_urls["spotify"] )) %> +
+ <%= music.name%> +
+
+
+
+ + + <%= link_to( image_tag(food.image_url), image_path(food.url)) %> +
+ <%= food.name%> +
+
+
+
diff --git a/app/views/shared/_suggestion2.html.erb b/app/views/shared/_suggestion2.html.erb new file mode 100644 index 0000000..d1aabb1 --- /dev/null +++ b/app/views/shared/_suggestion2.html.erb @@ -0,0 +1,154 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + +
+ + + +
+ Febrero 13, 2016 +

+ Lorem Impsum + (Pagado) +

+

Ut enim ad minim veniam, quis nostrud exercitation...

+
+
+
+
+ + +
+
+ + + + +
+ + + +
+ Febrero 13, 2016 +

+ Lorem Impsum + (Pendiente) +

+

Ut enim ad minim veniam, quis nostrud exercitation...

+
+
+
+
+ + +
+
+ + + + +
+ + + +
+ Febrero 13, 2016 +

+ Lorem Impsum + (Cancelado) +

+

Ut enim ad minim veniam, quis nostrud exercitation...

+
+
+
+
+ + +
+
+ + + + +
+ + + +
+ Febrero 13, 2016 +

+ Lorem Impsum + (Pagado) +

+

Ut enim ad minim veniam, quis nostrud exercitation...

+
+
+
+
+ + +
+
+ + + + +
+ + + +
+ Febrero 13, 2016 +

+ Lorem Impsum + (Pendiente) +

+

Ut enim ad minim veniam, quis nostrud exercitation...

+
+
+
+
+ + diff --git a/app/views/suggestions/favorites.html.erb b/app/views/suggestions/favorites.html.erb new file mode 100644 index 0000000..e69de29 diff --git a/app/views/suggestions/index.html.erb b/app/views/suggestions/index.html.erb new file mode 100644 index 0000000..fa7479f --- /dev/null +++ b/app/views/suggestions/index.html.erb @@ -0,0 +1,147 @@ +
+
+
+ + +
+
+ +
+
HI + +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+

+ <%= form_tag(user_favorites_path(@user.id), :method => "post", id: "search-form") do %> + <%= text_field_tag :search, params[:search], placeholder: "Search Posts" %> + <%= hidden_field_tag :user_id, value: @user.id %> + <%= submit_tag "Search" %> + <% end %> +

+
+

+ + + + + + + + + + <% @result.each do |suggestion| %> + <% music = Music.find(suggestion["music_type"].capitalize, suggestion["music_id"]) %> + <% food = Food.yelp_find_by_business(suggestion["food_id"]) %> + + + + + + + <% count += 1 %> + + <% end %> + +
Ranking MusicRelease Date
<%= count %> +
+ <% album_picture = music.images if music.type == "album" %> + <% album_picture = music.images if music.type == "artist" %> + <% album_picture = music.album.images if music.type == "track" %> + + <%= link_to( image_tag(Music.picture?(album_picture)), image_path( music.external_urls["spotify"] )) %> +
+ <%= music.name%> +
+
+
+
+ + + <%= link_to( image_tag(food.image_url), image_path(food.url)) %> +
+ <%= food.name%> +
+
+
+
+ +
+
+

This is tab 2

+ + +
+

+ + + + + + + + + + <% @result.each do |suggestion| %> + <% music = Music.find(suggestion["music_type"].capitalize, suggestion["music_id"]) %> + <% food = Food.yelp_find_by_business(suggestion["food_id"]) %> + + + + + + + <% count += 1 %> + + <% end %> + +
Ranking MusicRelease Date
<%= count %> +
+ <% album_picture = music.images if music.type == "album" %> + <% album_picture = music.images if music.type == "artist" %> + <% album_picture = music.album.images if music.type == "track" %> + + <%= link_to( image_tag(Music.picture?(album_picture)), image_path( music.external_urls["spotify"] )) %> +
+ <%= music.name%> +
+
+
+
+ + + <%= link_to( image_tag(food.image_url), image_path(food.url)) %> +
+ <%= food.name%> +
+
+
+
+ + +
+
+

This is tab 3

+
+
+
diff --git a/app/views/user/index.html.erb b/app/views/user/index.html.erb new file mode 100644 index 0000000..5443330 --- /dev/null +++ b/app/views/user/index.html.erb @@ -0,0 +1,46 @@ +
+
+
+
+ + +
+
+ +
+
Pamela Anderson + +
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+

This is tab 1

+
+
+

This is tab 2

+
+
+

This is tab 3

+
+
+
+
+
diff --git a/app/views/user/show.html.erb b/app/views/user/show.html.erb new file mode 100644 index 0000000..ed1af6d --- /dev/null +++ b/app/views/user/show.html.erb @@ -0,0 +1,237 @@ +
+ +
+
+ + +
+
+ + +
+
HI + +
+
+
+
+ +
+
+ <%= link_to "", user_path(current_user.id)%> + +
+
+ +
+
+ +
+
+
+

+ <%= form_tag(suggestions_search_path(@user.id), :method => "post", id: "search-form") do %> + <%= text_field_tag :search, params[:search], placeholder: "Search Posts" %> + <%= hidden_field_tag :user_id, value: @user.id %> + <%= submit_tag "Search" %> + <% end %> + + <% if !params["suggestions_search"].nil? %> + <% @result = TunesTakeout.search_results(params["suggestions_search"]) %> + + <% count = 1 %> + +
+

+ + + + + + + + + + <% track = [] %> + + <% @result.each do |suggestion| %> + <% music = Music.find(suggestion["music_type"].capitalize, suggestion["music_id"]) %> + <% food = Food.yelp_find_by_business(suggestion["food_id"]) %> + <% album_picture = music.images if music.type == "album" %> + <% album_picture = music.images if music.type == "artist" %> + <% album_picture = music.album.images if music.type == "track" %> + <% @id_value = suggestion["music_id"]%> + + + + + <% count += 1 %> + <% if music.type == "album" %> + <% elsif music.type == "track" %> + <% track << music.id %> + <% else %> + <% end %> + + + <% raise %> + + + + + + <% end %> + + + + +
Rank TunesTakeout
<%= count %> " onclick="changeImage('<%=@id_value%>')" src="http://thumb7.shutterstock.com/display_pic_with_logo/1280533/200698931/stock-vector-most-listened-favorite-icon-200698931.jpg" value = "" width="60%" > + +
+
+
+
+ + <% end %> +

+ +
+ + + +
+

This is tab 2 + <% @favorites = TunesTakeout.favorites_by_user_id(current_user.id) %> + + <% count = 1 %> + +
+

+ + + + + + + + + + <% @favorites.each do |suggestion| %> + <% music = Music.find(suggestion["music_type"].capitalize, suggestion["music_id"]) %> + <% food = Food.yelp_find_by_business(suggestion["food_id"]) %> + <% album_picture = music.images if music.type == "album" %> + <% album_picture = music.images if music.type == "artist" %> + <% album_picture = music.album.images if music.type == "track" %> + + + + + + + <% count += 1 %> + + <% end %> + +
Rank TunesTakeout
<%= count %> +
+ + <%= link_to( image_tag(Music.picture?(album_picture)), image_path( music.external_urls["spotify"] )) %> +
+ <%= music.name%> +
+
+
+
+ + + <%= link_to( image_tag(food.image_url), image_path(food.url)) %> +
+ <%= food.name%> +
+
+
+ <%= food.name%> +
+
+ +

+ + + + + +
+

This is tab 3

+ <% track = track.join(",") if !track.nil? %> + + +
+
+
+ +
diff --git a/config/application.rb b/config/application.rb index 9b37a86..950edb6 100644 --- a/config/application.rb +++ b/config/application.rb @@ -6,8 +6,13 @@ # you've limited to :test, :development, or :production. Bundler.require(*Rails.groups) -module TunesTakeout +module TunesTakeoutWrapper + class Application < Rails::Application + + config.autoload_paths += %W(#{config.root}/lib) + config.autoload_paths += %W(#{config.root}/extras) + # 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/initializers/omniauth.rb b/config/initializers/omniauth.rb new file mode 100644 index 0000000..50883b9 --- /dev/null +++ b/config/initializers/omniauth.rb @@ -0,0 +1,4 @@ + # config/initializers/omniauth.rb +Rails.application.config.middleware.use OmniAuth::Builder do + provider :spotify, ENV["SPOTIFY_CLIENT_ID"], ENV["SPOTIFY_CLIENT_SECRET"] +end diff --git a/config/initializers/yelp.rb b/config/initializers/yelp.rb new file mode 100644 index 0000000..e556298 --- /dev/null +++ b/config/initializers/yelp.rb @@ -0,0 +1,11 @@ +YELP_CONSUMER_KEY = "ac7g1t3S2ra7hSKSzUnBJA" +YELP_CONSUMER_SECRET_KEY = "G5SXOND_2_fUW34keN447g5TofA" +YELP_TOKEN_KEY = "0R49YaxmEebNFcNdEimzhyRLg463crzi" +YELP_TOKEN_SECRET = "t84iDFoWTJXcXmT2JQg2naj4x_Y" + +Yelp.client.configure do |config| + config.consumer_key = YELP_CONSUMER_KEY + config.consumer_secret = YELP_CONSUMER_SECRET_KEY + config.token = YELP_TOKEN_KEY + config.token_secret = YELP_TOKEN_SECRET +end diff --git a/config/routes.rb b/config/routes.rb index 3f66539..ced09d2 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,6 +1,31 @@ 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". + root 'home#index' + get "/sign_in" => "sessions#new", as: "sign_in" + get "/sign_in" => "sessions#create" + get "/auth/:provider/callback" => "sessions#create" + get "/logout" => "sessions#destroy", as: "logout" + + post "/user/:id/search" => "suggestions#search", as:"suggestions_search" + + get "/user/:id/search" => "suggestions#search", as:"suggestions_result" + + # get '/v1/suggestions/search' => "suggestions#index", as:"search" + + resources :user, only: [:show, :index] do + resources :favorites, :controller => "suggestions", :only => [:index, :show] + end + + + resources :favorites, :controller => "suggestions", :only => [:index, :show] + + # resources :user, only: [:show] + # + # resources :favorites, :controller => "sessions" + + + # You can have the root of your site routed with "root" # root 'welcome#index' diff --git a/db/migrate/20160516235127_create_users.rb b/db/migrate/20160516235127_create_users.rb new file mode 100644 index 0000000..e1b6e50 --- /dev/null +++ b/db/migrate/20160516235127_create_users.rb @@ -0,0 +1,8 @@ +class CreateUsers < ActiveRecord::Migration + def change + create_table :users do |t| + t.string :name # could be a nickname from provider + t.timestamps null: false + end + end +end diff --git a/db/migrate/20160518000445_add_column_uid_provider.rb b/db/migrate/20160518000445_add_column_uid_provider.rb new file mode 100644 index 0000000..b88e56c --- /dev/null +++ b/db/migrate/20160518000445_add_column_uid_provider.rb @@ -0,0 +1,7 @@ +class AddColumnUidProvider < ActiveRecord::Migration + def change + add_column :users, :uid, :string, null:false + add_column :users, :provider, :string, null:false + + end +end diff --git a/db/schema.rb b/db/schema.rb new file mode 100644 index 0000000..6b6f820 --- /dev/null +++ b/db/schema.rb @@ -0,0 +1,26 @@ +# encoding: UTF-8 +# This file is auto-generated from the current state of the database. Instead +# of editing this file, please use the migrations feature of Active Record to +# incrementally modify your database, and then regenerate this schema definition. +# +# Note that this schema.rb definition is the authoritative source for your +# database schema. If you need to create the application database on another +# system, you should be using db:schema:load, not running all the migrations +# from scratch. The latter is a flawed and unsustainable approach (the more migrations +# you'll amass, the slower it'll run and the greater likelihood for issues). +# +# It's strongly recommended that you check this file into your version control system. + +ActiveRecord::Schema.define(version: 20160518000445) do + + # These are extensions that must be enabled in order to support this database + enable_extension "plpgsql" + + create_table "users", force: :cascade do |t| + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.string "uid", null: false + t.string "provider", null: false + end + +end diff --git a/lib/Tunes_Takeout.rb b/lib/Tunes_Takeout.rb new file mode 100644 index 0000000..bf4cfb2 --- /dev/null +++ b/lib/Tunes_Takeout.rb @@ -0,0 +1,40 @@ +require "httparty" +require "net/http" +# require "uri" + +module TunesTakeout + + BASE_URL = "https://tunes-takeout-api.herokuapp.com" + + + def self.search_results(search_word) + data = HTTParty.get(BASE_URL + "/v1/suggestions/search?query=#{search_word}").parsed_response["suggestions"] + end + + def self.top_suggestions(max_number) + data = HTTParty.get(BASE_URL + "/v1/suggestions/top?limit=#{max_number}").parsed_response["suggestions"] + data.map!{|suggestion| TunesTakeout.search_suggestions_by(suggestion)} + end + + def self.search_suggestions_by(id) + data = HTTParty.get(BASE_URL + "/v1/suggestions/#{id}").parsed_response["suggestion"] + end + + def self.favorites_by_user_id(user_id) + data = HTTParty.get(BASE_URL + "/v1/users/#{user_id}/favorites").parsed_response["suggestions"] + data.map!{|suggestion| TunesTakeout.search_suggestions_by(suggestion)} + end + + def self.user_suggestion(user_id, suggestion_id) + uri = URI(BASE_URL + "/v1/users/#{user_id}/favorites") + response = HTTParty.post(uri, :body => {"suggestion":"#{suggestion_id}"}.to_json, + :headers => { 'Content-Type' => 'application/json', 'Accept' => 'application/json'} ) + + if response.response.code == "201" + "favorite" + else + "not saved" + end + end + +end diff --git a/test/cassettes/TunesTakeout/returns_a_valid_RSpotify_music_id_and_music_type.yml b/test/cassettes/TunesTakeout/returns_a_valid_RSpotify_music_id_and_music_type.yml new file mode 100644 index 0000000..31127a4 --- /dev/null +++ b/test/cassettes/TunesTakeout/returns_a_valid_RSpotify_music_id_and_music_type.yml @@ -0,0 +1,2352 @@ +--- +http_interactions: +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/top?limit=20 + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:30 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '474' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/top?limit=20","suggestions":["Vz0KQY-RRwADboE-","Vz0KO4-RRwADbn9t","Vz0KNY-RRwADbn29","Vz0KQY-RRwADboEQ","Vz0KO4-RRwADbn9f","Vz0KO4-RRwADbn9c","Vz0KQY-RRwADboFP","Vz0KO4-RRwADbn9Q","Vz0KQY-RRwADboFN","Vz0KO4-RRwADbn9d","Vz0KO4-RRwADbn9x","Vz0KO4-RRwADbn9V","Vz0KO4-RRwADbn8Z","Vz0KO4-RRwADbn8x","Vz0KQY-RRwADboEq","Vz0KO4-RRwADbn9I","Vz0KO4-RRwADbn9U","Vz0KO4-RRwADbn85","Vz0KNY-RRwADbn2n","Vz0KO4-RRwADbn9b"]}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:31 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboE- + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:31 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '213' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboE-","suggestion":{"id":"Vz0KQY-RRwADboE-","food_id":"a-la-mode-pies-seattle","music_id":"1OYLLmDS0pJVFRbUo19vrG","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:31 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9t + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:31 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '221' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9t","suggestion":{"id":"Vz0KO4-RRwADbn9t","food_id":"taqueria-la-pasadita-seattle-3","music_id":"0jEsVskTgxfybttvO9gnLK","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:32 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KNY-RRwADbn29 + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:31 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '212' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KNY-RRwADbn29","suggestion":{"id":"Vz0KNY-RRwADbn29","food_id":"sweet-iron-seattle-2","music_id":"0cOpQTKJdCEzz2wplnnyP6","music_type":"artist"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:32 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboEQ + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:32 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '224' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboEQ","suggestion":{"id":"Vz0KQY-RRwADboEQ","food_id":"old-school-frozen-custard-seattle","music_id":"1hq33mOCO3eLxvgBl0leqP","music_type":"track"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:32 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9f + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:32 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '219' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9f","suggestion":{"id":"Vz0KO4-RRwADbn9f","food_id":"cactus-restaurants-seattle-2","music_id":"20OmjCaPoZZg3hQ9iOKmrq","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:33 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9c + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:32 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '213' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9c","suggestion":{"id":"Vz0KO4-RRwADbn9c","food_id":"el-taco-loco-seattle-2","music_id":"0qO38KC2CGDmNSOAb2rpzj","music_type":"track"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:33 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboFP + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:33 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '217' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboFP","suggestion":{"id":"Vz0KQY-RRwADboFP","food_id":"piroshky-piroshky-seattle","music_id":"13kFHFPF8dWNyK2yvgXf3S","music_type":"artist"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:33 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9Q + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:34 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '213' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9Q","suggestion":{"id":"Vz0KO4-RRwADbn9Q","food_id":"nacho-borracho-seattle","music_id":"4DWLyse4wDNthzOYvFZQfi","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:34 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboFN + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:34 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '226' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboFN","suggestion":{"id":"Vz0KQY-RRwADboFN","food_id":"emerald-city-fish-and-chips-seattle","music_id":"18nhNX9AEFPINp1txOsaJS","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:34 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9d + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:34 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '209' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9d","suggestion":{"id":"Vz0KO4-RRwADbn9d","food_id":"el-cabrito-seattle","music_id":"2rV6X8xj2EmDURLce7ZH0Y","music_type":"track"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:35 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9x + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:34 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '211' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9x","suggestion":{"id":"Vz0KO4-RRwADbn9x","food_id":"el-camion-seattle-13","music_id":"28CkJzoE5LBWJpzQr5g0f4","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:35 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9V + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:35 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '217' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9V","suggestion":{"id":"Vz0KO4-RRwADbn9V","food_id":"taqueria-el-antojo-seattle","music_id":"3i3f6NmMLCwSOn0rwzKa8y","music_type":"track"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:35 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn8Z + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:36 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '215' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn8Z","suggestion":{"id":"Vz0KO4-RRwADbn8Z","food_id":"bebas-and-amigos-seattle","music_id":"2IO61W1ZRIwpWUXiO6AAxJ","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:36 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn8x + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:35 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '223' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn8x","suggestion":{"id":"Vz0KO4-RRwADbn8x","food_id":"blue-water-taco-grill-seattle-14","music_id":"1pujwuePmCgDFQY32P5elo","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:36 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboEq + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:36 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '222' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboEq","suggestion":{"id":"Vz0KQY-RRwADboEq","food_id":"le-panier-french-bakery-seattle","music_id":"1YPtiR8vL7n29XpP0dTmGc","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:36 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9I + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:36 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '228' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9I","suggestion":{"id":"Vz0KO4-RRwADbn9I","food_id":"memos-mexican-food-restaurant-seattle","music_id":"4OpGuePj1YVgTIXi2WLHVn","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:37 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9U + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:36 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '216' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9U","suggestion":{"id":"Vz0KO4-RRwADbn9U","food_id":"malenas-taco-shop-seattle","music_id":"1mFWLJb6bVP4IroYrJVV5R","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:37 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn85 + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:37 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '229' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn85","suggestion":{"id":"Vz0KO4-RRwADbn85","food_id":"taqueria-costa-alegre-taco-bus-seattle","music_id":"4QB9QRThl5plfwJmcpFtcp","music_type":"track"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:37 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KNY-RRwADbn2n + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:37 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '222' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KNY-RRwADbn2n","suggestion":{"id":"Vz0KNY-RRwADbn2n","food_id":"crepe-cafe-and-wine-bar-seattle","music_id":"18XycAkvLpkbHoWqGCgIwN","music_type":"track"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:38 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9b + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:38 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '211' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9b","suggestion":{"id":"Vz0KO4-RRwADbn9b","food_id":"tacos-chukis-seattle","music_id":"0AyB84D5n6ISyfZMA84NML","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:38 GMT +- request: + method: get + uri: https://api.spotify.com/v1/albums/1OYLLmDS0pJVFRbUo19vrG + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:39 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAOybW2/iyBKA3+dXWDzsRcosfW93pNVRJmRynzAh96NV1O3u + Dp6A7TGGhFnNfz/GEOcCNjlmxcPCSwjd5ap2VX3VLmP//cFxarKj+t3bZBiZ + mrM5+VrbyGbixO8lvdHwf52/05F0zDwmJg5k57Yfd7KZ8Xg604vCxLfDTEk7 + SaLeZr0eRib4YzLxhxd262OVdbT9eNTkRHT7EQ68Znx1tx0MzmuZqp8bY0vt + 2NhXymTkv9I1gBN1vSJ9E02+zvSUCwWyO3bAXr+rOsZp+uZp6tk3mbmn4X7s + Z6OTNW2OZzeLz+2n89fYrwPpd2Rq5LYr43vz5OHa9lZtw6kdX43+nrdqE2kv + jIaxf9d+E4gkjURm/rft3x0oOHG2fjl2To0Xxro3tfLtzP7G9MHNdxzcfLn4 + PAF8/SL+tX7kZbIAMIAo4ZhjhMTY6ofivHln1oxysg5Pro+Ouo0WiA4uPp+q + 8xCKQbz7bOLOBLGZOGm81nel0Eh3r0h5pmaSP6UiXXlnXgeobUZBGw0xAvKU + 6bxaT7oaTwfpUuqZgrrHsSbAU0BB4TLDkEWuEpRJphCHBDBKMHZRnpkPvk7a + ExOvAvxsHIP3GicaMtfFTCCqhGssJkhBCaSSnGFkpDEEYWDxlPHURIFxRt5p + WykmPG2lBzAnDApDFUZaWmIMtVa4gFPuSY/NOPEXuZkzfNbuB9rEKnwchycK + o35Hxn6SJRqC2WBsOkb2zK2WyfioEQi1qanbKDae3/PDIBMaGhmPhZJYevcv + c3nhdKuPVf4ntLZnkj/BLx2/6yd/UpBXssR0X2XZ7CpdXqn/0Wr9omL/s1X7 + 3ZV7TvUuqeDVqnh2xuOEG/v//6nm2RHa73m3QbpQE49k4fNEP5ZJmmi34yAj + ISBG+ax5jDq+52dgWdnpmRczhaF+X6CzvKsDeHIa4sPm5xO47Xk7e59u7Fb8 + fM65uffEeJzJRSpzVZMAzxMrAjubTPkc+Obh9m2NifIa043wx4lUHSmjcFpc + XIKh9ChTUguPcyq5tRpQawSE1NXgWX92KjPjladVJvJ8xNucyqY3y9ybF881 + 0P9ioCFmjC4RaB6JU3jR8nsX4prAo+TSvTukfCGgC1S+BXqeWB7e3TgMB37w + q3PpJ23nwPT6vapkA5FeqcD0qskKSDwsUs4JRdxI6EHCXYyYcIV0WTHZqCLZ + ZX5ek70KZCOMwDLJxqTRuvpxf3Nj8PA6anfvGjF1Dxciu0DlW7LnieXh3Xe2 + ZfBr4rQSGWjnrG2cU+kHVeEWgnABMLTp3s1F1hYoQr3U78wTStlRuwQxwcVw + 44pwl7l6DfdKwJ22vYgtD2765VN//+vuPuPtg0HrvnfhGzbUC8FdoPIt3PPE + 8vBuBYF0ftsNnbPQ2fO7v1fesw3S2sPAAo4Q1FICD5N0n8aSc53u2Vpijakr + irEmFbEuc/Ia61XAGjJGlrlng73OiR+3zrn6AsHOEO58T+Seu1h7PVvlVHs9 + RywP75fQuZTDqjBbQLhCQDKpOdSu5RAQ5FEDXNdIizlgiCENYTHMtGprXeLa + NcyrAbNwuVgizGzgnZ3pk+4j3v024MNm/PCDosVgnq1yCuY5Ynl4T43sdIbj + xnqr41feotMdWXKhUoQt4kwxzij30v+kEkhZoCVXmogSqllVqkt8vKZ6Jajm + HC/zDjg6Of0K+0hx4Z0Hvv0W7O2dtq4XorpA5Vuq54nl4W2Eo6b6Mozj4Ybz + yTh7Mooq79iGeEa7wiLrKqVN2ktblDbSLtUAUqa50EBYxVAx27wi22WeXrO9 + EmwzutSuGtIj3b0cJFcH/iHv4wM7ONp/HC7EdoHKt2zPE3u+/PYDkww/jj6c + ZtgPdOV74VpxJbh0tQKMpG21QohxY/ToXhlK+x4JAWaKmmKw3Ypgl7l5DfYq + gI1QeiW+xEtx+ijAwePudWP/+EJJ+u07v2xIttjtstkqp26XzRHLw7szMPHQ + afnBXRrkRvUOW1BgoMLCcznhAEEhBTEeMkBQaFD6RWKPMl7y47WoiHWZk9dY + rwTWDIllYg0Oro8VpPuDvvr8A+7fHEmyvdNcrMOerXKqw54j9vJ22XEYmKHT + CB8q/7KFJZUyRde6EpH0WtuVymWulMh6AhPCXSZdj5cxDUHVBrvExWuoVwJq + SDhZ5k9b3RZ2v1+1701wd3lqHjx4Pjz8sthePVvl1F49R+y5wY59mzhbD9V3 + aYoQhxhjqTkljEPIraREWaVcArQSRLueTedLiK76jFmZf9dErwTRnAC2zLaa + tFT0ddgayBu43Rhckx9Nii8Xa6tnq5xqq+eI5eE9aTtH8mPDfGzIqki7FgFI + RHrVLThjFioPU09aV3AkGRfMGpcKDcs26aoPl5U5OE+pWvak+Oho+vS4fzB5 + xyPodzqTofFz5aPBJ6Hs/MJ+741gEiayM171h6fXK2a9ITTFwWhqs+hFjZ// + AwAA//8DAJ35z7pwNAAA + http_version: + recorded_at: Mon, 23 May 2016 03:43:39 GMT +- request: + method: get + uri: https://api.spotify.com/v1/albums/0jEsVskTgxfybttvO9gnLK + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:39 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAOxWXW/aSBR9769AftinpLbx2NhIVdUAm6RJABWSfqxWaDwe + wzTGtuyBBFX572ufMQaSQFG30r7sy5E19865d+6nf7xpNDQa+Yv5RK5SrjXa + DS0X8TTi2glEmRS5zMvzvxo/ipPijD9KnsU0miyyCBJ1XkjyNJEiXIFlJmWa + t3U9SXn8thK8ZclcV5Q6ceP8IRnfXX2cLr90vEGUfF1mVxqonk6UpVnGwx0y + moodrqVZ0eX7+ComEYDnsFJM5yoC4yQIGt3kIS4isRbW4VEG18eLTKigKa/a + Stre/7qnxt8qsksqIupHfDKn2T1fx1j78Ek7KfAWOC7xrAccACE9Oy+x8wF4 + DYS0A2nnK/Bbid0rIKRd8PQ6QHyP7kr88xKIu+cKYfeiDwTDBfy5HAFx9xI6 + 12C4Vt/QuYH1G5zcfCmxDw/78KcPW334M4T/Q+gPwTm8AEJ/CIYRXjqCDz1Y + H0GzA83xZyB8vgXPLXTOzxC9LryCxRu8+rKrVdFnSbrKxHT2rLRlUdtIZ9Mw + 7cbBMuggmSe/cHO4XQZ1M4lgq5e0Rcqg6xKzaRHTJoZrKINv9nfgkf1Xdrtu + fO/ld/n9ePoYrnwplwNvGl9fbUxMeZzxKjjK06OaseTO95GDpurEgypzOuW7 + iZnxMlnlkUOMuvWiHX8Kb1gQF67oINBNg5PQtn3T5y3q+z6hrutaxOF22LTM + ZtNuEctldrhO0IMI5KwysZPbjXHLONa43XRDi7sO4cy2nMBzCGkFzC6yya3A + dgPGmOGGzeCF8cLEHuMOOdI2ZZbHwyZpWrZTPN43Wy3qBhY1KDE9zwtDI6Qt + 36KvPHyrMutp+ImKso4bY8qSXGUoTdJFRDMhUWvwS8t4xGnOJwGVvO6EU9M8 + NR3thcIkzTgTuUhiqAZ0pXRkRtn9dkn/66rTFeX7JAxzLt8Zf0RiLuQ726hX + g+TznWJ7fe0dXn2/df1trcDfuwaPXoU/XYcHVuKvrUW8WVWeysD/6/G/W4/I + QCByNokXc59nZezNjWCRUVl07kS1jWd7BqmF/DGNBBMYWCGNcr4l2ds7x3UO + Glk3aYd5vfDjwBp89z53HsPBRWu5KaHa3DFNo0bDPsqaquqYn6kdGJiQFyNv + KfjD5Pn4TuvxPU+t00pLd5wWs0zTdQPTdm3DIS1OHM83iWPZ1AiMwPU916Ns + w4/XvJqxulGhsrnxvEshbh+KcN2iGsZoedter8S4+gWKF1FUHamhWx6ulfC8 + ZJE/U5SJpIiKWf+BbKZLOd7VengxVkpRe9+/zNM/AAAA//8DADjOeUjeDAAA + http_version: + recorded_at: Mon, 23 May 2016 03:43:39 GMT +- request: + method: get + uri: https://api.spotify.com/v1/artists/0cOpQTKJdCEzz2wplnnyP6 + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:39 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAIySS08DIRSF9/6KyaybzpuBLjVuNEZNujPGMDw6JBQIw1jb + pv9dhpkam1rTsOLAPd/hcvc3URSzL8eswvKjt7KLo0W096rXO6Od4NtBiVvn + TLdIEm2Ymk8Hc6LXCbZOdC5JybN5XT4+0Lv73S7fGKnU9gXE3ugwGxhcS6k3 + zP72by3jw1b1Us5GyWmH5aBlP5UrpiwLZW/Re1COdT+hsBEnmT6zKVZ3KVfw + ETS4/HtljVdH+DE1E6vWDRIo0ym2b9xJIB+HUOWzJMEgYYzAmpMM4SKlsGFV + A2nVVBDhiiJECSAoRRVs4slvI6hrJ0RoxDm8SK+FIw5oTVPAK8g5LvOSlFmG + cUZrDOq8zEqOSUFofQb3iAtwUF7JLpuMAlQjCAtEClBQAitMKkLyIYfPhWqW + FpT/8fABPX24wmsWME+i09EtVn5FSyv0+ElGm15iK1wY1dCW2G3NWDIOwnix + tyJo06wsxrPFpdk9fAMAAP//AwBXgrNaHgMAAA== + http_version: + recorded_at: Mon, 23 May 2016 03:43:39 GMT +- request: + method: get + uri: https://api.spotify.com/v1/tracks/1hq33mOCO3eLxvgBl0leqP + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:39 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAKRU226bQBB971cgntPAXljAb41bqVJTxVVi9abKWnZnzTaA + ybJ2HEX59+IFO3FqEqt93JnhzJk5Z7h/43k+L7Jl6Xsj7759bd8ze1fDJtin + T/rciuuCZwXMSm6uwTabkp+eP730vV99DawtmIoXs6UpmkfcNtPUC6vVnYPN + ra2bURAsaqhO+8SpWJSB6xfg76b6/YlkVn+dyg9fbq7vTPhj6jukh75RbkDt + YfFa70GtUIfWDMH1QFo6mFeKSj6Hft7dRDnoeW43QUaik220HXyPV8tKyKql + FDiQAIOkKEswi5QARXDEKeUJiWgEOMmymKhEhhHK/B3irZY2d21o2O/gEAmc + xkeToCIVWKIkxURKFmJGWYhoiKmkjGYpEpwkCVfqAAkSvkSCkaM5SEI4SriM + M0ESRmJgEjiETDAeYyEpjVRIMIoPLqKjsLNdxcvOsFc5eO9B6UpbvQJvvCgK + EFYvqq2Sh629NNoFewONXHI07EPnQp8bqxu7Z4v/PgAHGeDx+nwS07Rc1qQS + E/NtPq5W/3IBHcMhvGcn8GLRbsUfl2X7D/AmGv7eqWs3uFSXHQ3P1uv5+o/G + l7oRs6olAmaTQ11wafhG6lnpPti4mzGXgXVdaKGdQxUvGuijvVRaPlHK140R + jvf08t1nFLd+D0n8KPqAwMfJaw0X1wHKbwgpL8YXBM7Xq/lZERZwM3lscYyy + DqkZgnIwvawvlexEPStauPZclIJOVr9e1MuCG23dSIR0QQMrDbez57dd7267 + rMnbvirAWZZAhBhmBJEkIhDzGBFBSKh4lKUyxaEKKaCuoZvoqai0C2/N5fJd + 6XNnudRoaK0PfwAAAP//AwB1BQxQ6gYAAA== + http_version: + recorded_at: Mon, 23 May 2016 03:43:39 GMT +- request: + method: get + uri: https://api.spotify.com/v1/albums/20OmjCaPoZZg3hQ9iOKmrq + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:39 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAOxY23LaSBB9z1eo9LBPdtDM6EpVKmXAF2ywcbCdmK0tajQz + AsW6RRIm3pSr9mv2w/ZLVmoJAbbBLE5lX3hp4+nW6Z6e7tPS/HgnSTL17Ik/ + TB8iIUv18l95DzRx6iZpki//Lv3IVrI18T0VcUC94ST2QFOsZ5okClPXeQCQ + cZpGSb1WCyMRvC8V71no1wrImsZObkn3W0vt0T+/TNXBfWtALm9kgHrcKzyN + Y+EsgdHIXcK6RyVcsgqvRHI54Kw3CqhfJKBL4zvpOIx5GEiNOJwGM4t5isDr + bHkSu7BahlYvtPXVW3yU/ijSe09dj9qeGPqZSzFLtHzwSd7L5DXIq1w2DkFe + gARt4ziXzQOQHZCgbYK2eQtykMvWGUjQtgDnsAkSfvdvcnnUBgnPHhcS/J6c + gwSEE4in3QcJz7bBpgMIneI32HTBexdWul9yeQ4RnkM85+DrHOLpQfw9sO8B + Zu8EJNj3AKEPO+1DDIfgvQ+WTbC8+gwSYr4GnGuwOW5A9loQFXjswq7bLbnM + Pgujh9gdjZ/Ud5oVOBwnVpAmYUUxpNcLognHuvcmjN5iaVRd5vKFJpMnEQNb + 07QI1lXFUC1cuH63ujU3bMy87WtYufC/NmkvHAxGZHxpuRdnfvxt7mIkgliU + CSsi3ahLc+xkFTjAlC261sSnI7F8WGORH2C+lCWjakdvKZ4sGsaDLJQaANQM + qiuWYVKMKdOQgyhhGhGCmDYXtuVoBkOaojjO7ICmLk/HpYulU547J8qmzi2d + G5zo1CCCqqawHJVSG5sWtwXWMcdYow7CyH7mPHOxwrmubuhb5ZbAtkEY0VSE + bIcgi1gOIsxhmsAOQ4LplsnMFza+UJkVTV6N3UTqZxw2ElKHBvyfv/6Wsj/S + FWVh8lHal/puMPJEcXZRGE08GrspVCFkS46FJ2gihpymouqWfaTsE0V+ZjCM + YsHcxA0DMOX0obBJY8ruFov9zfVYKyA/ho6TiPSD8pvn+m76QVOqaZIKf6kM + X56U66flT52YC1Pz507OjafnZhN0zRTdbpLCxovCLI5hN1H/v4kKJ8DdhA2D + iW+LOM89mismMU2z9h0WvYMIUi210orvkecyFwjNoV4iFjQrO2iz/oF2rmnd + 00NbnN4cdTi5vZ0eeP2vYaNd1VDlbpPWKQhiFWQFNeubV8yqrjkA6pQaXlbz + Is7IU2plv2gwbxE5I8F7V0yHT6k+qqjej8h+aVUzFMsRhmo7KJtsQhg2xapi + Z+PNwIatUt00GTawac/xYWcvHl/VtWAyf+Jpy4K6vi7b1Qzb0eaONne0+R9p + 09I0hH8dbeL4Juhddq+D+MBnkZqy0AicwZtocwXkU9p8zWzhPVRkr6FeQqUj + L5wKLnXcOyF9dgOxLW9qDDmOwnSVYmJwlWMLce4YpqLSjDEtQ2CLI2QYq3kT + b8mb69K9480db+54c0vexCZB5Fe+b+KzK3TZD/mnu9bpTbsnxveN6W3zbcT5 + MuQz4nzFbMMP+G3JU2EaNSyiI2JouuUoQlM1Q+GWQkT2OmoojqJrqo34avIk + 25LnmpRXXSvD13z+tDa7swnK27pg4nnlUvHtX11VzJIQTpInhmmYUsgKqa7I + XrpIf8Y0uaq+6rLt8V8AAAD//wMAly1rlJcXAAA= + http_version: + recorded_at: Mon, 23 May 2016 03:43:39 GMT +- request: + method: get + uri: https://api.spotify.com/v1/tracks/0qO38KC2CGDmNSOAb2rpzj + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:39 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAOxVTU/bQBC991dEPgNef63j3EgChEKC1SSQUlXRendNtrUT + 13b4KOK/1352AkEJRe2hl16e7Jnxm7ezM+PHD42GxqJgGWuNVuOxeFu9T/OH + RJbG2r1X+26ZilgQyWnM0u8yz8qQLw3t8JO2V+AYOCqxfQS8AMLbPimxcwg8 + B8LbgbfzGXhdYvcMCG8XPEcdIJ6HlyUenwLx7UmFyNsbAMHQg57TIRDfniLm + HAzn1TNi+sjeh6U/KXEAhQPoGSDXAHp86PcR74PT7wER74NhiJMOoeEI2YeI + 7CBydAWE5jF4xog5aaN6XahCxj5OfdrVGl/r+sv7XKZzFk2XaZQ931nhyZJF + rsIHXNksz5OspeuLRM4PascBX8Q67lKn9512v6f4MlpMBv6FL8Jjdt7UwPRU + J5qlMtzgYonaoLo1KrZsF11NpARofhMUsxtZ99L6RDOpbmZ5aaQ22VtZi4Nv + 6CpUcTEvJOkg0U3HC5jwaBg6hnANKU1KmCU5t02XEY8KLg0ZCqqtGe+UyGd1 + mroG20RY5P0iXFsEAQ0DaXhNGRieYNKhVhCyJuFFco8y6rke2SaiSPOGCGq/ + W4MU3LOcwGaMC0uSohym7UrHIcK1m56kJg1tKgO2tRCVhHXbzVlcLQN/f3S5 + f726tu07YpkqGOtuacHZ2t10aDmNpbnK8o0e+OtuB6XuhnzSm3s3yWJye3bk + XvWazPHbf9DulcJdfJv9/nbQcz2ljNhcyHRbUZFvZ1Xhbe0+XH17/1f2v1zZ + mlAZn86XcSDTsu5GZVymLFeL+TTGZVDXsiw45H0SKa4w6iGLMllb6zFQ4sUU + aCpLOVpiPKT2R4MYhBQbZT1QO4bnfaOTp4x/18mPC6t51jE7J914MLw4DMw0 + +fntOcV7pgZM2S4q0NQj81bIemBGjC8aa8gqb7JIlhFLVY5TGU5lTOWtknfT + 13syWe/JOLH26yjdZaHlcdO2AovaxT/D4VSExCWGGxjEJMwjxLJcaVcJcagX + 10or62py4a4iX48tXK1dhX36BQAA//8DABpAqfWRCQAA + http_version: + recorded_at: Mon, 23 May 2016 03:43:39 GMT +- request: + method: get + uri: https://api.spotify.com/v1/artists/13kFHFPF8dWNyK2yvgXf3S + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:39 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAHyQMQvCMBCFd39F6Cyt1UU6OhRBkIKDgogEvdZgmoTLtVqK + /902qaKDjvfde+8e144YC+BOgIrLY4XSBixhbUc7bo0mkTc9CS5ExiZRpA2o + cFiEJ11GHElYiuLZNV2mWTo/b9fNatrUxS6fbYIu6DHub+RaSn0D/My/IOT9 + qCopxx6RJi57Fr+dBSgEZ9uzgyMv37sUN+KrUx0PteyvXi5HnF3KX0nJi+/j + ipfgbAvktWaZAK802lSSoyD3r4lj1Biv9W28sELh2FA48bvk1wMfTwAAAP// + AwDaJ3kYowEAAA== + http_version: + recorded_at: Mon, 23 May 2016 03:43:39 GMT +- request: + method: get + uri: https://api.spotify.com/v1/albums/4DWLyse4wDNthzOYvFZQfi + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:40 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAOycW2/bOBaA3+dXCHkY7AKdhhdRpAIMFqmdNmntXJpbm8Ui + 4OUwViNbri5OnUF/0P6FfZ0/tjLtOFfLWXngfREQnCTk0SF1xPMdUqL0xy+e + tyFjVfQv8/EQNryt2b8bb1xNmkdZnk2K/+n9UZaUZfAjh3Qg48sijV3NtLys + yYZJHtmxM9LL82G2tbmZDGHwdlbxVif9zanJTdo7Ohh9vw4/2l73Sy+BqPAp + zzacqZ9vpi31UrCPjMlh9MjWCM/MZYvszSxFxtmpVhrI/tQBO1lemCjJvBMZ + Xyupr+807l3kWr0rLtLIlc66tjWt3Vp8ij+9f03dO5JRLFUMl32ZXsOdoze2 + P2+8KeWpkycT+W7HyQMnXe27DxPZ2nay46Srbbna1lcnLyay/clJV9t2dnZa + Trq/j88m8v2ek+7YD1Pp2t3dd9JZ2HX92Tt20h2753Q6zkJn+rfT6brWu66k + +2Ui910P911/9l1b+64/h67/h07/0Nk83HXS6R86C8fuTI9dH3Zc68dOs+U0 + T86ddH0+dXZOnc6Hd857bdcr12LXnfVee2PmfZ0Mx2l01XsyvvNygLvL+bfW + 3z2CMPU6Mo8G5XDYjfKs/EdB/GxAtB5e1nmEROZBgGwUQ+10heDCZ4KGmGB3 + 2OODHofVK4NqErKbfvu8M87Av2nv573bg6+j9xdHNrpv4goGKcxOdtrTV0XY + xHa2yLgzMwuvSpW+vILHju7BxPmTosBH81CKH/Wn7I02g7Irm87AJoSMgTWB + H0LoY22IFb41NlTSBwtGcD8AIay6u0A3kcl7syacH543TtFrG7cIGwRWYkqA + Yqwp1pxIwyQmQQDIYKxCw4R41njZxILGA/+VbSvkc64s51JZLRBDilrMKReu + RwhBAFZozF848Qcjc4647p//ySItvaFMpVcMpNeCUnThR1k4kG+9z3Kge5DK + zDPgdf/8d1mevC15qMswGHvvijSN8mRKzo1hMixiWRa4QRq6shRikBlcGplP + G5wE0m+o/GEbzxQuhynoKIuSgVM1cjzVydOSvQ9jYeXhujk1+Y/E2gzy39Gv + cdSP8t8ZmieKHPqPRunLSbA6Ef6lyfBBQvxrk+KrE+PrkmNFgqyXJN2JT8ft + 9DI0yfL/lyzdFTBRpi8HRV9BOvE9vq8o0jJFJoPLaexghggJ5rXwYxhHOnK8 + szLO4EHNwgh6Xfy4cN7ktyf9/PyaDchtr99K5FdxfVH66m4MzZt7TehMAbHI + 5NzULG6Wqd1HTewdQpJOaBqXsdOS/cmM4l6xJOAogpvLp2lgOE8D/SH9baa1 + iTkYTsIQBYiVOQ9ZyhEQpMokoCUKBAusoYFF9/bdab147eYh61Tuj3gar656 + q8rV8/zWMLNhZsPM/5GZXFBK18dMxG/fX/+Ig/7pTdDfPeqfCv452luJmQtM + PmXmMrWHzDyRvSKtS0mByzmnVVyFgmnFMGHKMhpqi21QAtQC8WkglFlMSVKT + klXObSjZULKhZG1KMh+vkZIMFce76rpod0YXRwfHOLPqZl+tRMkFJp9Scpna + Q0ruRt+ScmZZTjELUHFSl5dGsxBDqJVvVRByFhpFsfDBYiklAIREC8I1LOYl + rcnLKjc3vGx42fCyLi+pj8UaV+J4J9bj5Fvekrf+cZHu/egUPhqvxMsFJp/y + cpnaPGpaSRxLtxA/hDSWtdfgUhktBEAQKEQUlRiBETKQGmygiCmX41paG4SL + aenXpGWVkxtaNrRsaFmXlkFAwjXOLgOcXo0j2lHnZ9vkFu3HZOdU9Fei5QKT + T2m5TG0eNWdJPIL0jff4d11mEiaxkT5nGmHLcKCxYUJJKzWzipLQN5JIhMRi + ZrKazKxydcPMhpkNM2syk6AQE7Q+ZvpHoxjFfiQ7X99ftWOSfM+zo08rMXOB + yafMXKb2cEW+naZyoKWpP71EmNhyHR4KQUOgiFDuG0ME5spqxcPA5xqRcuq5 + GJVBTVRWebhBZYPKBpW1p5coCNa4GGd7H64OBsre+ubjwbsQyPe9MPJXu3n5 + sslnNy+XqN1vQyogzWGyGC8G3gcZx5DWvn1pLWYESVQuvgVYxpDGVAnfL50u + uFCBDYW2Fioe9/C6ty8rHN0QsyFmQ8zaxCRrvX3Jrwb2dkd9aJ8BFnx0lObd + 5Gh3tY1EL5t8tpFoido8ajoy8zqxHMF0Z2bkbcd9WReZIHSomLVUaj/QLETC + ShCUYO4DWKyxCgyFqic+ou4+ogpPN8hskNkgsy4yQ4TROpHZ3j5AX/aOT3sd + 9J58HV2dGDqUqyHzZZPPkLlEbR412yXuBqX/yommnNzAlLXvX1oZMq0NME2I + oRQMVoB8Igwg7GsjtQlB+KJiUR7W5WWFmxteNrxseFl7r7rgfI3PfKh/fNDv + B+cXNwWTh6C2DzRPwpV4ucDkU14uU3t4//IzjOsyknEWUGoFCSnIQAYsMEC0 + 8hkuC6wsI8YvCYn9xYzEqCYkq3zbQLKBZAPJupAUGK9zczqP0/HRxcdRsn/9 + Zefj4b7qJvjqbLVJ5csmn00ql6g9WId7HRi7XZfdZJBDXVwKyZgNiNXU8pAh + HxQLueEAnEvKlNKCaBywiiU4rv0uT4WXG1w2uGxwWfu2JRPrfP/R37mNOnvf + jK8UtfmX/e90xD4Fqz0Tf9nks2fiS9TmUdMG76gArysHkErvBLyDeBSZ2s96 + qK9REFjBpCY01MAZlsDLlTlnAlOJtVAWNK+iZt13e6qc3VCzoWZDzfrURGiN + O4nIFZyhnYJeSYj3R2H7EFDvIluJmgtMPqXmMrX7qBnkKXitZCi9sftVl5fc + AtPWIKoE+IizchkeTD4aIgJJQ2KVJaGwwlTxsu67PVVubnjZ8LLhZW1eCsHW + +S7k9y7XSWt8eCraw/P28cF2Rks/rMLLBSafbSdaorb44fhZZGozEwFIZkWJ + TaWkKbFpCSEGccCMUi1JqKRCgGkFM+u+4VPl6nmwbrhvF02OZncfsBrMPl02 + KOJ4VjT90tGk8E7JnV9SZE8U8ySX8bTXv9x9MOylTwI+I8ykamvRp8d+/hcA + AP//AwDG1w18YVAAAA== + http_version: + recorded_at: Mon, 23 May 2016 03:43:39 GMT +- request: + method: get + uri: https://api.spotify.com/v1/albums/18nhNX9AEFPINp1txOsaJS + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:40 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAOydWVPjOhaA3++vcPEw89J90b501dQU0CyBALlhaWBqitKa + uMlG7ITl1v3v4ygQaJI4xLkwL+4HdZCOj+RjnU86lmX/+VsUramWHrSv04ee + W4u+Pf259iWU9NM4SZNR9n+iP7OcLM/dp67fUa3rQb8VSsb5WUnS66axfwhK + mmnaS76tr3d7rvP7U8HvptteH6tc56hydLp/Rx7/uDndrse7rI7rB+laUPXX + l3FNzb7zvyhTvfgXXUP4pC6Zp+9JU2yDnnyhjmqPDbDVd6od1WL3XPJimlDb + c/agH4fcpyZ9G5d+m39qf0X/HZt1qOKW0i133Vb9G/ds4LWN+tqXLD0L6eko + 3dwO6XFIQ+nm7ijd2ghpNaShdCuUbl2G9GqUfj8IaSj9HvRsb4U0/D45H6U7 + lZCGY3fHaah37yikQcNeaE/lJKTh2EqQqQYN1fHvIHMYaj8MOYcXo/QotPAo + tOco1HUU2lML7a8F+VrQWdsLaZCvBQ0n4UxPQhu2Q+0nQXIrSJ7+CGlo81nQ + cxZkdjeD9b6HVoUaD8NZV76vPVnfdHsP/bjRfNOv06xjh8uJAKTR/D6wFa7k + l2UPq73uABMfiu0rF1ob9My4nwKEMYGSMwnHtf023/He6XYjp16HotM8upAb + 2zu1ylEPpvfHido/eami4Tp992SWcUvf5YMj3ck85UHNkwPmirRVw/16SZpu + dJlGWYyAidO1fmlP1hpjO1lT1oOCdQeoMBIo6gg0HBGgFbbWUeoMdJwDQb30 + SJDnC3QX27T5VMUvF/alcgzeWzllynBKiFXQSyY1MNhiDrzO/sIeYKcxFhqy + qcqzKuZUzsg76ybUMSEBhN575BnVWnJAtNUCKS8cRdgyBWee+KueOYEgBNGl + U/0k6vqXXh0hAGj0NRr19fFV63V7g5bqx2nofzzk9V3LqcRdW5W6iWt8BeQr + hGtTAte9vjNxEnc7QdSqh7FM2lfm5nU3X7knro9V/rvrfeLSf4F/tOJ2nP6L + gskokbr2Lx1w9giYPwr+rSPhq9Hw7x0R3z0q5o+MOaNjsREynPC4K47NX46U + /7+RMlwBGyfmujNoa9cf2R6+FAz6Ks3c9nrsM4giLsWk1N33WrGJA8K8aiXu + Vclcz3mf3wQ3Xic/NyoPh3uNe3HQbg82mxf2eK+3O+lDk+re4zJjMMxTOVH1 + 5C+LxCbecho3MqNN8jPQDWN3d/0W5L0JyNs9/PVJat1yDayl2dhFGBv9phBT + yy1RWlDhJGYSUGnpi/5wFjMv1cRDg8jLEW/dMxR/y7PsZIQq0ViisUTjO9FI + JAL889DIH1TDksqA38aG71/4q+aeqW+vhMY5Kt+icZHYxFtOnIsuVVTNJoCF + CUkMlopCwinlAjLhMGRcKmE8h45hgCQ3zCg+n5CoICHzDFwSsiRkScilCYkI + RTMJmfYHfzsgsT9Hd02Y8NpdvNWq/tg7365ztRIg56h8C8hFYi9zx6aLtodx + K6p0kti6oox0TKMMhV5rRKUQkHOkDbbKCgQlhg5wiKAnej4jcUFG5tm4ZGTJ + yJKRyzISI0rZJ84iQYudnnWwPz7G6rbZ0EdDxzZWm0XOVjk1i1wg9jKLHJhm + pKJa8mCa3aKIxA4zwhnNAmsPslh7dAeVeQGlchplUTYWCgn/GsFvEUmKTiNz + LFwiskRkicglEYkBZYR8HiJxq9u5sKkc1qpnxwk4ueObCTtbbR45W+XUPHKB + 2MRbjrpRtTt0Ud21VdxJikJSGQ490tYLogHQShIAqPbaEcosZyxDqFKEy/mQ + pEXnkTk2LiFZQrKE5JKQRAjyz7wbSdr0FoMD3HzsHG5t7lz+jG9dZbW7kXNU + Ti3ULBCbeMumstGe0nFamI9YOeRwxkOAs0k691pCL7JZpPCKI6GcMQZqCnLu + RbKCfMwzb8nHko8lH5fkIxQEkdn3Ij8mzta3+zE9uY8FbVy2L+Kz+qPg1dXi + 7Nkqp+LsBWITbzmMkyTu/DO67A4K34h0jithnWMQIU7B6DYkJIBhw6ACnHrD + jNXKzAckLwjIPPuWgCwBWQJyWUBKDgCeCciPWKxh9UZFNfc39ux2/+5G/vSH + +vCsthIf56h8y8dFYhNn2VGtVpR2o3qcuGijkQXaheNsyY0WhgGtsSDKCW2R + 5EJZJaGwWchtEXHO2vmYFAUxmWfmEpMlJktMLolJRCCRn7emTerqpr/f02Kj + 1jjfNDv4j5/128vVwuzZKqfC7AViE2epOjV0UdyJtrptVZSQVBsOw7OmVFPn + tFTccw6xkZx7jzniHgLCxHxCyqKRdo6FS0KWhCwJuSQhocAI0U8jJOLn/uyh + muDTyx/ttFWvAnnMrlYi5ByVbwm5SOyFkN1OI8owaYs/Fak4VcQIoQmwkAnB + GeGOEJD9w0pjnIXc2lGbs1IDQUFA5hm4BGQJyBKQSwISEYLI7KWaD4m0yYY4 + rctteEUq7U6qk2EvPu2vFmnPVjkVaS8QmzjLj2a3X/hhSEaJtB4jB6n0gEHs + jWUGI4yzGaWFGmBpoQF5aCy6pybPtCUaSzSWaFwajQDTz7sJiX4euPs64sd7 + FUX6D73e3cHh1eNqc8fZKqfmjgvEJs5yFfeiSlqYjZ4qn00ULcdCeOgNA9QI + CBm2yDAvgSRYcUNy2Fh0N02ebUs2lmws2bgsGymDbHZc/TEr2MPG4+VdmjZE + 6/ZYDJubBwfbKVhtBXu2yqkV7AViL9tpujcP3eho9FKNx6KIRFQ6JSRQSBDm + EfeGKgakAySDo+QaICygwjgHkUU30+RZuERkicgSkcsiEnBOwechEm50zQ5k + O7d3cvvu53dz1T5McWUlRM5R+RaRi8Qm3rLdcibtxybabA0Kh9iSCUg49BZS + QymXSltouZXOWwI4NAqOnpL0OZtpYNHdNHkmLhlZMrJk5NKMJJLJmYz8kBA7 + ofIEacqO49ur5v7FrjLpcLX9hnNUToXYC8RePedj3Og5n9H/RQmpFaOGcGG5 + IERDz5AlyHLkGEOEa59F2QQqg3IIWXQrTZ6FS0KWhCwJuSwhIZLw8xaw2dWj + 6Vz5i91+Wr+qeSftRvXscLX1mdkqp9ZnFoi9WsAeuqiSZHPIuGOLItJ4Tujo + NT7WWkmZ1cRKZbL4GgHhOGaI0SwGz3vEBxbdTZNn4hKRJSJLRC6LyMyV+Wfu + puncIIMb7uTq4MbdHpD+ufIn96vdi5ytcupe5AKxl7dWdKNNVRiOBDkMAPIc + YMuIMTCLrqFxEiGCfRZaeyp0Fm7DHDgW3kmTY9sSjiUcSzguC0dACJv9Sp8P + ibCHB3vVo2ZydAHI1ePp8HhwiU2yWoQ9W+VUhL1AbOIse900OnGdJFipKCK9 + cp4yYzFhGjroGKQZHqExRELOhNNUYqlcXohddBdNnolLRJaILBG5JCIhJxDO + fqXPh4TYarBR/36e1hp3prq5UYXg5OxGrxZiz1Y5FWIvEHtB5KDT6D9EvtuP + DtVD07WLYhJ4ZTLjSkYFyyJrpoQWAnhmKSUGj3ZoW4SFzHvDeNGtNHlmnvjp + Wvg+w+jo55W6tc7Tx1Y6g1brKWv8NYdR5rNQOL/uIHkjmHZT1Rq3+rfn753M + +ubRFFxGRd/mfTnlr/8BAAD//wMAAzrzyUJpAAA= + http_version: + recorded_at: Mon, 23 May 2016 03:43:40 GMT +- request: + method: get + uri: https://api.spotify.com/v1/tracks/2rV6X8xj2EmDURLce7ZH0Y + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:40 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAOxVTW+bQBC991cgzmlhF7OAb/FXbDVxrTjOR6vKWtil3gYw + gnX6pfz3wgM7dRunUXvopZcnmBnevJ2dGb69MAyTJ+EmNY2u8a16274v9Zdc + 1sbWfdT67rhKeJjIZcqLW6nLOuSdYR6fm0cVLoAXNfaGwDdAeHsnNfaPgadA + ePvw9m+Ab2scvAbCOwDPsA/E8/yyxtEEiG9PGkTe8RQIhjH0TOZAfDtBzCkY + TptnxJwh+xksZ9c1TqFwCj1T5JpCzwz6Z4ifgXM2BiJ+BoY5TjqHhiGyzxHZ + R+TFFRCaF+BZIOakh+oNoAoZz3DqycA03rf1l5+1LDKeLDdFUj7cWeUp87VW + 8Rdc2UrrvOxa1jqX2avW8Spapxbu0qKdOxbc3Pay0TGXbLJgo8k1pSaY7ttE + q0LGe1w8V3tUd6RhKw/RtURKgOY3QSn/INte2p1oJdWHla6NrGMfba3Vwfd0 + VaoikVWSLJBYcchC5gSOw2QnpB6TceB3BLOJRwhlDnGE7dse8c0d4ycl9KpN + 09bgMRGO/XwRthdIIoXHQpdx6hLq0OqFeCymDo9dRuzYE0SGj4io0jwhgnWe + rcGPCKuOSj2bOr7rc8+XIY0k4UTEMZduQDiP49B+tBCNhF3bZTxtlkG/aqnt + pT2+ITaFgrHtlS6c3cMth4YzeaFVqfc64K97HZQWuSQiWmzk13Otx7mYbrjQ + dPQHzd4oPMS33+1PB+2qOSqkTHgmfq0okh0sKbzdwydrL+7/tv6X29oUqoyW + 2SYNZVHXnTTGTcG1WmfLFJdBXY80y61q9zxRkcKYxzwpZWtth0CJH2bAVGUR + oSdOev2Lq2rMbeLbD+N0YHSeNzi64NGtRYtLdu1//kiH6WBxfhpJ7+3YvnlI + 8ZyZAVN5iAo029/DEyG7cenJUhsjVa6MCx6tS2OSGcOslBkXvInM1/km4YXS + OCHxG2Mh75T8tPx5X+a7fZnmzss2yqp2pO3YAfPjkAvCKA+CyPWEtAM7jl2f + Updy6gnWJMQBf7jjoLFuxxjuJvLnGYare6jI998BAAD//wMATWHywZkJAAA= + http_version: + recorded_at: Mon, 23 May 2016 03:43:40 GMT +- request: + method: get + uri: https://api.spotify.com/v1/albums/28CkJzoE5LBWJpzQr5g0f4 + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:40 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAOxXW0/bWBB+76+w8rDalaA5to9vkaoVuQCBkE0JtNuuVtGx + PQ6n+FYfO0Ar/nvtOYmTAAkRrXZfeBlZM5+/mTNnLvb3N4rSYKFbRJP8LoWG + 0lIagsfTEBp7aMpyLnJR6f9RvpeaUge3OWQxCydFFqJF6kuLSJOcB3fIcpXn + qWg1m0kK8du54a2XRE1J2VT56GbWHg+z7miWz8ZZWzv9oqoNpLrfk56uMgjW + yFjK17hm6pxObOKbM3EfebaDYhbJDAyKsLhNk4W+zoz0tVAXGZf5kgG1pLW1 + +WD3yr8yqTPGQ+aGMIlYdg2L9DYOzht7pbxEeVHJdg/lXyjR2j6qZOcA5QAl + Wjto7XxC+bmS3VOUaO0iT6+DEp/HHyp52EeJ7x5JiX6PhyiR4Rjj6Y9R4rt9 + xAyQYSCfEXOG3s9Qc/Z3JYcY4RDjGaKvIcYzwvhHiB8h5+gYJeJHyDDGk44x + hh56HyOyg8iLjygx5kvkuUTMURuz18Wo0OMZnrrfbcyz7yXpXcanVw+qOi/L + Gq9TIypVUpZxIbgSMiUqBP9awKNi6OCV7r34/dFqSdQ9xf2VlmoUqYdY3SLE + MFTLtHTdkH7fbO7EHfuw6vqmZneuT74lPWPQ/niSfnufGVMS0KWLKcQZzDMl + Q92pKStusYkcaeYduRUSsSms39IVVDdXqUxK6j4M1+Ipo/H8uAyliQRN4jIA + U3NUD8yAUdPwDMskjDosYKqnAtjENQOLLm7ohvv51dzF2hUvnetkV+cAlGiW + zcAzfNPUwQtsSiCwTdP1AxdM4hqga1R95Lx0scG5SXf07VJWVoynMUtXfduw + iWMQSwfqWQyozgKHWJZpU+uJg6+UZj0VR0kMOSgXhVAumJcI5TwRTCj7ynhl + YaRJWoRl8edYfRrqMgiBCZj4LIe6RfZVdV+VrtcAkzQDjwuexAj12Z3E5Bnz + rleL/KfrsCkp/0yCQED+jvwW8ojn7wxSL40corXye3ohbl+Kv3QxrizHX7sg + d16S2xbllmX5soWJx5VlKJP/ujj/v8WJN+Bz4U3iInIhq3KvLg1FxvKyaSey + YzTqEKrXVrhNQ+5xHF8BCwWsWDb2zW5dg03cNA/7vcuT6LR/dpEdjrq+brQ/ + f1rWUO1ul4aRY2ETZU0175bnYM+MzyWwnHszDjeTh1M9rad6lOr7c1SzXCKE + gmtoDlF1vVxtlJiOrfrAdN8CJ9ApMN9RnSU/HuvJu6tbFiHLNx72K5pb21Jd + r6vXSfk6KV8n5S6Tsuxbaqj/4aQ8Ug/Tk/cnnnl8IHrHg2mnT76YPzcpn6Z8 + NCmfgT33ofl7J4mY0kmYyJVziPjtHy8dnr7vepoFOiWq44JrE90MwGRu4NvM + MT3PsWlA7IBtHp7aS4fnluzX/dvAD9HqbWPxmxHP/y7jIgznKvnZWikXIDxe + UogHwDzJGWZFq//qlqOn+kCWH9iPZk5lam36P7z/AQAA//8DALY7lbE6EgAA + http_version: + recorded_at: Mon, 23 May 2016 03:43:40 GMT +- request: + method: get + uri: https://api.spotify.com/v1/tracks/3i3f6NmMLCwSOn0rwzKa8y + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:40 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAOxVyVLbQBC95ytUOhO0zGjzDctmKWzjIMhaKddIGuEJ1pKR + jHEo/j3yk2wwwYRKDrnk8krT3X79pqe7ffdGUVQ2C+epqnSUu/q0Pk+qZcFX + xta91/pumJixcMYnKZPXvCpXIV8U9eBc3avxEnixwm4feAaEt3u0Qv8AOADC + 68PrfwJ+XmHvFAhvDzx9H4jv4P0KD0+A+O1Rg8h7PAKC4Rh6TgIgfnuCmAEY + Bs03YobIPoRl+HGFIygcQc8IuUbQM4b+MeLH4BwfAxE/BkOAmwbQ0Ef2AJE+ + Ii8+AKH5EjyXiDnqono9qELGIW590lOVr239+W3FZcZmk7mclQ9vVnvKIq9E + ssSTTauqKDualhc8228d+1GeanhLjfajwA8CSk67lZOzG90h51SoYLpvE00l + T7a4WCG2qG6Mhq3cRdcSiRg0vwlK2RVve2lzoykXV9NqZbSpvre21hff0lWr + iuKslqSBRDMtV6ecuw5PkjCkLnFC7oTMSKhr2CR0Dcc0rMh01Q3jQsTVtE3T + 1uA5EUR/vYjQpSQmnq5T06o/HGo7lhVz6nhU9yyLJg6hbq3zGRF1mhdE2PTV + GqyEEmrpccgYD7nlcqrrUV0cLzJCljiJ7bnEtUz72UI0EjZtl7G0WQYXLMpL + Jc+UrsxZvGDL9Qs+vy7mUsDYNk4Hzs7u/kP3qUxWoqy22uGvGx+UmtPvLo3x + 9fDq2zvv2Pou8+DId8d/0PmNwl18263/ctCmtHVFqymXpXIo81Q5yHD6tbzI + vLO+8HZ2X7N90v97/F/ucTUWZTTJ5mlYP3Bdd6MxziWrRJ5NUjyGqXuOa8LD + b4uZiAQWQCXnvDW2AyHiR/OgilJGzaT6B92xQUydmNbDaO0Yo9cNUSVZdK0R + QRJ7lA4H/iI4y3S5+HHK3OVDitfMD5jKXVSgaYfnpZDN6Az4Fc/iUjlLGkeR + F/MZk6LChcymvoXkN4IvJk/3ZrHZm2lB3rZRWmx4Ub0vPTMkSRIZMefM1bld + H936j0WPHct2iBcaTULc59GL0sa6Hlq4m8inEwtXZ1dN738CAAD//wMAkdCL + KqEJAAA= + http_version: + recorded_at: Mon, 23 May 2016 03:43:40 GMT +- request: + method: get + uri: https://api.spotify.com/v1/albums/2IO61W1ZRIwpWUXiO6AAxJ + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:40 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAOxWW2/aSBR+76+w/LBPSe3x3UhVlRCakAChITRpVys0Ho9h + Ft9qj5OgKv997TPGQBJTdrfSvuzLB5pz5jtnztU/3kmSjEOviGZ8lVJZ6khy + zuJ5SOUjEGWc5Tyvzn+XfpQn5Rl94jSLcTgrshAk4ryU5GnCWbAClgXnad5R + lCSl8fta8J4kkSIoFWtqZk+9L8v8Mrhbjf6k0+l8dTWQger5SFhaZDTYIcMp + 2+F6QDVd3sZXMzEfePYrxTgSEbjCWSj1WJCx+VrWREfYWx8XGRMxE051hLTT + /rhn6Q8R2AfMQuyFdBbhbEnXIZZPbuSjEqeAtxWe9gCvAUF6el5h9wRwAAjS + Lki7XwG/VXh2BQjSM+DpdQHh/+RLhZ/6gHD3XCDYvRgBAsMF+NOfAMLdPugM + gGEg/oPOEKwP4WR4X+EIPByBPyOwNQJ/xuD/GPTHwDm+AAT9MTBM4KUT8KEH + 1ieg2QXN2ztA8HkKPFPQOT+F6J2BV2BxCK/un8l19EmSrsrkLl5UNi9LG9Kp + qciQ9lVBF3J59PcvjreLoOkk5m81klykBHQdx0G24ZY/hivsvWtvvwObr2p1 + RetfW+gOfbvpP6Z303t2bZ2cPF1uTMxpnNE6NMLTgzqx4s7byIGmbsO9KhGe + 0920LGiVqurIMtSm8cIdf0pviB+XrihAoFgeIipxkaZbpoMC13UtXUUU2xrS + Tc3yLY/4lCJrnaBH5vNFbWIntRvjunqocRtbyLAppkRFSLVLa4TYmqGSwPCQ + iSyiapbuq/or46WJFuOWcaBt17Wp5ug2RcTX1cA3ENE8H7me5tjENmxPc3Xs + 6PSNh29VZjMK+9KALal0i0mSiwSlSVqEOGMcSg1CImc0pDinMx9z2vTBseoc + I1N+pTBLM0pYzpIYVH28Ejo8w2S5XdH/uugUQfkxCYKc8g/qbyGLGP9gqs1a + 4DTaqbW3V97+tfdLV9/W+vu1K/DgNfizVbhnHf6zlQhPFnUnEvD/avzvViNk + wGc5mcVF5NGsij3aCIoM87JxZ6JrEDI0V22k9CkNGWEwrwIc5nRL0to7h3UO + NLJiGMX3/Hbyefk9uLxEn0bDlXvTvW9qqDF3SNOI0dBG2VDVHfMztfZ5CeJy + 4j0w+jh7ObzTZnhHqX5caymB6lmWT3XdM5FhGo5peo6luVTDSPU107MtjKnp + kw0/PObNjDWNCiqbGy+7FMSdfQFuWlSGKVrdNtcLMa6/f+IiDOsjMXObFbEO + QlLkLxR5wjFEBTXfH5vpUk13sR1ejZVK1Gn7knn+CwAA//8DAAxQ3wjZDAAA + http_version: + recorded_at: Mon, 23 May 2016 03:43:40 GMT +- request: + method: get + uri: https://api.spotify.com/v1/albums/1pujwuePmCgDFQY32P5elo + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:40 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAOxYWU/jSBB+n19h+WGfYNLto+1EGq0g4chAMhkCLLOrVdR2 + t03P+MIH14j/PnbZcRLAJgrs8cBLyeoqf3V0XfbPD5IkU8/K/Fl6F3FZ6kly + IgLX4/IWsOJUJGlSnP8l/cxP8jN+m/I4oN4siz3glOc5J4nCVDh3gHKZplHS + 63TCiAcfK8ZHO/Q7JWQHKf7p/dXV9xv3ltvRcOyi8yNjJAPUw1ap6TLmzgoY + jcQK1jWu4JImvApJMMBpFwqoX0Zgx80S6YDGtqBzXh2dUt/8OItFGbPSqF7J + 7TU797D1tmHU95P7r+fncRicUTb+HN45ImFs8zA24K2GsV2oDuNAcDeURh83 + i2GzZw/S32VyXlPhUcvjM5/GP/g8TeWdE3krp2dATwu6uwf0C1Dg7h4UtL8D + 9BgocPvA7X8D+mdBB0dAgTsAnL0+UHienhd0fwgU3j0oKeg9HAMFhEOwZzgF + Cu8OQeYYEI7LZ5AZgfYRnIwuCjoGC8dgzxh0jcGeCdg/AfkJYE4OgYL8BBCm + 4OkUbNgD7VOQ7IPk6R9AweYzwDkDmYNdiN4ArAKNI/B6OJCr6NthdBcL9/JR + d0jzvIbrVBDWpGnKuScdxGEWMOmE22HMkifp0F8tjA0QJstpUReWYEt1JWeR + DbJEw8QghqlhhErFH5qrcc1aLBpoB0fZ95uMT/y+O9j/+k1VJjr3woUKlwcx + r4JVWrpWYRbYSRM4wFRV2SriU5evXtQlLy6vOCIaqkvRW7Ent8ZmQW5KBwA6 + iHLe1XWkO4xjjViagrHqaMjkhGtUIRhZqqYjMr+gG8HSy0rFyh0vlKtoXeUa + 5qZBdItiBTGF6hRZFrOonV8oNpluIlM3DEqVJ8pzFQ3KibamboU7tm2ojmJq + 3NEJIVzXcG6DgyzTyD02Chscp/uM40uZWXfGwzCVTqkdlpksR2GUeTQWKeQZ + xEOOucdpwmeMpryuhm2kbWMkPxGYRTG3RSLCAEQZvStl0pjaP5bT+dUZ1ykh + fw8dJ+HpJ/SbJ3yRftJRPSJS7q8k2vNbRPsIfNNtYmkUvu1WsfZm8dJ20TId + N9sySpf/mVC3bRyvCXXrUrEc6pcFmzaQDePc7nFV3GWiv28k/91GAjfARGLP + gsy3eFzEHi8YWUzTvEHOyu6k6cQwtJrLbyNP2AKGgkO9hC9xGgtnvbKBhtkh + pthne8qpi4np4vhoeBVfXC/V6lzdOhVTtuAmyBqqKpeXxJ4OJWlb+pJvdiL3 + WhqJ24VoPmWuBb+ZPZ6WUT0t/UjdrqQ6DsdIt3XHQAx3mZo/UKpapu0wlWmK + 1UWUEBUTssAHx569vbpoQWTxxuOKBXavLdhLbfF9Lknvc+l9Lr3Ppf/TXMKm + TtC/N5dQ/9457quadxF9pif0xuhbJyR91VxqgHw8l14SW/QlJ/dUOgyz+K0m + k2FSRWPU5MxSsEm4o6iOSjEjVOVqV2caUYjDuy2TSdlwMrWFuy5YGb6pirf1 + +bdxUP0TCTLPq47KL7D6g3EehDBLHgmmYUohKkr9K2LRa4pvvfJb8UmTKVi9 + pp8aD78AAAD//wMAPyEaqToWAAA= + http_version: + recorded_at: Mon, 23 May 2016 03:43:40 GMT +- request: + method: get + uri: https://api.spotify.com/v1/albums/1YPtiR8vL7n29XpP0dTmGc + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:41 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAOxWS2/bRhC+51cQPPQkh1y+KSAobNm11VgqY8mN06IQdpdL + aWG+Si7tCIH/e8hZipKsUBWaAL308kmYmf1mdnYe/PJGUVQckypZiHXOVGWo + qCVPlzFTB6AqBC9F2cj/VL7UklrGPgtWpDheVEUMGimvNWWeCR6tgWUlRF4O + NS3LWfq2VbylWaJJSs14uL8j1Tz9GLFnnDH7ShhorqtA9TKQnlYFi/bIcM73 + uJ5QS1f28bVMPASe40YpTmQGAs42si4r0s9GXBVc5koGM5TaYf+lXpS/ZEKf + MI8xidkiwcUj26RWPb9TBzXeA84bvLgC/A0QtBfXDY7OAW8BQTsC7egT4B8N + Xr4HBO0l8FyNAOH/7PcGfxkDwtlrieD3ZgoIDDcQz3gGCGfHYHMLDLfyP9hM + wPsEJJOHBqcQ4RTimYKvKcQTQPwB2AfAGdwAgn0ADDO46QxiuALvM7AcgeX8 + IyDEfA8892BzfQHZu4SowOMEbj2+VNvs0yxfF3y5elXRoi5pWR86spX69QdK + WD9nwUklWKiQtTLLeZpW+UFVjOBtB99PFOwWSddhPNxpMLXKKdi6pmn4uo6Q + ZdqGDOBNf1+e2JXNDNDQp0DwO+/p1k0N/yEP9HCeXNOtiyVLC9bmToZ6Uos2 + 3GUfOdC0/XnUJMFLtv9uK9a8ZSNydL3rzHgvnjoaGqZ1KBoQaJg6tkFMw/Nd + QkKi24g62HWojwzdDz0TMdt3PORvXuiZh2LVuth7661z82TnOmMuNYnFIt0M + mW1EFtJ933OQ7ZgUGxQzzHwakgPnZq9zxzrRN3N8bFqWR7CJQoRDw45shBxk + ua5uEUIsiyDsU/3w4tZOaXYzcoLTlCVYucnoI/wyHrKYsGKJlTNltrND8iyv + YlxwASVogKxgMcMlW4RYsK5hznT/TPfUA4NFXjDKS56lYBritbQRBaaPu5X+ + 3cWoScqfsygqmXin/xTzhIt39naPCJbs1eC3d+TxPflDd+XOvvyxO/Pkvdm3 + O4/sz3+3Q+Gqsg5l4v/fpf/dLoUXqJcbXaRVUrd9k3u0VVQFFnXDLmS3IMfw + kNlp2ec85pTD/IpwXLIdTW/PnNYx0MCa5cajcYFGwfL87/xXoU/vPsz9qKuh + zt0pzSJHQh9lR9V2yj+ZnTI/t9b14Hvi7Hnxerbn3WxPcvOstdIcarsOtm0P + +xYyHeKHuhu6NPIdE3uWZdfbjZgRJlt+uNs3H7DrWzDZnnjdtKAeHst317Eq + DNPmtL3Zl2n7vZRWcdyK5OhthBsjuF5Wla8MRSYwZAV1nyfbYdMMebkkDqZM + oxr2fei8fAUAAP//AwCaew1WEQ0AAA== + http_version: + recorded_at: Mon, 23 May 2016 03:43:40 GMT +- request: + method: get + uri: https://api.spotify.com/v1/albums/4OpGuePj1YVgTIXi2WLHVn + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:41 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAOya707jOBDAv+9TVD3pPpzYre3YjoO0OkFhoUC73QUK3OmE + bMehYdMkJGmht9rnuQe5F7t00j/8S4Gy4r5EoFHrmczYY8/PbpLv72q1ugzU + cHCejWNTr61Pv9bXQJNkfpqlk+Y/a9/zlrzN3GQmCWVwPkwC0BTtuSaNo8z3 + xuCkn2Vxut5oRLEJP0wVH3Q0aBQuG1ji/YOhE1xZ3rdRpzO+1CdnWasOrn6s + FZH6ifHuOJOxf8fXCE/dpWX+pp58F/wsNwrloEjAlp9k49qR1FE60y2SA/Fm + zcPEh9Zpp9YL7Xr54H7U/ioSO5J+IFVgzgcy+WZmKa5vfK2v5fIY5NFEbm6D + /AwStJs7E9ncAHkAErRN0DbPQP4xkVv7IEG7BX62myDh82FvIj+1QMK1O4WE + uLsdkOBhF/rTOgQJ17bA5gA8HBSfwaYN0dvQ0j6dyA70sAP96UCsDvSnC/3v + gn0XfHZ3QYJ9FzwcwkgPoQ/bEP0QLJtgeXQCEvp8DH6OwWZnE7K3Bb2CiG0Y + dWurPs2+juJx4l/0763sLF/axQJIap9kePNg8pswhWsP7ZcsmO7taZ/Xju/e + Kp36MNZga3FMmYOEIEiQIta78op7Zr1NqrlBP8c7Q9O9xGe9i6PWqU9ODnZ7 + 4SLEhQkTM81G0dVnFd/Ed1rmHNxMK2+pyUBemLsz0TeT2Zk0cYrmtRbc6U/e + G+2GeVca4KDhGk9Sx6ZKSYmEwtqhjEuMlM2opQljiiNXC282Q9e+m/WnIe5M + 6yK4hZ4bXCJMseMi5CpPaSqN5XpaW0Ihh9naEbZRWhDpPgiehygJzukzY1sc + YeEpz2iNtS3tfOi2sphHPcM4xZ7FOFeeIx8Z+K2lOaffTuSamu7L2ASmAF09 + juJhIBM/g7VGoC3J1TI1567MiusIwuw9wu8JqT8wOI8To/3Uj0IwdeW4sMkS + qb/dXtKvXnWNwuXvkeelJvuIfg38gZ99ZGi+FWRmcGexPb7NLd/qfup2d2vL + +7nb3rO3vqe2vyVb4GrbIAy5WHjFBFTb4f+3HcIMuH6qz8PhQJlkknu8UAwT + meWFe15UDSEWoXyuNTdx4GsfgJUlQ3NLUVo6zyscqOMGHgXta3HCN4f2OOGn + jt052Tjh8yU0D/ecminIUOZy7mpWME+YzcvlQNa0TLXMqZn/Z0kUL4xy7I18 + c31+H+HxHOGD2Ho/tWp4Ob0djixjC8c4PN81FHE5si2He0gbxJlgxBFi4R+G + 9Oi0zasVTBZX3C9VUK8vS/N8b6pAWYGyAuWzQekgG9E3AyXp7EXi+uj0KMXt + rhi1jzuW8/ngVaAscXkflE+ZLTlYrsBIil3CbGNTy3Edh1Fbc6oJophKQRGj + bn4A5kaickaSFRm5LMMVIytGVox8OSOxyP/ejJEo6w7o5R4Rh4cn8RePZ60v + exfmVYwscXmfkU+ZLcpFhrVNP/jbJL4MV2UkQS6Wmhkv/+mvNLFdYUtpmzzV + CjNsuLGwUpjyckZaKzJyWYYrRlaMrBj5ckayN/3Bzfe7IrAuSa+30RvTQdcM + toZB/1WMLHF5n5FPmS1+cJuLCz+8qO3IQN6MV4Uko0Yal2Jp5dKyJRWEcKMF + NgoTjJBhCktnfsf2EUjSFSG5LMUVJCtIVpB8MSSxEMx+u4MkF+1+eDXKNlOq + blpXX3tNv7uDXgfJx10+gOQTZvNy+aXnjxLT8zOznbWjvBSSnUSmq8LSSJcJ + jSyCXeZ4lnCYzNnoccoUFUiq/MRpnPyMWQ5Ltiosl6S6gmUFywqWLz9RUsLI + 250oCdsPumdjTqKgNW7v7argG74evO7O5OMuH9yZfMJsXi7bof4tMLV//5Gr + AlIpi7qK2pwTppHBmHPbc4xxHEsYobSlHWIRi5UDkq8IyGXprQBZAbIC5ArP + uG2Li7d7xu3sXqk48rNusxllYf+qKTqnl697xv24ywfPuJ8wu31bMq0FshZE + t+9avgyRXDPbo66DXEIcQT3hKmIzbAnlcY4oIg4mHAtVjkh71afbSxI8r9A6 + vCgER9XZS1/h9P2+cBgE06bitaJJ48wIhhcN03uGWZRJyIr9bvaO3WMv2D6g + ykS1Xva23o//AAAA//8DANpqo6avKwAA + http_version: + recorded_at: Mon, 23 May 2016 03:43:41 GMT +- request: + method: get + uri: https://api.spotify.com/v1/albums/1mFWLJb6bVP4IroYrJVV5R + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:41 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAMxW227bRhB9z1cs+FC0gG3eRVJAUNiqYlu5qb7IUYpCWC6H + 0iYkl10ubauBP6jf0R8ruUtRkmUpap0CeRlIM7NnZmfPzPDLC4Q0nIRlOhHz + HDTURVpBs2kC2oE0cUELUdT639CXSlPp4F4Az3AyKXkiLUpfWYqcCRrPJcpM + iLzo6jrLITtqDEeEpbqC1DuD22vbHn7034qPc3h11b/kRvBek1APByrSjEO8 + BoZzuoZ1azZwxTa8BolGEme3U4ZTVYHXOEenC21bFxVpoS45VdVS6XSVtbv9 + Wg/od1XSW0wTHCYwSTH/DIviascX2gHSTt5LKX/3jqV8I6XU96S+36vl6VUt + z97V8u2HWr47r+VQnhr2pRzX8nJUy+tLKcdakwdh+ZzT6ezR64rqeeXFLMO0 + 0bFIcCYoQRdAGI8qZqAe4znjWFCWoZhxJGaArjMqIEKXAgsoEM4idNM/RueZ + JErtiZPqHzlqD9wxnkSIlaKgESAWb6JslL8ni3jw3ec5XH3stldotNIqWpkT + 6Wt4bscLAifwTEdd78X2Btuzvepm1s301c2bQdgJR0PnnLMxH4xG7sUyxBQy + Ds3Dq0z36rUau9gGLmGaRtvpkuIprJNuBjURa1XHMdoGS9byqbIhUValoksA + PfQIscB1vcgJYpc4xPdxh3huYIcQ2BEmpht6cWAuHuiORmLWhFhj0jK4bewb + 3LasKKwiEOzGYUCCwPIdN7QJJqELfuhXGWDsxHgjeBViS/COs2dsbBDD9rEX + uyHBlhMAhHEcGA5xAEzPic0A+77hPXXxFWa2w27Air//QqdMoF8gRVeYsAL9 + GAMWR2gA8Of8J/VqOcvLBHMqJP8sVyo5JIALmERVJ7TNeGgah4avbThMcg6E + FlWXSdcIz5WP4Jh8XuX5s6moK8ifWRwXIF4aPyQ0peKla7TrQEC6xsCnV93u + dfdNV97K2vu2q2/v9bd9Be5Yg/9tFarL/j9FduYnrz33ZtT79QN8MnPDOb35 + 4/7s+UXegrtZ5K87Lluv7q/nFXn3dZtmV/z+Pr47ZC4RLcgkK9MQeJ2FuTSU + amNPVHtaHc+wgtYK93lCCZXjUvASVgxb6bMfeeTA0F1m+vP8rj+Gk+tPvMfO + xj0YT5eMXYTbhzdqBG2DbKEa0nzN7V9Oa3mmGre3FO4mj/dJ3u6TNLcPGy/d + 7MTg2ODFhhNY1Va1w8i3XdfEjkEIsTFxHN/yImuJL2/45Cu2NJYuyxOPOSzN + 3V1VbwmsyRFen3YXOzprvgCzMkkalRr4tXLhJK/HyuKRo2ACy6qY7SfRsvfq + 1aJW00bT1abuto+rh38AAAD//wMAnfMjW04NAAA= + http_version: + recorded_at: Mon, 23 May 2016 03:43:41 GMT +- request: + method: get + uri: https://api.spotify.com/v1/tracks/4QB9QRThl5plfwJmcpFtcp + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:41 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAOxVS3ObSBC+76+guOTiDYxmeOkWSX7GYhULJ5ukUqphZgiz + Boni4cem8t8DH1iOspbj2j3kspevoLv5+uue7uHLb4Zh8ixuctMYG1/at/v3 + VX1XqM44uA8G3zXXGY8ztcp5eaXqqgv5aJivLsyDFi+BUYeTQ+AfQHgnxx1O + XwHPgfBO4Z2+B37ocPYaCO8MPIdTIJ6Xbzs8OgXi2+MekfckBILhBHpOl0B8 + e4qYczCc98+ImSP7HJb5nx2GUBhCT4hcIfQsoH+B+AU4FydAxC/AsESlS2g4 + RPYlIqeIjN4BofkSPJeIOZ6gezOoQsY5qj6dmcanof/qtlblmmerpsyqhzNr + PVWxqXVyhyNL67qoxpa1KdT65eB4KTa5hbO0Ru/eex+u7sJoOn+r7pSIwrO/ + 3MoE09chUVqqZIeLF3qH6pr0bNU+uoFIS9D8JCjnn9UwS9uKUqU/p3VndJl9 + cG9tC9/R1aoSct1KskBiCe4nwh8ljPqJI6RgiecrJYLEj33JbJs6tuv4ZGRu + GW+0rNMhzdCDx0RQ+/kiWCwZZUTKgAjfpqPYJjzwhMNG1A8UcwmNPdt3HxPR + pnlChMuercFJRoQ6bsw8h4pEEc64w13lqEBQz5M84ZJQydijjeglbMduzfP+ + Moi42FTGTGXNrbo/vMdviqbUMA4zM4ZzvH/0MHgmL2td1TuT8J9nHpSW+3d+ + HumQhpNwOjucXsTx2eur6F8Mfa9wH9/u1D8d9NDVVBlHPG6yTVMZUdqspSpj + Xcrqny1G9r09hne8v9ThRP+/xn/lNW5KXYnVusljVXZ9J72xKXmtN+tVjsMg + XhBQCo+6LTItNPY/4VmlBuuwFVp+txSmrkqBmbhcMn9uB7ZtO8HDfu3Zpedt + Ul1ycWWxN5PgzUWUZk6RJTdnuSiOalE8pHjOEoGp2kcFmmGDngrZ7s8yVS/a + xWmSpHcUm6LJeKlrFETs3liqa61uVj/em8X23swL+vsQZRHCbdclgrq+K4Tn + S0lYwnzP8Zni0iaMCqraX0qfEPV8d6Sst95vLdx95I8rC9d4X0+/fgMAAP// + AwDLXS3zoQkAAA== + http_version: + recorded_at: Mon, 23 May 2016 03:43:41 GMT +- request: + method: get + uri: https://api.spotify.com/v1/tracks/18XycAkvLpkbHoWqGCgIwN + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:41 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAOxUTW/TShTd8yssL2BTsJ3xV7LLF22gCaFJKfCEovF4JhnF + X7WdlID474yP3ZSgpK96b8EGWTqy516fe+bOnPv9mabpNAo2sa51tO/q6/57 + Ue4yXi024bMmtqUyokHEFzHN17wsqpR/NL17pZ8pvAbOK+wNge+AiPbOK+x3 + gZdARPuI9j8BP1c4eAtEdACeYR+I99mHCl+PgPj3vEbUvZgAwXABPaMZEP+O + kHMJhsv6HTljVB9jZfyxwgkUTqBngloT6JlC/xT5U3BOL4DIn4Jhhp3OoGGI + 6jNk9pE5vwFC8zV4rpFz3kP3BlCFimPsejTQtS9N//nXkucJjRabPCoezkxF + iiwtpdjhyFZlmRUdw0gznrxqAq9YGhs4S8PcDszRZzeNnA/ELG/eX71/Owwc + HUw/mkKrnIsDLprJA6qtVbMVp+gaIhmC5l+SYrrkzV3a72jF5XJVVouubZ7d + r6qNH+hSqliYKEkGSAyn7QmPOF6L+CEVvqke2/FNj6h3JlzXtm1GXfe+tGK8 + k2G5aso0PTgmgphPF9EOfZ8K4fktQTxCFRLiCE5ankNth/mME+oy65gIVeYR + Ea79ZA0eaxMvsF3P427gCJfboWP5rbbtBi3OOQ1dpcYi7tFG1BL21y6hcT0M + ulkW8UJ7rvVoop6io3W1G7lcRjutn0YRZ6VMEy0V2mSTFzzfaVerXaxOtuE5 + PlQ2ucRic706CHZO31LcUZ3mpSzKg0vzv+0BSqP15pNz+22YftvOw3S5HszX + 63dj8R/8USs8xXdokMeT9gcwX/G64ceainonu4po5/TmmuP+O+P/5IzXQ1mw + RbKJA55XfbfqxU1OK2ctYhyGMnYbg0Bd+CySTGI2CBoVvFltbCDDX1ygyyJn + tYuvuz3TIqbVcrwHQ50wz9OsU+aUrQ3L/7hj3fX2MlsHF+nN7Xl/ObqbPJR4 + imvAVJyiAk1jmcdS9oaZrdK8TGTyQuvlaujV0SzNNhHNZYldkbrJWc63kt8t + fh+s2X6wxhl52WQZti8IIy0zsGlA267nOswWjFltjwvf8UTYttTUdWoH69jU + L8fq16v3zkW4zvzdtgh1TjX2x08AAAD//wMAMSbchsIJAAA= + http_version: + recorded_at: Mon, 23 May 2016 03:43:41 GMT +- request: + method: get + uri: https://api.spotify.com/v1/albums/0AyB84D5n6ISyfZMA84NML + body: + encoding: US-ASCII + string: '' + headers: + Accept: + - "*/*; q=0.5, application/xml" + Accept-Encoding: + - gzip, deflate + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Mon, 23 May 2016 03:43:41 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Keep-Alive: + - timeout=600 + Cache-Control: + - public, max-age=7200 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Methods: + - GET, POST, OPTIONS, PUT, DELETE + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Max-Age: + - '604800' + Access-Control-Allow-Headers: + - Accept, Authorization, Origin, Content-Type + Content-Encoding: + - gzip + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAAOxY3W7aShC+71NYvjhXSbG9Xv8gVUf8NaEBQkNC2hwdofV6 + DdvYxrVNElTlbfom58WOPQbza0CkRz0X3IzQzPib2dmZb9D+eCcIInGtiTeI + pwEThbIgRtwfukw8A1MY8yiOUv1fwo9Ek+jYS8xCn7iDSeiCJdMnligYx9yZ + AsoojoOoXCqNA+a/nxne07FXyiBLGLek1nf/Hn9F+uOlVWn3K/rokwhQr2dZ + pFHInBUwEvAVrCd5BhcV4c2QuA04u5184mUVaESEk0i45a47nRvz8mQB5+pJ + yLOiZVmVM2u5+HSvwt9ZZZ8Id4nlsoFHwkc2r7FYuRHPEnkH8jaV1QbIa5Bg + rV6kslYB2QIJ1hpYa19BPqSyfgUSrHXAadRAwu9eP5UfmyDh24tMQtzLDkhA + uIR8mj2Q8G0TfFqA0Mp+g08bordB0/6Syg5k2IF8OhCrA/l0If8u+HcBs3sJ + Evy7gNCDk/YghwZE74FnDTxv70FCzneAcwc+F1WoXh2ygohtOHWzLs6qT8fB + NOTD0Vprx0lvw3UqkqwKDY/4E+YW9EENbvNs+6dX/j8/g4AIn8hQuGF0HNrR + BkB3uR3yoeL20kyJk4BmjSthFcmapGEFG1ngd8WjeOAgpmNfkirTqqHWsa81 + e1PnoV0x1E67tQgxZH7IZlXKUj1oKlPsqAgcYGYjudPFI0O2ekMjlt5aqtJU + KZ9BdyWfJBtq+0kqJQAo6YqFbaoxycRYdixs6USliOpMpZIiy7qJGNVsk85v + 6Jnb8WgWYuWOF8GRdGhw21Bk1XAULFOLEOZQhSCEdWbKmqKYio511XFkLG0E + T0IUBNfUA2MbxHR0iRIjiSRLSGKWySxLYYhpmilTWbeRjGTb2XLwpdbMafGW + 0HHWxmIwDiYuCXkMPYZAFzKXkYgNbBKzfBLOJeNc0cUNh0EQMsojPvbB1SbZ + gIlxSOjjciu/udtKGeSfY8eJWPxB+sPlHo8/LCrOY+atNNn2vbd79/3S/be0 + A3/tHjx4F+7dhzt24nF7Ec6cdVx2A6f9+Pv2I9yAzSM68CeexcK09vLCMAlJ + nEzuIBsbWVMNQ82t7CVwOeXAVA5xI7ZkKRyew0YHJrmEq/GzWjMRVy/ZY1C/ + DuXm0xXPeygPd8jUZNxQBJlDzUdmj9sWpgR9wnVPnD0P1vk6yPnaC9D5zKtk + UokyihBVdKrLjiapOPmtaLZKHSwbjqVbSNcxW+DDKbZeVT6h4LL4Yn08wVze + Vdl8EZ3Y8cSOJ3b837Kj1v487RnXGu9/61+3pjZ6eApv7DexYwHkOjvuc1tl + R+Fc6HF/SNyxPzyWKYmuGypmRFIcx3RU1TJsW8OOYchYJ8hSbYRspim4mCmV + I5lyV5VPTPnbmfLsv6k1+twPnbv7yUdOGm33rv0lUi5x9e21LsDdrPV+x0Wt + tzxeHFns3cc+raXTWtq/ltTWt6Dhcem7f1Htk/CFBQapozetpQLI9bW0z21j + LTX9KA4nHvNj4h67mRBSJU2y9OTPuqkaEiaKJZvJ33nDUBQDSZRYtikRWSne + TOjIzbSr0PmoivAGkn6N5+9Y/uz90p+47kyVvZikyrkTHG88idYc43FaqjTp + /NlwwTLp20z2trNBL6mpXPQA+fovAAAA//8DAMZSyYWcGAAA + http_version: + recorded_at: Mon, 23 May 2016 03:43:41 GMT +recorded_with: VCR 3.0.3 diff --git a/test/cassettes/TunesTakeout/returns_a_valid_Yelp_food_id.yml b/test/cassettes/TunesTakeout/returns_a_valid_Yelp_food_id.yml new file mode 100644 index 0000000..f9891b7 --- /dev/null +++ b/test/cassettes/TunesTakeout/returns_a_valid_Yelp_food_id.yml @@ -0,0 +1,2510 @@ +--- +http_interactions: +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/top?limit=20 + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:08 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '474' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/top?limit=20","suggestions":["Vz0KQY-RRwADboE-","Vz0KO4-RRwADbn9t","Vz0KNY-RRwADbn29","Vz0KQY-RRwADboEQ","Vz0KO4-RRwADbn9f","Vz0KO4-RRwADbn9c","Vz0KQY-RRwADboFP","Vz0KO4-RRwADbn9Q","Vz0KQY-RRwADboFN","Vz0KO4-RRwADbn9d","Vz0KO4-RRwADbn9x","Vz0KO4-RRwADbn9V","Vz0KO4-RRwADbn8Z","Vz0KO4-RRwADbn8x","Vz0KQY-RRwADboEq","Vz0KO4-RRwADbn9I","Vz0KO4-RRwADbn9U","Vz0KO4-RRwADbn85","Vz0KNY-RRwADbn2n","Vz0KO4-RRwADbn9b"]}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:08 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboE- + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:08 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '213' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboE-","suggestion":{"id":"Vz0KQY-RRwADboE-","food_id":"a-la-mode-pies-seattle","music_id":"1OYLLmDS0pJVFRbUo19vrG","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:08 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9t + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:08 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '221' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9t","suggestion":{"id":"Vz0KO4-RRwADbn9t","food_id":"taqueria-la-pasadita-seattle-3","music_id":"0jEsVskTgxfybttvO9gnLK","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:09 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KNY-RRwADbn29 + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:09 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '212' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KNY-RRwADbn29","suggestion":{"id":"Vz0KNY-RRwADbn29","food_id":"sweet-iron-seattle-2","music_id":"0cOpQTKJdCEzz2wplnnyP6","music_type":"artist"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:09 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboEQ + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:09 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '224' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboEQ","suggestion":{"id":"Vz0KQY-RRwADboEQ","food_id":"old-school-frozen-custard-seattle","music_id":"1hq33mOCO3eLxvgBl0leqP","music_type":"track"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:10 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9f + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:10 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '219' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9f","suggestion":{"id":"Vz0KO4-RRwADbn9f","food_id":"cactus-restaurants-seattle-2","music_id":"20OmjCaPoZZg3hQ9iOKmrq","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:10 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9c + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:10 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '213' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9c","suggestion":{"id":"Vz0KO4-RRwADbn9c","food_id":"el-taco-loco-seattle-2","music_id":"0qO38KC2CGDmNSOAb2rpzj","music_type":"track"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:10 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboFP + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:10 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '217' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboFP","suggestion":{"id":"Vz0KQY-RRwADboFP","food_id":"piroshky-piroshky-seattle","music_id":"13kFHFPF8dWNyK2yvgXf3S","music_type":"artist"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:11 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9Q + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:11 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '213' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9Q","suggestion":{"id":"Vz0KO4-RRwADbn9Q","food_id":"nacho-borracho-seattle","music_id":"4DWLyse4wDNthzOYvFZQfi","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:11 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboFN + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:11 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '226' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboFN","suggestion":{"id":"Vz0KQY-RRwADboFN","food_id":"emerald-city-fish-and-chips-seattle","music_id":"18nhNX9AEFPINp1txOsaJS","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:11 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9d + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:12 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '209' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9d","suggestion":{"id":"Vz0KO4-RRwADbn9d","food_id":"el-cabrito-seattle","music_id":"2rV6X8xj2EmDURLce7ZH0Y","music_type":"track"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:12 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9x + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:12 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '211' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9x","suggestion":{"id":"Vz0KO4-RRwADbn9x","food_id":"el-camion-seattle-13","music_id":"28CkJzoE5LBWJpzQr5g0f4","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:12 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9V + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:12 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '217' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9V","suggestion":{"id":"Vz0KO4-RRwADbn9V","food_id":"taqueria-el-antojo-seattle","music_id":"3i3f6NmMLCwSOn0rwzKa8y","music_type":"track"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:12 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn8Z + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:12 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '215' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn8Z","suggestion":{"id":"Vz0KO4-RRwADbn8Z","food_id":"bebas-and-amigos-seattle","music_id":"2IO61W1ZRIwpWUXiO6AAxJ","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:13 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn8x + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:13 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '223' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn8x","suggestion":{"id":"Vz0KO4-RRwADbn8x","food_id":"blue-water-taco-grill-seattle-14","music_id":"1pujwuePmCgDFQY32P5elo","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:13 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboEq + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:13 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '222' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboEq","suggestion":{"id":"Vz0KQY-RRwADboEq","food_id":"le-panier-french-bakery-seattle","music_id":"1YPtiR8vL7n29XpP0dTmGc","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:14 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9I + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:14 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '228' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9I","suggestion":{"id":"Vz0KO4-RRwADbn9I","food_id":"memos-mexican-food-restaurant-seattle","music_id":"4OpGuePj1YVgTIXi2WLHVn","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:14 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9U + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:14 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '216' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9U","suggestion":{"id":"Vz0KO4-RRwADbn9U","food_id":"malenas-taco-shop-seattle","music_id":"1mFWLJb6bVP4IroYrJVV5R","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:14 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn85 + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:15 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '229' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn85","suggestion":{"id":"Vz0KO4-RRwADbn85","food_id":"taqueria-costa-alegre-taco-bus-seattle","music_id":"4QB9QRThl5plfwJmcpFtcp","music_type":"track"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:15 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KNY-RRwADbn2n + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:15 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '222' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KNY-RRwADbn2n","suggestion":{"id":"Vz0KNY-RRwADbn2n","food_id":"crepe-cafe-and-wine-bar-seattle","music_id":"18XycAkvLpkbHoWqGCgIwN","music_type":"track"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:15 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9b + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:15 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '211' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9b","suggestion":{"id":"Vz0KO4-RRwADbn9b","food_id":"tacos-chukis-seattle","music_id":"0AyB84D5n6ISyfZMA84NML","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:15 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/a-la-mode-pies-seattle + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="dd1de345c0a84aa2dac065932125a90f", + oauth_signature="ayMcN1zl74ijAPS1kPdNGmBo%2FEQ%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463974996", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:16 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d659393d3b0b9a310c31f88d81b7a674e1463974996; expires=Tue, 23-May-17 + 03:43:16 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=cc3e8bc96ed67489f420ca160cfd048e; Domain=.yelp.com; Path=/; HttpOnly + - yuv=ks8ce0SL8_i4dt1_tauaTlb_WJ1JiieSNrv2wl0H-xEZFt_O8fO9yTG4OX9rXkw2-yfeZ2x96br6GJIraAlGm3EvB7CnklF8; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:16 + GMT + X-Node: + - 10-64-176-53-uswest1bprod + - api_com + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:16 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - 10-64-16-235-uswest1bprod + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580adfd241baf-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": true, "rating": 4.5, "mobile_url": "http://m.yelp.com/biz/a-la-mode-pies-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/99493c12711e/ico/stars/v1/stars_4_half.png", + "review_count": 246, "name": "A la Mode Pies", "rating_img_url_small": "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/a5221e66bc70/ico/stars/v1/stars_small_4_half.png", + "url": "http://www.yelp.com/biz/a-la-mode-pies-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["Desserts", "desserts"], ["Bakeries", "bakeries"]], "menu_date_updated": + 1463849133, "reviews": [{"rating": 5, "excerpt": "always has a great selection + of pies. i can''t say i''m the biggest fan of the cream-based pies, but they + have my favorite strawberry rhubarb IN THE WHOLE...", "time_created": 1462229508, + "rating_image_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/f1def11e4e79/ico/stars/v1/stars_5.png", + "rating_image_small_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/c7623205d5cd/ico/stars/v1/stars_small_5.png", + "user": {"image_url": "http://s3-media1.fl.yelpcdn.com/photo/FpNCYQu1Wt2PhvPf_bblJw/ms.jpg", + "id": "FjWywtVqGv-rMKZeRGakWg", "name": "connie k."}, "rating_image_large_url": + "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/22affc4e6c38/ico/stars/v1/stars_large_5.png", + "id": "9cMGUKICziH1mqRoep5wOg"}], "phone": "2063833796", "snippet_text": "always + has a great selection of pies. i can''t say i''m the biggest fan of the cream-based + pies, but they have my favorite strawberry rhubarb IN THE WHOLE...", "image_url": + "https://s3-media1.fl.yelpcdn.com/bphoto/oBCbMgPJnxZVBfk2-5n9Yw/ms.jpg", "snippet_image_url": + "http://s3-media1.fl.yelpcdn.com/photo/FpNCYQu1Wt2PhvPf_bblJw/ms.jpg", "display_phone": + "+1-206-383-3796", "rating_img_url_large": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/9f83790ff7f6/ico/stars/v1/stars_large_4_half.png", + "menu_provider": "single_platform", "id": "a-la-mode-pies-seattle", "is_closed": + false, "location": {"city": "Seattle", "display_address": ["5821 Phinney Ave + N", "Phinney Ridge", "Seattle, WA 98103"], "geo_accuracy": 8.0, "neighborhoods": + ["Phinney Ridge"], "postal_code": "98103", "country_code": "US", "address": + ["5821 Phinney Ave N"], "coordinate": {"latitude": 47.6717, "longitude": -122.35467}, + "state_code": "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:16 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/taqueria-la-pasadita-seattle-3 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="1d8f41de3b6d6ca05bd270e5145d33a8", + oauth_signature="bcR5StckyEtgjfayADtgk%2FSl%2Fy4%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463974996", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:16 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d78d90a3366be80d6d9e7c230a4d34f831463974996; expires=Tue, 23-May-17 + 03:43:16 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=375b3eb997b055ff2fea57afe72fad25; Domain=.yelp.com; Path=/; HttpOnly + - yuv=_5WNuK0QKbvlqLquOSGcs3uHWcd-wgab64TOvRak9dERUeIQS_NhuezwW1DlaMRIuC270l71OwS8hcO7deaG3_QH-MAFkJkC; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:16 + GMT + X-Node: + - api_com + - web105-r10-sfo2 + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:16 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - extlb7-r10-sfo2 + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580aff8422aa3-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": false, "rating": 4.5, "mobile_url": "http://m.yelp.com/biz/taqueria-la-pasadita-seattle-3?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/99493c12711e/ico/stars/v1/stars_4_half.png", + "review_count": 86, "name": "Taqueria La Pasadita", "rating_img_url_small": + "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/a5221e66bc70/ico/stars/v1/stars_small_4_half.png", + "url": "http://www.yelp.com/biz/taqueria-la-pasadita-seattle-3?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["Mexican", "mexican"], ["Food Trucks", "foodtrucks"], ["Sandwiches", + "sandwiches"]], "reviews": [{"rating": 5, "excerpt": "5 stars for being ON + POINT: Price, flavor, freshness, quickness and location could not be better. + I ordered a chicken torta (my first torta) and absolutely...", "time_created": + 1457037917, "rating_image_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/f1def11e4e79/ico/stars/v1/stars_5.png", + "rating_image_small_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/c7623205d5cd/ico/stars/v1/stars_small_5.png", + "user": {"image_url": "http://s3-media4.fl.yelpcdn.com/photo/Zv01uYDjPuHFuRn08J5esg/ms.jpg", + "id": "KSe5jVHoLRKY5fXMP7EvCg", "name": "Abby S."}, "rating_image_large_url": + "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/22affc4e6c38/ico/stars/v1/stars_large_5.png", + "id": "LGlD8e65ybSUq1ee6wIq-w"}], "snippet_text": "5 stars for being ON POINT: + Price, flavor, freshness, quickness and location could not be better. I ordered + a chicken torta (my first torta) and absolutely...", "image_url": "https://s3-media2.fl.yelpcdn.com/bphoto/Lzhhm3cHuQ3dgXvFl0_TpA/ms.jpg", + "snippet_image_url": "http://s3-media4.fl.yelpcdn.com/photo/Zv01uYDjPuHFuRn08J5esg/ms.jpg", + "rating_img_url_large": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/9f83790ff7f6/ico/stars/v1/stars_large_4_half.png", + "id": "taqueria-la-pasadita-seattle-3", "is_closed": false, "location": {"city": + "Seattle", "display_address": ["2143 N Northgate Way", "In the 76 Parking + Lot", "Licton Springs", "Seattle, WA 98133"], "geo_accuracy": 8.0, "neighborhoods": + ["Licton Springs", "Haller Lake"], "postal_code": "98133", "country_code": + "US", "address": ["2143 N Northgate Way", "In the 76 Parking Lot"], "coordinate": + {"latitude": 47.7086187154055, "longitude": -122.332225888968}, "state_code": + "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:16 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/sweet-iron-seattle-2 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="9c4450cd6952ca0920964748993dfd1e", + oauth_signature="ygQ48McVWmOBPQxjnkJm6xO2W%2Bw%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463974996", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:17 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d49bac28d3377fcbd566912ad0984b7de1463974996; expires=Tue, 23-May-17 + 03:43:16 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=b928f69118ddbd4b94a1edef4a084c96; Domain=.yelp.com; Path=/; HttpOnly + - yuv=2ugL3tHLqUzTG4OhR9s-1yOcFVKVBYqTYOZOfwQCYCWMHWHV-HOguX6N_pJGy-tmQTsZPXu6qcZYInT90hcOLar3g-TwyWZL; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:16 + GMT + X-Node: + - api_com + - internalapi2-r3-sfo2 + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:16 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - extlb7-r10-sfo2 + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580b1ca282a61-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": true, "rating": 4.0, "mobile_url": "http://m.yelp.com/biz/sweet-iron-seattle-2?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/c2f3dd9799a5/ico/stars/v1/stars_4.png", + "review_count": 900, "name": "Sweet Iron", "rating_img_url_small": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/f62a5be2f902/ico/stars/v1/stars_small_4.png", + "url": "http://www.yelp.com/biz/sweet-iron-seattle-2?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["Belgian", "belgian"], ["Breakfast \u0026 Brunch", "breakfast_brunch"], + ["Waffles", "waffles"]], "menu_date_updated": 1454603144, "reviews": [{"rating": + 4, "excerpt": "REALLY GOOD WAFFLE. Very nice people.\n\nThe whole joint + seats 10 people, 2 seat configurations.\n\nA bit spendy.", "time_created": + 1463757953, "rating_image_url": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/c2f3dd9799a5/ico/stars/v1/stars_4.png", + "rating_image_small_url": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/f62a5be2f902/ico/stars/v1/stars_small_4.png", + "user": {"image_url": "http://s3-media3.fl.yelpcdn.com/photo/8633K5SkkUUIIy4aY2Xzww/ms.jpg", + "id": "F7Y2b3X5qfTshxqROkHCcg", "name": "Christine T."}, "rating_image_large_url": + "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/ccf2b76faa2c/ico/stars/v1/stars_large_4.png", + "id": "hd0jiO4ogMOIUz1DGDt3_g"}], "phone": "2066823336", "snippet_text": "REALLY + GOOD WAFFLE. Very nice people.\n\nThe whole joint seats 10 people, 2 seat + configurations.\n\nA bit spendy.", "image_url": "https://s3-media4.fl.yelpcdn.com/bphoto/dwsZbLq4bJTh0--Z-Is6bw/ms.jpg", + "snippet_image_url": "http://s3-media3.fl.yelpcdn.com/photo/8633K5SkkUUIIy4aY2Xzww/ms.jpg", + "display_phone": "+1-206-682-3336", "rating_img_url_large": "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/ccf2b76faa2c/ico/stars/v1/stars_large_4.png", + "menu_provider": "single_platform", "id": "sweet-iron-seattle-2", "is_closed": + false, "location": {"cross_streets": "Seneca St \u0026 University St", "city": + "Seattle", "display_address": ["1200 3rd Ave", "Ste 110", "Downtown", "Seattle, + WA 98101"], "geo_accuracy": 9.5, "neighborhoods": ["Downtown"], "postal_code": + "98101", "country_code": "US", "address": ["1200 3rd Ave", "Ste 110"], "coordinate": + {"latitude": 47.6074658149595, "longitude": -122.33559721902999}, "state_code": + "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:16 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/old-school-frozen-custard-seattle + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="e57601b3325b314c8f274261a6dd6bdc", + oauth_signature="ZNc1zB4bjX39%2FyxC3RSMLy7P0Xc%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463974996", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:17 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d0efe791fe020cf2fe4ce2330deb929ef1463974997; expires=Tue, 23-May-17 + 03:43:17 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=26006662b6ffde14c2d49dc5ae60a59a; Domain=.yelp.com; Path=/; HttpOnly + - yuv=EsQJJcioZOIAkL4eru0EGFDubbNnjVFzNHVnkk3nra3mHurrqaO3IWD1sjKe2idFW1O7WZxPivry_7wUyxnUhqov36WoUu0a; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:17 + GMT + X-Node: + - api_com + - web13-r2-sfo2 + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:17 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - extlb8-r11-sfo2 + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580b3bf4d2aa3-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": true, "rating": 4.0, "mobile_url": "http://m.yelp.com/biz/old-school-frozen-custard-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/c2f3dd9799a5/ico/stars/v1/stars_4.png", + "review_count": 446, "name": "Old School Frozen Custard", "rating_img_url_small": + "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/f62a5be2f902/ico/stars/v1/stars_small_4.png", + "url": "http://www.yelp.com/biz/old-school-frozen-custard-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["Ice Cream \u0026 Frozen Yogurt", "icecream"]], "reviews": + [{"rating": 5, "excerpt": "Came in on a Monday night! My friend and I were + the only people there. We got a \"Muddy Buddy\" to share.\n\nThe Muddy Buddy + features a brownie, two scoops of...", "time_created": 1452059845, "rating_image_url": + "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/f1def11e4e79/ico/stars/v1/stars_5.png", + "rating_image_small_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/c7623205d5cd/ico/stars/v1/stars_small_5.png", + "user": {"image_url": "http://s3-media1.fl.yelpcdn.com/photo/PwEnw7C6BDD7vD8uMFLr9A/ms.jpg", + "id": "OwacDy9M5SuixTOaXyvjIQ", "name": "Jessie Y."}, "rating_image_large_url": + "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/22affc4e6c38/ico/stars/v1/stars_large_5.png", + "id": "ohVyja9ZBpYTIhriFOU_2w"}], "phone": "2063242586", "snippet_text": "Came + in on a Monday night! My friend and I were the only people there. We got a + \"Muddy Buddy\" to share.\n\nThe Muddy Buddy features a brownie, two scoops + of...", "image_url": "https://s3-media1.fl.yelpcdn.com/bphoto/sscoy1-vX8AirNdO8-v-7g/ms.jpg", + "snippet_image_url": "http://s3-media1.fl.yelpcdn.com/photo/PwEnw7C6BDD7vD8uMFLr9A/ms.jpg", + "display_phone": "+1-206-324-2586", "rating_img_url_large": "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/ccf2b76faa2c/ico/stars/v1/stars_large_4.png", + "id": "old-school-frozen-custard-seattle", "is_closed": false, "location": + {"city": "Seattle", "display_address": ["1316 E Pike St", "Capitol Hill", + "Seattle, WA 98122"], "geo_accuracy": 8.0, "neighborhoods": ["Capitol Hill"], + "postal_code": "98122", "country_code": "US", "address": ["1316 E Pike St"], + "coordinate": {"latitude": 47.614356, "longitude": -122.314613}, "state_code": + "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:17 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/cactus-restaurants-seattle-2 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="8bcdf6138b68b935a5685d4d55ee808c", + oauth_signature="PHRmpuKmho3wsuMrp0ePqyNAGwQ%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463974997", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:17 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d917ead919de676ecdbfe4cce56ccb36d1463974997; expires=Tue, 23-May-17 + 03:43:17 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=88920fed16778b15d48eca3968fe296e; Domain=.yelp.com; Path=/; HttpOnly + - yuv=ztssCRr2uHtweMhI3oUZECetUc5wJlvTVqWPbnjAwEEGe8uV46MHgI56Y9lHCKdzvS0pFpbxg7ugdi3ZH6-p9iFjnB80cxNC; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:17 + GMT + X-Node: + - 10-64-147-195-uswest1bprod + - api_com + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:17 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - 10-64-16-56-uswest1bprod + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580b61ce41b97-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": true, "rating": 4.0, "mobile_url": "http://m.yelp.com/biz/cactus-restaurants-seattle-2?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/c2f3dd9799a5/ico/stars/v1/stars_4.png", + "review_count": 510, "name": "Cactus Restaurants", "rating_img_url_small": + "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/f62a5be2f902/ico/stars/v1/stars_small_4.png", + "url": "http://www.yelp.com/biz/cactus-restaurants-seattle-2?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["Tex-Mex", "tex-mex"], ["Mexican", "mexican"]], "reviews": + [{"rating": 5, "excerpt": "This is by far the best place to grab fresh Mexican + food in West Seattle. Also, out of any place in Seattle proper, this is the + best view. No matter where...", "time_created": 1462942411, "rating_image_url": + "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/f1def11e4e79/ico/stars/v1/stars_5.png", + "rating_image_small_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/c7623205d5cd/ico/stars/v1/stars_small_5.png", + "user": {"image_url": "http://s3-media1.fl.yelpcdn.com/photo/M2IpNAx0SmrdSQPDtFho3w/ms.jpg", + "id": "0XZ4Ro6zXrHaPB8V2_J8gw", "name": "Jorden D."}, "rating_image_large_url": + "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/22affc4e6c38/ico/stars/v1/stars_large_5.png", + "id": "VS6MFLLvXWnpEeBsNSC8-Q"}], "phone": "2069336000", "snippet_text": "This + is by far the best place to grab fresh Mexican food in West Seattle. Also, + out of any place in Seattle proper, this is the best view. No matter where...", + "image_url": "https://s3-media4.fl.yelpcdn.com/bphoto/Z6SzlCzWEAk_AKJU2aAQkg/ms.jpg", + "snippet_image_url": "http://s3-media1.fl.yelpcdn.com/photo/M2IpNAx0SmrdSQPDtFho3w/ms.jpg", + "display_phone": "+1-206-933-6000", "rating_img_url_large": "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/ccf2b76faa2c/ico/stars/v1/stars_large_4.png", + "id": "cactus-restaurants-seattle-2", "is_closed": false, "location": {"cross_streets": + "S 62nd Ave \u0026 S 63rd Ave", "city": "Seattle", "display_address": ["2820 + Alki Ave SW", "Alki", "Seattle, WA 98116"], "geo_accuracy": 9.5, "neighborhoods": + ["Alki"], "postal_code": "98116", "country_code": "US", "address": ["2820 + Alki Ave SW"], "coordinate": {"latitude": 47.5782800784475, "longitude": -122.413087476886}, + "state_code": "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:17 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/el-taco-loco-seattle-2 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="95af70b2352879ebc6c77358e32fb7a3", + oauth_signature="Gb%2FsMwjUruhB%2F395pJBcOFY4l1s%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463974997", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:17 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d73d8b270f037126ba07c834f7b2134b61463974997; expires=Tue, 23-May-17 + 03:43:17 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=335d2986dd2dbcc5171c092bc4db248c; Domain=.yelp.com; Path=/; HttpOnly + - yuv=3TR7HiKmICI_mJVoHkoNBAx1OzWi-IwTvnjS4J9HjvtDN3SfeddHEBzTJpBqr9U4EkJzVCRK_tqNe2dDeVTa9zWaQAcZ0e5M; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:17 + GMT + X-Node: + - api_com + - web54-r5-sfo2 + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:17 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - extlb7-r10-sfo2 + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580b7c8430c47-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": true, "rating": 4.0, "mobile_url": "http://m.yelp.com/biz/el-taco-loco-seattle-2?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/c2f3dd9799a5/ico/stars/v1/stars_4.png", + "review_count": 34, "name": "El Taco Loco", "rating_img_url_small": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/f62a5be2f902/ico/stars/v1/stars_small_4.png", + "url": "http://www.yelp.com/biz/el-taco-loco-seattle-2?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["Mexican", "mexican"], ["Food Trucks", "foodtrucks"], ["Sandwiches", + "sandwiches"]], "menu_date_updated": 1456382446, "reviews": [{"rating": 4, + "excerpt": "Checked in at their new location on NW 80th Street. Same great + food, but no more outdoor dining room; just one exposed table.", "time_created": + 1461097840, "rating_image_url": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/c2f3dd9799a5/ico/stars/v1/stars_4.png", + "rating_image_small_url": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/f62a5be2f902/ico/stars/v1/stars_small_4.png", + "user": {"image_url": "https://s3-media4.fl.yelpcdn.com/assets/srv0/yelp_styleguide/cc4afe21892e/assets/img/default_avatars/user_medium_square.png", + "id": "msGuL2ucfSzUOlYnR8x0WA", "name": "Randolph F."}, "rating_image_large_url": + "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/ccf2b76faa2c/ico/stars/v1/stars_large_4.png", + "id": "j6-m7YR13wRX-yLj230JWg"}], "phone": "2063715204", "snippet_text": "Checked + in at their new location on NW 80th Street. Same great food, but no more outdoor + dining room; just one exposed table.", "image_url": "https://s3-media2.fl.yelpcdn.com/bphoto/mbxEr9GkyXJnBeqDgVRV5A/ms.jpg", + "snippet_image_url": "https://s3-media4.fl.yelpcdn.com/assets/srv0/yelp_styleguide/cc4afe21892e/assets/img/default_avatars/user_medium_square.png", + "display_phone": "+1-206-371-5204", "rating_img_url_large": "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/ccf2b76faa2c/ico/stars/v1/stars_large_4.png", + "menu_provider": "single_platform", "id": "el-taco-loco-seattle-2", "is_closed": + false, "location": {"cross_streets": "80th St \u0026 77th St", "city": "Seattle", + "display_address": ["7758 15th Ave NW", "Phinney Ridge", "Seattle, WA 98117"], + "geo_accuracy": 9.5, "neighborhoods": ["Phinney Ridge", "Ballard", "Loyal + Heights"], "postal_code": "98117", "country_code": "US", "address": ["7758 + 15th Ave NW"], "coordinate": {"latitude": 47.6867944892581, "longitude": -122.376731641138}, + "state_code": "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:17 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/piroshky-piroshky-seattle + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="d5e00cb2746c7b31d8e49d8bd2b5b58a", + oauth_signature="rYRHacjOYPNC9G6z9346VO05TR0%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463974997", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:18 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d73d8b270f037126ba07c834f7b2134b61463974997; expires=Tue, 23-May-17 + 03:43:17 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=3802a3b1cb772324d0b7bb30850a5daf; Domain=.yelp.com; Path=/; HttpOnly + - yuv=ZMWNrsvpRUK-yKNUJ5yPMo7wa0wFZRZEtQb8oS0r0v7vPtIb-bFKR90BAq_XPNcDy8IIDIMnb82pYWGIzaMcdKMeVgnC1ytt; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:17 + GMT + X-Node: + - api_com + - web101-r10-sfo2 + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:17 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - extlb7-r10-sfo2 + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580b9291d0c47-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": true, "rating": 4.5, "mobile_url": "http://m.yelp.com/biz/piroshky-piroshky-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/99493c12711e/ico/stars/v1/stars_4_half.png", + "review_count": 3586, "name": "Piroshky Piroshky", "rating_img_url_small": + "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/a5221e66bc70/ico/stars/v1/stars_small_4_half.png", + "url": "http://www.yelp.com/biz/piroshky-piroshky-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["Bakeries", "bakeries"], ["Russian", "russian"]], "menu_date_updated": + 1441924369, "reviews": [{"rating": 5, "excerpt": "What can I say... this place + never lets me down. The piroshkis are well worth the wait but the typical + line out front always moves fast. \n\nThe beef and...", "time_created": 1463937795, + "rating_image_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/f1def11e4e79/ico/stars/v1/stars_5.png", + "rating_image_small_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/c7623205d5cd/ico/stars/v1/stars_small_5.png", + "user": {"image_url": "http://s3-media2.fl.yelpcdn.com/photo/4MQlFzjHIo1VtYP7JdQ3WA/ms.jpg", + "id": "6xzmrOlkmJK-FRjb8e4p4w", "name": "Sarah B."}, "rating_image_large_url": + "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/22affc4e6c38/ico/stars/v1/stars_large_5.png", + "id": "clNMa5wRmlAPzeBxc_wYpA"}], "phone": "2064416068", "snippet_text": "OMG + HAPPINESS IN A BUN. like literally\n\nMy friends and I came here two days + in a row just because we could. I loved the smoked salmon pate and the beef + and...", "image_url": "https://s3-media2.fl.yelpcdn.com/bphoto/WH3A8SLkYwgJQU9JPeHcgg/ms.jpg", + "snippet_image_url": "http://s3-media1.fl.yelpcdn.com/photo/o5QvzFSAFVuH8aHl9Oqr9w/ms.jpg", + "display_phone": "+1-206-441-6068", "rating_img_url_large": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/9f83790ff7f6/ico/stars/v1/stars_large_4_half.png", + "menu_provider": "single_platform", "id": "piroshky-piroshky-seattle", "is_closed": + false, "location": {"cross_streets": "Western Ave \u0026 Virginia St", "city": + "Seattle", "display_address": ["1908 Pike Pl", "Downtown", "Seattle, WA 98101"], + "geo_accuracy": 8.0, "neighborhoods": ["Downtown"], "postal_code": "98101", + "country_code": "US", "address": ["1908 Pike Pl"], "coordinate": {"latitude": + 47.6099207997322, "longitude": -122.342521548271}, "state_code": "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:18 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/nacho-borracho-seattle + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="a5881ab53656027cd7d08140020dd29e", + oauth_signature="veNjOOZ5CQnJL99Rlp4M%2Blt0Sg0%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463974998", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:18 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d432faacccde5358480b1d1bdd86602c51463974998; expires=Tue, 23-May-17 + 03:43:18 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=aa248b6c71d047eb323594d8a76d3f9a; Domain=.yelp.com; Path=/; HttpOnly + - yuv=uang61SBcEPrGXSM1fozSEEv-rO5V00oJJom7A6vp58CIg-pFTrZ4TQhSLPrSVcIZKVXewmGMxW7KVwDVVpE0fs5-yxEKxmb; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:18 + GMT + X-Node: + - api_com + - web63-r7-sfo2 + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:18 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - extlb7-r10-sfo2 + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580ba9fff2a79-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": false, "rating": 3.5, "mobile_url": "http://m.yelp.com/biz/nacho-borracho-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/5ef3eb3cb162/ico/stars/v1/stars_3_half.png", + "review_count": 122, "name": "Nacho Borracho", "rating_img_url_small": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/2e909d5d3536/ico/stars/v1/stars_small_3_half.png", + "url": "http://www.yelp.com/biz/nacho-borracho-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["Tex-Mex", "tex-mex"], ["Cocktail Bars", "cocktailbars"], + ["Mexican", "mexican"]], "menu_date_updated": 1447865990, "reviews": [{"rating": + 5, "excerpt": "This is my favorite restaurant/bar in Cap Hill and one of my + favorite places in Seattle. The drinks are amazing and the food at Neon Taco + (food counter in...", "time_created": 1463789621, "rating_image_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/f1def11e4e79/ico/stars/v1/stars_5.png", + "rating_image_small_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/c7623205d5cd/ico/stars/v1/stars_small_5.png", + "user": {"image_url": "http://s3-media2.fl.yelpcdn.com/photo/UJvRA_A609pFrpzrWEcd6A/ms.jpg", + "id": "ORSlNCyP_XUuurfZEdMdXw", "name": "Ishea B."}, "rating_image_large_url": + "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/22affc4e6c38/ico/stars/v1/stars_large_5.png", + "id": "RZvB66UI-sxwrTWcS6KhCw"}], "phone": "2064662434", "snippet_text": "This + is definitely a neat place to check out. Came here on a Saturday night and + it was a little hard to find a place to sit. It''s a narrow spot with the + bar...", "image_url": "https://s3-media1.fl.yelpcdn.com/bphoto/QP42eT4jfYyqcNbH1HWHiA/ms.jpg", + "snippet_image_url": "http://s3-media2.fl.yelpcdn.com/photo/KwvyaCq9E0kUjI7gksN6Ow/ms.jpg", + "display_phone": "+1-206-466-2434", "rating_img_url_large": "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/bd9b7a815d1b/ico/stars/v1/stars_large_3_half.png", + "menu_provider": "single_platform", "id": "nacho-borracho-seattle", "is_closed": + false, "location": {"cross_streets": "Olive Way \u0026 Thomas St", "city": + "Seattle", "display_address": ["209 Broadway E", "Capitol Hill", "Seattle, + WA 98102"], "geo_accuracy": 9.5, "neighborhoods": ["Capitol Hill"], "postal_code": + "98102", "country_code": "US", "address": ["209 Broadway E"], "coordinate": + {"latitude": 47.6199874, "longitude": -122.3208889}, "state_code": "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:18 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/emerald-city-fish-and-chips-seattle + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="f6418e6c43f6467504816a4bf855a6bc", + oauth_signature="jES4OLAgAWOdgmpLoabC%2B9jIZ%2Bo%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463974998", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:18 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d432faacccde5358480b1d1bdd86602c51463974998; expires=Tue, 23-May-17 + 03:43:18 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=8428c0a0daa0f2df5c21fac12dcec8fd; Domain=.yelp.com; Path=/; HttpOnly + - yuv=GOm2aOUqlO-IizhV6mjKVE3uZvveaqNW8ryKlS-TFVnhhdXSf9JY2npc2uOafKRVs-a9vW1P2BPh65pD7KyaaNcaq25OMNL6; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:18 + GMT + X-Node: + - api_com + - web5-r1-sfo2 + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:18 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - extlb7-r10-sfo2 + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580bc3abb2a79-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": true, "rating": 4.0, "mobile_url": "http://m.yelp.com/biz/emerald-city-fish-and-chips-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/c2f3dd9799a5/ico/stars/v1/stars_4.png", + "review_count": 168, "name": "Emerald City Fish \u0026 Chips", "rating_img_url_small": + "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/f62a5be2f902/ico/stars/v1/stars_small_4.png", + "url": "http://www.yelp.com/biz/emerald-city-fish-and-chips-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["Fish \u0026 Chips", "fishnchips"], ["Seafood", "seafood"], + ["Sandwiches", "sandwiches"]], "menu_date_updated": 1461367203, "reviews": + [{"rating": 5, "excerpt": "Fast, delicious and very affordable. \n\nNot the + best in town but pretty damn good. \n\nThey have some really good deals on + cod and salmon. \n\nPlus there''s...", "time_created": 1458677353, "rating_image_url": + "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/f1def11e4e79/ico/stars/v1/stars_5.png", + "rating_image_small_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/c7623205d5cd/ico/stars/v1/stars_small_5.png", + "user": {"image_url": "http://s3-media2.fl.yelpcdn.com/photo/KAjjds8VQ7C9j_hqZaSZGw/ms.jpg", + "id": "zqZN7C6M0ybbHUclJttmlw", "name": "Matthew A."}, "rating_image_large_url": + "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/22affc4e6c38/ico/stars/v1/stars_large_5.png", + "id": "Dqv0NYNg5Wsu2T97oQJYwA"}], "phone": "2067603474", "snippet_text": "Fast, + delicious and very affordable. \n\nNot the best in town but pretty damn good. + \n\nThey have some really good deals on cod and salmon. \n\nPlus there''s...", + "image_url": "https://s3-media3.fl.yelpcdn.com/bphoto/1HHsIopsUezmGi7fPR3NOw/ms.jpg", + "snippet_image_url": "http://s3-media2.fl.yelpcdn.com/photo/KAjjds8VQ7C9j_hqZaSZGw/ms.jpg", + "display_phone": "+1-206-760-3474", "rating_img_url_large": "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/ccf2b76faa2c/ico/stars/v1/stars_large_4.png", + "menu_provider": "eat24", "id": "emerald-city-fish-and-chips-seattle", "is_closed": + false, "location": {"cross_streets": "Charlestown St \u0026 S 33rd Ave", "city": + "Seattle", "display_address": ["3756 Rainier Ave S", "Mount Baker", "Seattle, + WA 98144"], "geo_accuracy": 8.0, "neighborhoods": ["Mount Baker"], "postal_code": + "98144", "country_code": "US", "address": ["3756 Rainier Ave S"], "coordinate": + {"latitude": 47.57002, "longitude": -122.29063}, "state_code": "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:18 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/el-cabrito-seattle + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="9a9bc942b0d1152ad7b0fd5e9b1aef82", + oauth_signature="6XxRfnCOnDzTEHkCe9i1azQq%2Bps%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463974998", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:18 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=de3f1d60c09482caf1859523022c491951463974998; expires=Tue, 23-May-17 + 03:43:18 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=b7f7ed61147a6a85f9c7b166e9c4b829; Domain=.yelp.com; Path=/; HttpOnly + - yuv=qWuv1q97dwiGovSETi5_0OaxhUCZ_vRcEbHjHllCKQ3FA3-7idLvs5lxy0Ye36nk_GK8Pgx0IaH2sh2hWqk8vp9KI2emRzRU; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:18 + GMT + X-Node: + - api_com + - web18-r3-sfo2 + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:18 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - extlb8-r11-sfo2 + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580be1b042a61-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": false, "rating": 3.5, "mobile_url": "http://m.yelp.com/biz/el-cabrito-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/5ef3eb3cb162/ico/stars/v1/stars_3_half.png", + "review_count": 11, "name": "El Cabrito", "rating_img_url_small": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/2e909d5d3536/ico/stars/v1/stars_small_3_half.png", + "url": "http://www.yelp.com/biz/el-cabrito-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["Food Trucks", "foodtrucks"], ["Mexican", "mexican"]], "reviews": + [{"rating": 4, "excerpt": "Saw this food truck last friday outside chucks + hop shop but according to the schedule posted on the bar el cabrito is only + there between 9pm-12mn. Anyway...", "time_created": 1460961523, "rating_image_url": + "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/c2f3dd9799a5/ico/stars/v1/stars_4.png", + "rating_image_small_url": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/f62a5be2f902/ico/stars/v1/stars_small_4.png", + "user": {"image_url": "http://s3-media3.fl.yelpcdn.com/photo/5nc7li2SLWhQpFiimJqMeA/ms.jpg", + "id": "oeYsGall1yjV2VHgcuWIjQ", "name": "Ange A."}, "rating_image_large_url": + "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/ccf2b76faa2c/ico/stars/v1/stars_large_4.png", + "id": "ciLGwC8ArqQPf8JjMR4Qyw"}], "snippet_text": "Saw this food truck last + friday outside chucks hop shop but according to the schedule posted on the + bar el cabrito is only there between 9pm-12mn. Anyway...", "image_url": "https://s3-media1.fl.yelpcdn.com/bphoto/48V0qoM_0IeEaCy-mEvdPA/ms.jpg", + "snippet_image_url": "http://s3-media3.fl.yelpcdn.com/photo/5nc7li2SLWhQpFiimJqMeA/ms.jpg", + "rating_img_url_large": "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/bd9b7a815d1b/ico/stars/v1/stars_large_3_half.png", + "id": "el-cabrito-seattle", "is_closed": false, "location": {"cross_streets": + "Dearborn St \u0026 Charles St", "city": "Seattle", "display_address": ["828 + Rainier Ave S", "Central District", "Seattle, WA 98144"], "geo_accuracy": + 9.5, "neighborhoods": ["Central District"], "postal_code": "98144", "country_code": + "US", "address": ["828 Rainier Ave S"], "coordinate": {"latitude": 47.594999, + "longitude": -122.31044}, "state_code": "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:18 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/el-camion-seattle-13 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="cc2d2eaea65ad5345ff097e620a7472a", + oauth_signature="UMXtUoR87EaDSQffTWnOBqQKu00%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463974998", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:19 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d27f561222e978dd9b31e1fca08eb1f001463974999; expires=Tue, 23-May-17 + 03:43:19 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=dc8287e3f3a572c612103b56da002edb; Domain=.yelp.com; Path=/; HttpOnly + - yuv=4KcB0_LTDUxvjAcn3G2nTmPJwMDZ85W0FYAEiB-NkFHoG2PWkvMaqNTNOFA2VpKxBX7QMyHNazfQTxG3-KM4q3w3Q4WXALWG; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:19 + GMT + X-Node: + - api_com + - web19-r4-sfo2 + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:19 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - extlb7-r10-sfo2 + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580c012ea1bc1-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": true, "rating": 4.0, "mobile_url": "http://m.yelp.com/biz/el-camion-seattle-13?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/c2f3dd9799a5/ico/stars/v1/stars_4.png", + "review_count": 278, "name": "El Camion", "rating_img_url_small": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/f62a5be2f902/ico/stars/v1/stars_small_4.png", + "url": "http://www.yelp.com/biz/el-camion-seattle-13?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["Mexican", "mexican"], ["Food Trucks", "foodtrucks"]], "menu_date_updated": + 1463820997, "reviews": [{"rating": 5, "excerpt": "Helping my BF work on his + house, he took me to lunch if you want to call it that, next to Home Depot + after he picked up some plumbing fixtures.\n\nBest tamale...", "time_created": + 1463773519, "rating_image_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/f1def11e4e79/ico/stars/v1/stars_5.png", + "rating_image_small_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/c7623205d5cd/ico/stars/v1/stars_small_5.png", + "user": {"image_url": "http://s3-media1.fl.yelpcdn.com/photo/RN8wjvdKBkY786wSL6W5BA/ms.jpg", + "id": "Rgavxg1hyAj7UGEf3WgInA", "name": "Cindy Y."}, "rating_image_large_url": + "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/22affc4e6c38/ico/stars/v1/stars_large_5.png", + "id": "Y_gYR_q4c06kMuc1ILo8Lg"}], "phone": "2063672777", "snippet_text": "This + has long been my favorite taco truck in the greater Seattle area. It''s usually + my go-to if I''m unsure where I want to eat, whether it''s for lunch on a...", + "image_url": "https://s3-media3.fl.yelpcdn.com/bphoto/UtVhAgy0GJvEalApGkVjiQ/ms.jpg", + "snippet_image_url": "http://s3-media3.fl.yelpcdn.com/photo/ZAIQsIh7Hn-zi24vCHdeKA/ms.jpg", + "display_phone": "+1-206-367-2777", "rating_img_url_large": "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/ccf2b76faa2c/ico/stars/v1/stars_large_4.png", + "menu_provider": "single_platform", "id": "el-camion-seattle-13", "is_closed": + false, "location": {"cross_streets": "125th St", "city": "Seattle", "display_address": + ["11728 Aurora Ave N", "Haller Lake", "Seattle, WA 98133"], "geo_accuracy": + 8.0, "neighborhoods": ["Haller Lake"], "postal_code": "98133", "country_code": + "US", "address": ["11728 Aurora Ave N"], "coordinate": {"latitude": 47.71505, + "longitude": -122.34438}, "state_code": "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:19 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/taqueria-el-antojo-seattle + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="5821074cc0cb0211a65c4066dbbccac7", + oauth_signature="hm9oGRP7Fv7zkqF341%2B6CDoCL54%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463974999", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:19 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d7021388f741f10f9edd1cdd33cabee201463974999; expires=Tue, 23-May-17 + 03:43:19 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=9d5a9bcfdca5dfa0442a343fe78f3258; Domain=.yelp.com; Path=/; HttpOnly + - yuv=I0483XNfr1wrWx4RH4cVUVnYY0ooXYTZxYMtK_JHom6_VZA3Fu6hZoPW1nNNUy1tDDMB9cLRAtVbkbq-JpO-MqqA-FVGIfgL; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:19 + GMT + X-Node: + - api_com + - web15-r3-sfo2 + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:19 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - extlb8-r11-sfo2 + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580c1e0362aa3-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": false, "rating": 3.5, "mobile_url": "http://m.yelp.com/biz/taqueria-el-antojo-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/5ef3eb3cb162/ico/stars/v1/stars_3_half.png", + "review_count": 16, "name": "Taqueria El Antojo", "rating_img_url_small": + "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/2e909d5d3536/ico/stars/v1/stars_small_3_half.png", + "url": "http://www.yelp.com/biz/taqueria-el-antojo-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["Food Trucks", "foodtrucks"], ["Mexican", "mexican"], ["Sandwiches", + "sandwiches"]], "reviews": [{"rating": 4, "excerpt": "I love this place! The + tacos are awesome and the owners are the nicest people ever. It''s a Thursday + night staple for me and my daughter. Simple, cheap and...", "time_created": + 1457659971, "rating_image_url": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/c2f3dd9799a5/ico/stars/v1/stars_4.png", + "rating_image_small_url": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/f62a5be2f902/ico/stars/v1/stars_small_4.png", + "user": {"image_url": "http://s3-media3.fl.yelpcdn.com/photo/dZmb00JJcZsgYzGGhpbIUQ/ms.jpg", + "id": "1HUwbIirjNejFbKivv3Q9Q", "name": "Trevor R."}, "rating_image_large_url": + "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/ccf2b76faa2c/ico/stars/v1/stars_large_4.png", + "id": "bxnUjsiyvmFc0ilKAZYkiw"}], "snippet_text": "I love this place! The + tacos are awesome and the owners are the nicest people ever. It''s a Thursday + night staple for me and my daughter. Simple, cheap and...", "image_url": "https://s3-media2.fl.yelpcdn.com/bphoto/FbbsPAtOWGyd8JQSK0hLwQ/ms.jpg", + "snippet_image_url": "http://s3-media3.fl.yelpcdn.com/photo/dZmb00JJcZsgYzGGhpbIUQ/ms.jpg", + "rating_img_url_large": "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/bd9b7a815d1b/ico/stars/v1/stars_large_3_half.png", + "id": "taqueria-el-antojo-seattle", "is_closed": false, "location": {"cross_streets": + "Eddy St \u0026 Graham St", "city": "Seattle", "display_address": ["6317 California + Ave SW", "Seaview", "Seattle, WA 98136"], "geo_accuracy": 9.5, "neighborhoods": + ["Seaview"], "postal_code": "98136", "country_code": "US", "address": ["6317 + California Ave SW"], "coordinate": {"latitude": 47.546109, "longitude": -122.387229}, + "state_code": "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:19 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/bebas-and-amigos-seattle + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="f231e0d4b2f7249cd823cb14194bfd35", + oauth_signature="1AA%2Bd7P6koN9J7ByomLyUfTxWJ0%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463974999", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:19 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d2b92fbd7810a623231e206a972f71a0e1463974999; expires=Tue, 23-May-17 + 03:43:19 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=743775f97150f801e0e7990d11a96c7a; Domain=.yelp.com; Path=/; HttpOnly + - yuv=w2_M3p8Cy42IfhUiQaVJnwO6mupnw9wdlhJ6N4Nv-wA878BEV8aKYHYPKZCtt6EfYXbbh3ghLuLvyh5Z-Us0w9cynWjh4T2B; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:19 + GMT + X-Node: + - api_com + - web28-r1-sfo2 + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:19 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - extlb8-r11-sfo2 + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580c36cc52a91-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": false, "rating": 4.0, "mobile_url": "http://m.yelp.com/biz/bebas-and-amigos-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/c2f3dd9799a5/ico/stars/v1/stars_4.png", + "review_count": 32, "name": "Bebas \u0026 Amigos", "rating_img_url_small": + "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/f62a5be2f902/ico/stars/v1/stars_small_4.png", + "url": "http://www.yelp.com/biz/bebas-and-amigos-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["Delis", "delis"], ["Mexican", "mexican"], ["Breakfast \u0026 + Brunch", "breakfast_brunch"]], "reviews": [{"rating": 5, "excerpt": "I got + here about 10:45, not knowing they stopped breakfast at 10:30 (have submitted + that correction to Yelp) but they made me a breakfast burrito anyways....", + "time_created": 1461262433, "rating_image_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/f1def11e4e79/ico/stars/v1/stars_5.png", + "rating_image_small_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/c7623205d5cd/ico/stars/v1/stars_small_5.png", + "user": {"image_url": "http://s3-media2.fl.yelpcdn.com/photo/ZYFsTGDSbNwzJK1-z0FeCw/ms.jpg", + "id": "fPaTHsudYaUGH662R3JTtw", "name": "Phil S."}, "rating_image_large_url": + "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/22affc4e6c38/ico/stars/v1/stars_large_5.png", + "id": "eRExlCqpKNCgW4XNfyA3Fw"}], "phone": "2066227085", "snippet_text": "I + got here about 10:45, not knowing they stopped breakfast at 10:30 (have submitted + that correction to Yelp) but they made me a breakfast burrito anyways....", + "image_url": "https://s3-media1.fl.yelpcdn.com/bphoto/yLcNHvbcRYdsBtJy2U3CzQ/ms.jpg", + "snippet_image_url": "http://s3-media2.fl.yelpcdn.com/photo/ZYFsTGDSbNwzJK1-z0FeCw/ms.jpg", + "display_phone": "+1-206-622-7085", "rating_img_url_large": "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/ccf2b76faa2c/ico/stars/v1/stars_large_4.png", + "id": "bebas-and-amigos-seattle", "is_closed": false, "location": {"cross_streets": + "Lane St \u0026 Columbia St", "city": "Seattle", "display_address": ["700 + 5th Ave", "Ste 604", "Downtown", "Seattle, WA 98104"], "geo_accuracy": 8.0, + "neighborhoods": ["Downtown"], "postal_code": "98104", "country_code": "US", + "address": ["700 5th Ave", "Ste 604"], "coordinate": {"latitude": 47.6046464, + "longitude": -122.3298066}, "state_code": "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:19 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/blue-water-taco-grill-seattle-14 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="df1e09cd0dff356247c45da2ee7e56b4", + oauth_signature="BaqxECT%2FxVwRhRT7zNhUr%2FbVExM%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463974999", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:20 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d37dbefb145d372ab7890c69e5b3304421463975000; expires=Tue, 23-May-17 + 03:43:20 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=42ef8a73b951fd912dca528df5977435; Domain=.yelp.com; Path=/; HttpOnly + - yuv=TNBqlgTiTo--ETEhkceNRQmswYxwKlm9mkbBAVNj3yYSP3tVB5R4DGNb46pqj5Zfj2bFGYroZAvcbGIJeJIK0z854jGXvA3J; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:20 + GMT + X-Node: + - 10-64-100-94-uswest1aprod + - api_com + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:20 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - 10-64-0-235-uswest1aprod + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580c60a6e2a1f-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": true, "rating": 3.5, "mobile_url": "http://m.yelp.com/biz/blue-water-taco-grill-seattle-14?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/5ef3eb3cb162/ico/stars/v1/stars_3_half.png", + "review_count": 12, "name": "Blue Water Taco Grill", "rating_img_url_small": + "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/2e909d5d3536/ico/stars/v1/stars_small_3_half.png", + "url": "http://www.yelp.com/biz/blue-water-taco-grill-seattle-14?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["Mexican", "mexican"]], "reviews": [{"rating": 5, "excerpt": + "Blue Water Taco Grill does tacos just like they should be done, and they + have multiple vegetarian options to choose from regardless of the time of + day. I''ve...", "time_created": 1444832170, "rating_image_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/f1def11e4e79/ico/stars/v1/stars_5.png", + "rating_image_small_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/c7623205d5cd/ico/stars/v1/stars_small_5.png", + "user": {"image_url": "http://s3-media4.fl.yelpcdn.com/photo/3UK1UK9LE_yGdq5gfJ8Iiw/ms.jpg", + "id": "9TAiDU0sTVqvT00P_tHEFQ", "name": "Daniel F."}, "rating_image_large_url": + "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/22affc4e6c38/ico/stars/v1/stars_large_5.png", + "id": "jOuLsh2zM8fQZTcrjHi8rg"}], "phone": "2068052060", "snippet_text": "I + work down the street from Blue Water Taco Grill. Ok, maybe like .7 miles. + Close enough. Walking distance, yea.\n\nSometimes in charge of ordering lunch + for...", "image_url": "https://s3-media4.fl.yelpcdn.com/bphoto/fi2JuBmlbQ2q0INE75GgwA/ms.jpg", + "snippet_image_url": "http://s3-media4.fl.yelpcdn.com/photo/UqU9ML_uZwHJnzJqcxXBzA/ms.jpg", + "display_phone": "+1-206-805-2060", "rating_img_url_large": "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/bd9b7a815d1b/ico/stars/v1/stars_large_3_half.png", + "id": "blue-water-taco-grill-seattle-14", "is_closed": false, "location": + {"cross_streets": "Forest St \u0026 Hanford St", "city": "Seattle", "display_address": + ["2962 1st Ave S", "Industrial District", "Seattle, WA 98134"], "geo_accuracy": + 8.0, "neighborhoods": ["Industrial District"], "postal_code": "98134", "country_code": + "US", "address": ["2962 1st Ave S"], "coordinate": {"latitude": 47.5758209, + "longitude": -122.3337708}, "state_code": "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:20 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/le-panier-french-bakery-seattle + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="f2510249cc09d4aedc3db1bd8881d0c9", + oauth_signature="OJYWzeGhAsjnf7WL08INZyBCgTs%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463975000", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:20 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d7d7f23927490334f532a879e4605a3661463975000; expires=Tue, 23-May-17 + 03:43:20 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=b9134f1680d750f33fb368d45bf1921c; Domain=.yelp.com; Path=/; HttpOnly + - yuv=HKLojx9eWHefcklkg43uQAOVghOr5jYZF0Uhaet5SKbjhJiRlHO_DeDwN5CRhURARncXc27upd1j6DPZ2_0ekCREug7N0ZGs; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:20 + GMT + X-Node: + - api_com + - web100-r10-sfo2 + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:20 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - extlb8-r11-sfo2 + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580c753b61bc1-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": true, "rating": 4.5, "mobile_url": "http://m.yelp.com/biz/le-panier-french-bakery-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/99493c12711e/ico/stars/v1/stars_4_half.png", + "review_count": 1585, "name": "Le Panier French Bakery", "rating_img_url_small": + "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/a5221e66bc70/ico/stars/v1/stars_small_4_half.png", + "url": "http://www.yelp.com/biz/le-panier-french-bakery-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["Bakeries", "bakeries"], ["French", "french"], ["Sandwiches", + "sandwiches"]], "menu_date_updated": 1441924368, "reviews": [{"rating": 5, + "excerpt": "You have to visit this spot when in Pike Place- especially if + you love baked goodies! The line can get pretty long but it is worth the wait! + I came in for...", "time_created": 1462820136, "rating_image_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/f1def11e4e79/ico/stars/v1/stars_5.png", + "rating_image_small_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/c7623205d5cd/ico/stars/v1/stars_small_5.png", + "user": {"image_url": "http://s3-media3.fl.yelpcdn.com/photo/OGnA_0RNJv9B-91RRxW-Eg/ms.jpg", + "id": "ANB7jGRX6Mz-lNqAFd6hHA", "name": "Sharon C."}, "rating_image_large_url": + "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/22affc4e6c38/ico/stars/v1/stars_large_5.png", + "id": "VM4SnnZFnRiqZwcrlkaFWA"}], "phone": "2064413669", "snippet_text": "You + have to visit this spot when in Pike Place- especially if you love baked goodies! + The line can get pretty long but it is worth the wait! I came in for...", + "image_url": "https://s3-media1.fl.yelpcdn.com/bphoto/us-U7fQTzj-g5tga28wsFQ/ms.jpg", + "snippet_image_url": "http://s3-media3.fl.yelpcdn.com/photo/OGnA_0RNJv9B-91RRxW-Eg/ms.jpg", + "display_phone": "+1-206-441-3669", "rating_img_url_large": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/9f83790ff7f6/ico/stars/v1/stars_large_4_half.png", + "menu_provider": "single_platform", "id": "le-panier-french-bakery-seattle", + "is_closed": false, "location": {"cross_streets": "Western Ave \u0026 Virginia + St", "city": "Seattle", "display_address": ["1902 Pike Pl", "Downtown", "Seattle, + WA 98101"], "geo_accuracy": 8.0, "neighborhoods": ["Downtown"], "postal_code": + "98101", "country_code": "US", "address": ["1902 Pike Pl"], "coordinate": + {"latitude": 47.6098933070898, "longitude": -122.342474609613}, "state_code": + "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:20 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/memos-mexican-food-restaurant-seattle + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="668a1b9d6a0cd474694e6ac9db2cd77b", + oauth_signature="EQh6bv3lv9MfG6dyl5quH9D3ogg%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463975000", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:20 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d636e4cb8608a0fd0970458774b2940111463975000; expires=Tue, 23-May-17 + 03:43:20 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=dbed7d78753bad8c161d6405e699eade; Domain=.yelp.com; Path=/; HttpOnly + - yuv=Vi3pXo_jWvksO9b5u21FSOSEC6CAVfbNg0PMNj759z8kMpakv-EGDnRdTdiVDM6zPX0n3ZiJRyAegbMzJcqYCblg7CqwpC4V; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:20 + GMT + X-Node: + - api_com + - web64-r7-sfo2 + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:20 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - extlb7-r10-sfo2 + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580c8ca5f2aa3-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": false, "rating": 3.0, "mobile_url": "http://m.yelp.com/biz/memos-mexican-food-restaurant-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/34bc8086841c/ico/stars/v1/stars_3.png", + "review_count": 259, "name": "Memo''s Mexican Food Restaurant", "rating_img_url_small": + "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/902abeed0983/ico/stars/v1/stars_small_3.png", + "url": "http://www.yelp.com/biz/memos-mexican-food-restaurant-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["Mexican", "mexican"]], "reviews": [{"rating": 4, "excerpt": + "Finally! Juicy, shredded beef tacos with actual fried tortillas! Not the + dry, brittle stuff at most places. A real tortilla, fried to perfection, glistening...", + "time_created": 1460362605, "rating_image_url": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/c2f3dd9799a5/ico/stars/v1/stars_4.png", + "rating_image_small_url": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/f62a5be2f902/ico/stars/v1/stars_small_4.png", + "user": {"image_url": "http://s3-media3.fl.yelpcdn.com/photo/3PKTQisH5W073NPNalJfmg/ms.jpg", + "id": "ikrNqVur5MEHmiO_beKlIQ", "name": "Tony B."}, "rating_image_large_url": + "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/ccf2b76faa2c/ico/stars/v1/stars_large_4.png", + "id": "W87FmEm-5l9GCeWZA2v2Jw"}], "phone": "2067295071", "snippet_text": "Finally! + Juicy, shredded beef tacos with actual fried tortillas! Not the dry, brittle + stuff at most places. A real tortilla, fried to perfection, glistening...", + "image_url": "https://s3-media4.fl.yelpcdn.com/bphoto/xiv0DWRp9AhIxgUJZPPPig/ms.jpg", + "snippet_image_url": "http://s3-media3.fl.yelpcdn.com/photo/3PKTQisH5W073NPNalJfmg/ms.jpg", + "display_phone": "+1-206-729-5071", "rating_img_url_large": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/e8b5b79d37ed/ico/stars/v1/stars_large_3.png", + "id": "memos-mexican-food-restaurant-seattle", "is_closed": false, "location": + {"cross_streets": "47th St \u0026 50th St", "city": "Seattle", "display_address": + ["4743 University Way NE", "University District", "Seattle, WA 98105"], "geo_accuracy": + 8.0, "neighborhoods": ["University District"], "postal_code": "98105", "country_code": + "US", "address": ["4743 University Way NE"], "coordinate": {"latitude": 47.6643199, + "longitude": -122.31334}, "state_code": "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:20 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/malenas-taco-shop-seattle + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="228752145c610114aaf02ca84a84cc86", + oauth_signature="j%2Fzcr1wUNZxMF7sVGnMgGKO4%2FT0%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463975000", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:20 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d176b3faaa6043173903f151b0fb734941463975000; expires=Tue, 23-May-17 + 03:43:20 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=64d894bc09faa2530faf61502944c265; Domain=.yelp.com; Path=/; HttpOnly + - yuv=kVvvAGdeYkBsNBvhoD2aJz3SIeSpnSPm69LgVlQqvqv9mjsKbljfwwLeoXntFfTyHwl1VL49xrXDRNxwNkbKSIrkhONkusN-; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:20 + GMT + X-Node: + - api_com + - web57-r7-sfo2 + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:20 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - extlb7-r10-sfo2 + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580ca06d32a37-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": false, "rating": 3.5, "mobile_url": "http://m.yelp.com/biz/malenas-taco-shop-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/5ef3eb3cb162/ico/stars/v1/stars_3_half.png", + "review_count": 111, "name": "Malena''s Taco Shop", "rating_img_url_small": + "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/2e909d5d3536/ico/stars/v1/stars_small_3_half.png", + "url": "http://www.yelp.com/biz/malenas-taco-shop-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["Mexican", "mexican"]], "menu_date_updated": 1441924632, "reviews": + [{"rating": 5, "excerpt": "Best Mexican food I''ve found in Seattle!!! Way + better than el camion, and every other taco truck I''ve been to.\n\nStopped + by Malena''s Tacos after my husband...", "time_created": 1452493664, "rating_image_url": + "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/f1def11e4e79/ico/stars/v1/stars_5.png", + "rating_image_small_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/c7623205d5cd/ico/stars/v1/stars_small_5.png", + "user": {"image_url": "http://s3-media1.fl.yelpcdn.com/photo/3WNrqq9duKwRBUb_rOH0hA/ms.jpg", + "id": "JLawPbLbrNcjCEbmtxoHhQ", "name": "Mindy M."}, "rating_image_large_url": + "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/22affc4e6c38/ico/stars/v1/stars_large_5.png", + "id": "BpbqxIIyyWiGYjFRUENXRQ"}], "phone": "2067898207", "snippet_text": "Best + Mexican food I''ve found in Seattle!!! Way better than el camion, and every + other taco truck I''ve been to.\n\nStopped by Malena''s Tacos after my husband...", + "image_url": "https://s3-media4.fl.yelpcdn.com/bphoto/1nxGmMz7W5PlFwdQRZ7TLQ/ms.jpg", + "snippet_image_url": "http://s3-media1.fl.yelpcdn.com/photo/3WNrqq9duKwRBUb_rOH0hA/ms.jpg", + "display_phone": "+1-206-789-8207", "rating_img_url_large": "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/bd9b7a815d1b/ico/stars/v1/stars_large_3_half.png", + "menu_provider": "single_platform", "id": "malenas-taco-shop-seattle", "is_closed": + false, "location": {"cross_streets": "N 22nd Ave \u0026 N 20th Ave", "city": + "Seattle", "display_address": ["2010 NW 56th St", "Ballard", "Seattle, WA + 98107"], "geo_accuracy": 8.0, "neighborhoods": ["Ballard"], "postal_code": + "98107", "country_code": "US", "address": ["2010 NW 56th St"], "coordinate": + {"latitude": 47.6695949, "longitude": -122.3829968}, "state_code": "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:20 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/taqueria-costa-alegre-taco-bus-seattle + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="5773ca6a27d073f2c0788696502897b1", + oauth_signature="HWWkv8WwwtMT0G2DsprLJWmngUI%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463975000", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:21 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d7d7f23927490334f532a879e4605a3661463975000; expires=Tue, 23-May-17 + 03:43:20 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=af33b4303141fba3aaf7c60518277613; Domain=.yelp.com; Path=/; HttpOnly + - yuv=GABPHoepbI1VjgpC6kmHNuAsx5NIM88Le7iIEkqNS0Vva3aEa88ZM5oppCpa6RRG9Y2KVgPn0YH33V2b5KCKNM8_d9rq3_J_; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:20 + GMT + X-Node: + - api_com + - web20-r4-sfo2 + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:20 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - extlb7-r10-sfo2 + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580cbb4ae1bc1-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": false, "rating": 4.5, "mobile_url": "http://m.yelp.com/biz/taqueria-costa-alegre-taco-bus-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/99493c12711e/ico/stars/v1/stars_4_half.png", + "review_count": 21, "name": "Taqueria Costa Alegre Taco Bus", "rating_img_url_small": + "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/a5221e66bc70/ico/stars/v1/stars_small_4_half.png", + "url": "http://www.yelp.com/biz/taqueria-costa-alegre-taco-bus-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["Mexican", "mexican"], ["Food Trucks", "foodtrucks"], ["Fast + Food", "hotdogs"]], "reviews": [{"rating": 5, "excerpt": "sweet couple running + this place! it''s near my home so my sister and I decided to try it out. killer + torta de alambre!!!! anything de alambre is a specialty...", "time_created": + 1451270932, "rating_image_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/f1def11e4e79/ico/stars/v1/stars_5.png", + "rating_image_small_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/c7623205d5cd/ico/stars/v1/stars_small_5.png", + "user": {"image_url": "http://s3-media2.fl.yelpcdn.com/photo/HDEfSOuLlv_FI2L5f2G-Aw/ms.jpg", + "id": "-oblmCQwKoQV8Xy91X7Z1A", "name": "Joanne N."}, "rating_image_large_url": + "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/22affc4e6c38/ico/stars/v1/stars_large_5.png", + "id": "5NudghYJtj6H_YYl_IPfTw"}], "phone": "2069489068", "snippet_text": "sweet + couple running this place! it''s near my home so my sister and I decided to + try it out. killer torta de alambre!!!! anything de alambre is a specialty...", + "image_url": "https://s3-media3.fl.yelpcdn.com/bphoto/EpErXe_8DXMFFFvFpTGADw/ms.jpg", + "snippet_image_url": "http://s3-media2.fl.yelpcdn.com/photo/HDEfSOuLlv_FI2L5f2G-Aw/ms.jpg", + "display_phone": "+1-206-948-9068", "rating_img_url_large": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/9f83790ff7f6/ico/stars/v1/stars_large_4_half.png", + "id": "taqueria-costa-alegre-taco-bus-seattle", "is_closed": false, "location": + {"cross_streets": "Director St \u0026 Henderson St", "city": "Seattle", "display_address": + ["9000 Rainier Ave S", "Rainier Beach", "Seattle, WA 98118"], "geo_accuracy": + 8.0, "neighborhoods": ["Rainier Beach"], "postal_code": "98118", "country_code": + "US", "address": ["9000 Rainier Ave S"], "coordinate": {"latitude": 47.52262, + "longitude": -122.26921}, "state_code": "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:21 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/crepe-cafe-and-wine-bar-seattle + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="91f7edd1bbfc24834dc16f047e600410", + oauth_signature="%2B0m3vZ%2FTA2jUCBp8ExkB0C0awWc%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463975001", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:21 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=de4da779066646e47023ec10d104875951463975001; expires=Tue, 23-May-17 + 03:43:21 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=0ce2e66113a9ef88e25d4fe509c8e563; Domain=.yelp.com; Path=/; HttpOnly + - yuv=mmFM6LREpshPLClhGZ8r3Ct7OTj5PJPfueeHe4qWqa33Y9PeaYdqEFkgEnMdS1ypMfVWjHNJLs34Ne9sgaRD5PHHZYJBNH4x; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:21 + GMT + X-Node: + - api_com + - web20-r4-sfo2 + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:21 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - extlb8-r11-sfo2 + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580cd29090c47-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": true, "rating": 4.0, "mobile_url": "http://m.yelp.com/biz/crepe-cafe-and-wine-bar-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/c2f3dd9799a5/ico/stars/v1/stars_4.png", + "review_count": 184, "name": "Crepe Cafe \u0026 Wine Bar", "rating_img_url_small": + "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/f62a5be2f902/ico/stars/v1/stars_small_4.png", + "url": "http://www.yelp.com/biz/crepe-cafe-and-wine-bar-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["French", "french"], ["Creperies", "creperies"], ["Wine Bars", + "wine_bars"]], "menu_date_updated": 1441968434, "reviews": [{"rating": 4, + "excerpt": "Cute little bistro with friendly service. They have a variety + of both savory and sweet crepes and the sweet crepes comes in two sizes. I + opted for the full...", "time_created": 1462864419, "rating_image_url": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/c2f3dd9799a5/ico/stars/v1/stars_4.png", + "rating_image_small_url": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/f62a5be2f902/ico/stars/v1/stars_small_4.png", + "user": {"image_url": "http://s3-media3.fl.yelpcdn.com/photo/D1QUJmoJUahNmUeOqhoKEQ/ms.jpg", + "id": "mtGw8bQTQToVR_1KWD7F7A", "name": "Phuong B."}, "rating_image_large_url": + "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/ccf2b76faa2c/ico/stars/v1/stars_large_4.png", + "id": "jun8_MxqkdigDyqPc7MbKQ"}], "phone": "2065277147", "snippet_text": "Cute + little bistro with friendly service. They have a variety of both savory and + sweet crepes and the sweet crepes comes in two sizes. I opted for the full...", + "image_url": "https://s3-media2.fl.yelpcdn.com/bphoto/i-XZ_Gt9t-asxwE0ivyygQ/ms.jpg", + "snippet_image_url": "http://s3-media3.fl.yelpcdn.com/photo/D1QUJmoJUahNmUeOqhoKEQ/ms.jpg", + "display_phone": "+1-206-527-7147", "rating_img_url_large": "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/ccf2b76faa2c/ico/stars/v1/stars_large_4.png", + "menu_provider": "single_platform", "id": "crepe-cafe-and-wine-bar-seattle", + "is_closed": false, "location": {"cross_streets": "N 21st Ave \u0026 N Ravenna + Ave", "city": "Seattle", "display_address": ["2118 NE 65th St", "Ravenna", + "Seattle, WA 98115"], "geo_accuracy": 8.0, "neighborhoods": ["Ravenna"], "postal_code": + "98115", "country_code": "US", "address": ["2118 NE 65th St"], "coordinate": + {"latitude": 47.67591, "longitude": -122.3043}, "state_code": "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:21 GMT +- request: + method: get + uri: https://api.yelp.com/v2/business/tacos-chukis-seattle + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.9.2 + Authorization: + - OAuth oauth_consumer_key="ac7g1t3S2ra7hSKSzUnBJA", oauth_nonce="d4beee6bd80a7385f05681bd327e9c75", + oauth_signature="4JfOWcJ4zTUa6G7WnzbMuZ4mcEE%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1463975001", oauth_token="0R49YaxmEebNFcNdEimzhyRLg463crzi", + oauth_version="1.0" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 23 May 2016 03:43:21 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d3920e9260d293b220e338ba39b7cd5c91463975001; expires=Tue, 23-May-17 + 03:43:21 GMT; path=/; domain=.yelp.com; HttpOnly + - bse=0695352c546ed4f062f3d381d7f9b9d6; Domain=.yelp.com; Path=/; HttpOnly + - yuv=-bEvNGZdD7xk9Qd51Nd6lR4EVI4yJ_bqDgs-oF6leFPT5coWSdgtSv_ZObF28eQpqkj-mn9T4i6-D95q5IYIwHwmCb7FJ5GP; + Domain=.yelp.com; Max-Age=630720000; Path=/; expires=Sun, 18-May-2036 03:43:21 + GMT + X-Node: + - 10-64-134-228-uswest1bprod + - api_com + Cache-Control: + - max-age=0, must-revalidate, no-cache, no-store, private + Expires: + - Mon, 23 May 2016 03:43:21 GMT + Pragma: + - no-cache + Vary: + - Accept-Encoding,User-Agent + X-Mode: + - ro + X-Proxied: + - 10-64-0-235-uswest1aprod + Server: + - cloudflare-nginx + Cf-Ray: + - 2a7580cf08a91b97-SEA + body: + encoding: ASCII-8BIT + string: '{"is_claimed": true, "rating": 4.5, "mobile_url": "http://m.yelp.com/biz/tacos-chukis-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "rating_img_url": "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/99493c12711e/ico/stars/v1/stars_4_half.png", + "review_count": 689, "name": "Tacos Chukis", "rating_img_url_small": "https://s3-media2.fl.yelpcdn.com/assets/2/www/img/a5221e66bc70/ico/stars/v1/stars_small_4_half.png", + "url": "http://www.yelp.com/biz/tacos-chukis-seattle?utm_campaign=yelp_api\u0026utm_medium=api_v2_business\u0026utm_source=ac7g1t3S2ra7hSKSzUnBJA", + "categories": [["Mexican", "mexican"]], "reviews": [{"rating": 5, "excerpt": + "W O W. just mind blowing wow. I''ve never had tacos this delicious. I''ve + waited to try Tacos Chukis and I cannot BELIEVE I waited this long. It''s + a tiny gem...", "time_created": 1463819585, "rating_image_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/f1def11e4e79/ico/stars/v1/stars_5.png", + "rating_image_small_url": "https://s3-media1.fl.yelpcdn.com/assets/2/www/img/c7623205d5cd/ico/stars/v1/stars_small_5.png", + "user": {"image_url": "http://s3-media4.fl.yelpcdn.com/photo/MmuYpx8P5HE4SeeLYo-0FA/ms.jpg", + "id": "VAaNZBd6MES6EHWTyBmlFQ", "name": "Annie M."}, "rating_image_large_url": + "https://s3-media3.fl.yelpcdn.com/assets/2/www/img/22affc4e6c38/ico/stars/v1/stars_large_5.png", + "id": "fLS9KyAf8-6D6X1zmkt3WQ"}], "phone": "2063284447", "snippet_text": "In + a city of $$$, this taco shop is an oasis of inexpensive, deliciously prepared + eats.\n\nA small menu done right is often the way to go.\n\nBeer is in...", + "image_url": "https://s3-media3.fl.yelpcdn.com/bphoto/qxFr4q5vKzct8XxBxNTawQ/ms.jpg", + "snippet_image_url": "http://s3-media4.fl.yelpcdn.com/photo/oMN1XM-gTS0i2RtNCbnrGA/ms.jpg", + "display_phone": "+1-206-328-4447", "rating_img_url_large": "https://s3-media4.fl.yelpcdn.com/assets/2/www/img/9f83790ff7f6/ico/stars/v1/stars_large_4_half.png", + "id": "tacos-chukis-seattle", "is_closed": false, "location": {"cross_streets": + "John St \u0026 Olive Way", "city": "Seattle", "display_address": ["219 Broadway + E", "Capitol Hill", "Seattle, WA 98102"], "geo_accuracy": 9.5, "neighborhoods": + ["Capitol Hill"], "postal_code": "98102", "country_code": "US", "address": + ["219 Broadway E"], "coordinate": {"latitude": 47.620570445175, "longitude": + -122.321262359619}, "state_code": "WA"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:21 GMT +recorded_with: VCR 3.0.3 diff --git a/test/cassettes/TunesTakeout/returns_top_twenty_suggestions.yml b/test/cassettes/TunesTakeout/returns_top_twenty_suggestions.yml new file mode 100644 index 0000000..7206d3f --- /dev/null +++ b/test/cassettes/TunesTakeout/returns_top_twenty_suggestions.yml @@ -0,0 +1,780 @@ +--- +http_interactions: +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/top?limit=20 + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:22 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '474' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/top?limit=20","suggestions":["Vz0KQY-RRwADboE-","Vz0KO4-RRwADbn9t","Vz0KNY-RRwADbn29","Vz0KQY-RRwADboEQ","Vz0KO4-RRwADbn9f","Vz0KO4-RRwADbn9c","Vz0KQY-RRwADboFP","Vz0KO4-RRwADbn9Q","Vz0KQY-RRwADboFN","Vz0KO4-RRwADbn9d","Vz0KO4-RRwADbn9x","Vz0KO4-RRwADbn9V","Vz0KO4-RRwADbn8Z","Vz0KO4-RRwADbn8x","Vz0KQY-RRwADboEq","Vz0KO4-RRwADbn9I","Vz0KO4-RRwADbn9U","Vz0KO4-RRwADbn85","Vz0KNY-RRwADbn2n","Vz0KO4-RRwADbn9b"]}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:22 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboE- + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:22 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '213' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboE-","suggestion":{"id":"Vz0KQY-RRwADboE-","food_id":"a-la-mode-pies-seattle","music_id":"1OYLLmDS0pJVFRbUo19vrG","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:22 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9t + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:22 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '221' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9t","suggestion":{"id":"Vz0KO4-RRwADbn9t","food_id":"taqueria-la-pasadita-seattle-3","music_id":"0jEsVskTgxfybttvO9gnLK","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:22 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KNY-RRwADbn29 + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:23 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '212' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KNY-RRwADbn29","suggestion":{"id":"Vz0KNY-RRwADbn29","food_id":"sweet-iron-seattle-2","music_id":"0cOpQTKJdCEzz2wplnnyP6","music_type":"artist"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:23 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboEQ + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:22 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '224' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboEQ","suggestion":{"id":"Vz0KQY-RRwADboEQ","food_id":"old-school-frozen-custard-seattle","music_id":"1hq33mOCO3eLxvgBl0leqP","music_type":"track"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:23 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9f + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:23 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '219' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9f","suggestion":{"id":"Vz0KO4-RRwADbn9f","food_id":"cactus-restaurants-seattle-2","music_id":"20OmjCaPoZZg3hQ9iOKmrq","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:24 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9c + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:23 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '213' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9c","suggestion":{"id":"Vz0KO4-RRwADbn9c","food_id":"el-taco-loco-seattle-2","music_id":"0qO38KC2CGDmNSOAb2rpzj","music_type":"track"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:24 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboFP + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:24 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '217' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboFP","suggestion":{"id":"Vz0KQY-RRwADboFP","food_id":"piroshky-piroshky-seattle","music_id":"13kFHFPF8dWNyK2yvgXf3S","music_type":"artist"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:24 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9Q + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:24 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '213' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9Q","suggestion":{"id":"Vz0KO4-RRwADbn9Q","food_id":"nacho-borracho-seattle","music_id":"4DWLyse4wDNthzOYvFZQfi","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:25 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboFN + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:26 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '226' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboFN","suggestion":{"id":"Vz0KQY-RRwADboFN","food_id":"emerald-city-fish-and-chips-seattle","music_id":"18nhNX9AEFPINp1txOsaJS","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:26 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9d + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:26 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '209' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9d","suggestion":{"id":"Vz0KO4-RRwADbn9d","food_id":"el-cabrito-seattle","music_id":"2rV6X8xj2EmDURLce7ZH0Y","music_type":"track"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:27 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9x + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:26 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '211' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9x","suggestion":{"id":"Vz0KO4-RRwADbn9x","food_id":"el-camion-seattle-13","music_id":"28CkJzoE5LBWJpzQr5g0f4","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:27 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9V + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:27 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '217' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9V","suggestion":{"id":"Vz0KO4-RRwADbn9V","food_id":"taqueria-el-antojo-seattle","music_id":"3i3f6NmMLCwSOn0rwzKa8y","music_type":"track"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:27 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn8Z + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:27 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '215' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn8Z","suggestion":{"id":"Vz0KO4-RRwADbn8Z","food_id":"bebas-and-amigos-seattle","music_id":"2IO61W1ZRIwpWUXiO6AAxJ","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:28 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn8x + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:28 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '223' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn8x","suggestion":{"id":"Vz0KO4-RRwADbn8x","food_id":"blue-water-taco-grill-seattle-14","music_id":"1pujwuePmCgDFQY32P5elo","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:28 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboEq + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:28 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '222' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KQY-RRwADboEq","suggestion":{"id":"Vz0KQY-RRwADboEq","food_id":"le-panier-french-bakery-seattle","music_id":"1YPtiR8vL7n29XpP0dTmGc","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:29 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9I + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:28 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '228' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9I","suggestion":{"id":"Vz0KO4-RRwADbn9I","food_id":"memos-mexican-food-restaurant-seattle","music_id":"4OpGuePj1YVgTIXi2WLHVn","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:29 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9U + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:29 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '216' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9U","suggestion":{"id":"Vz0KO4-RRwADbn9U","food_id":"malenas-taco-shop-seattle","music_id":"1mFWLJb6bVP4IroYrJVV5R","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:29 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn85 + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:29 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '229' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn85","suggestion":{"id":"Vz0KO4-RRwADbn85","food_id":"taqueria-costa-alegre-taco-bus-seattle","music_id":"4QB9QRThl5plfwJmcpFtcp","music_type":"track"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:30 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KNY-RRwADbn2n + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:30 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '222' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KNY-RRwADbn2n","suggestion":{"id":"Vz0KNY-RRwADbn2n","food_id":"crepe-cafe-and-wine-bar-seattle","music_id":"18XycAkvLpkbHoWqGCgIwN","music_type":"track"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:30 GMT +- request: + method: get + uri: https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9b + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Server: + - Cowboy + Date: + - Mon, 23 May 2016 03:43:30 GMT + Connection: + - keep-alive + Content-Type: + - application/json + X-Content-Type-Options: + - nosniff + Content-Length: + - '211' + Via: + - 1.1 vegur + body: + encoding: UTF-8 + string: '{"href":"https://tunes-takeout-api.herokuapp.com/v1/suggestions/Vz0KO4-RRwADbn9b","suggestion":{"id":"Vz0KO4-RRwADbn9b","food_id":"tacos-chukis-seattle","music_id":"0AyB84D5n6ISyfZMA84NML","music_type":"album"}}' + http_version: + recorded_at: Mon, 23 May 2016 03:43:30 GMT +recorded_with: VCR 3.0.3 diff --git a/test/controllers/home_controller_test.rb b/test/controllers/home_controller_test.rb new file mode 100644 index 0000000..730478d --- /dev/null +++ b/test/controllers/home_controller_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class HomeControllerTest < ActionController::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/controllers/sessions_controller_test.rb b/test/controllers/sessions_controller_test.rb new file mode 100644 index 0000000..d30ebc3 --- /dev/null +++ b/test/controllers/sessions_controller_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class SessionsControllerTest < ActionController::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/controllers/suggestions_controller_test.rb b/test/controllers/suggestions_controller_test.rb new file mode 100644 index 0000000..f4587a5 --- /dev/null +++ b/test/controllers/suggestions_controller_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class SuggestionsControllerTest < ActionController::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/controllers/user_controller_test.rb b/test/controllers/user_controller_test.rb new file mode 100644 index 0000000..674468e --- /dev/null +++ b/test/controllers/user_controller_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class UserControllerTest < ActionController::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml new file mode 100644 index 0000000..937a0c0 --- /dev/null +++ b/test/fixtures/users.yml @@ -0,0 +1,11 @@ +# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +# This model initially had no columns defined. If you add columns to the +# model remove the '{}' from the fixture names and add the columns immediately +# below each fixture, per the syntax in the comments below +# +one: {} +# column: value +# +two: {} +# column: value diff --git a/test/models/user_test.rb b/test/models/user_test.rb new file mode 100644 index 0000000..dd53aed --- /dev/null +++ b/test/models/user_test.rb @@ -0,0 +1,37 @@ +require 'test_helper' + + +BASE_URL = "https://tunes-takeout-api.herokuapp.com" + + +describe User do + it "user has 'Spotify' as an API provider" do + assert_equal "Spotify", User.find(1) + end + + it "uses v1 of the API" do + assert_equal "https://tunes-takeout-api.herokuapp.com", TunesTakeout::BASE_URL + end + +end + +describe TunesTakeout do + it "returns top twenty suggestions", :vcr do + assert_equal 20, TunesTakeout.top_suggestions(20).count + end + + it "returns a valid RSpotify music_id and music_type", :vcr do + music = TunesTakeout.top_suggestions(20) + music.map!{|suggestion| Music.find(suggestion["music_type"].capitalize, suggestion["music_id"]).class.parent} + assert_equal RSpotify, music.uniq[0] + end + + it "returns a valid Yelp food_id", :vcr do + food = TunesTakeout.top_suggestions(20) + food.map!{|suggestion| Food.yelp_find_by_business(suggestion["food_id"]).class.parent.parent.parent} + assert_equal Yelp, food.uniq[0] + end + + + +end diff --git a/test/test_helper.rb b/test/test_helper.rb index 92e39b2..fc4e638 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,7 +1,25 @@ +require 'simplecov' +SimpleCov.start 'rails' + ENV['RAILS_ENV'] ||= 'test' require File.expand_path('../../config/environment', __FILE__) require 'rails/test_help' +require 'minitest/spec' +require "minispec-metadata" +require 'vcr' +require 'minitest-vcr' +require 'webmock/minitest' +require "minitest/reporters" + +VCR.configure do |c| + c.cassette_library_dir = 'test/cassettes' + c.hook_into :webmock +end + +Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new +MinitestVcr::Spec.configure! + class ActiveSupport::TestCase # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order. fixtures :all