diff --git a/.codeclimate.yml b/.codeclimate.yml index b804276..adf4df9 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -1,8 +1,8 @@ version: "2" -prepare: - fetch: - - url: "https://raw.githubusercontent.com/RamseyInHouse/ramsey-cop/master/default.yml" - path: "alternate-rubocop-path.yml" +# prepare: +# fetch: +# - url: "https://raw.githubusercontent.com/RamseyInHouse/ramsey-cop/master/default.yml" +# path: "alternate-rubocop-path.yml" plugins: rubocop: enabled: true diff --git a/.rspec_status b/.rspec_status index e88988f..71ad32d 100644 --- a/.rspec_status +++ b/.rspec_status @@ -1,7 +1,9 @@ example_id | status | run_time | ------------------------------------------------------ | ------ | --------------- | -./spec/acceptance/retrieve_a_valid_record_spec.rb[1:1] | passed | 0.11786 seconds | -./spec/nintendo_eshop/game_spec.rb[1:1:1] | passed | 0.00419 seconds | -./spec/nintendo_eshop/game_spec.rb[1:1:2] | passed | 0.00606 seconds | -./spec/nintendo_eshop/game_spec.rb[1:1:3] | passed | 0.00398 seconds | -./spec/nintendo_eshop_spec.rb[1:1] | passed | 0.00083 seconds | +./spec/acceptance/retrieve_a_valid_record_spec.rb[1:1] | passed | 0.14289 seconds | +./spec/nintendo_eshop/game_spec.rb[1:1:1] | passed | 0.00375 seconds | +./spec/nintendo_eshop/game_spec.rb[1:1:2] | passed | 0.00616 seconds | +./spec/nintendo_eshop/game_spec.rb[1:1:3] | passed | 0.00564 seconds | +./spec/nintendo_eshop/games_list_spec.rb[1:1] | passed | 0.00254 seconds | +./spec/nintendo_eshop/games_list_spec.rb[1:2:1] | passed | 0.00393 seconds | +./spec/nintendo_eshop_spec.rb[1:1] | passed | 0.00331 seconds | diff --git a/.rubocop.yml b/.rubocop.yml index ca4ac2c..3300531 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,3 +1,6 @@ inherit_gem: ramsey_cop: - default.yml + +AllCops: + TargetRubyVersion: 2.4 diff --git a/Gemfile.lock b/Gemfile.lock index d3f5b99..8383e39 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - nintendo_eshop (0.1.0.alpha3) + nintendo_eshop (0.1.0.alpha4) GEM remote: https://rubygems.org/ diff --git a/README.md b/README.md index 351869c..4697a34 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,8 @@ NintendoEshop.base_url = "https://u3b6gr4ua3-dsn.algolia.net" NintendoEshop.api_key = "9a20c93440cf63cf1a7008d75f7438bf" NintendoEshop.app_id = "U3B6GR4UA3" +### Retrieve a game by ID + game = NintendoEshop::Game.retrieve("70010000001130") game.art # "/content/dam/noa/en_US/games/switch/s/super-mario-odyssey-switch/Switch_SuperMarioOdyssey_box.png" @@ -62,6 +64,14 @@ game.title # "Sonic Forces" game.url # "/games/detail/sonic-forces-switch" ``` +### Search by Title + +```ruby +games = NintendoEshop::GamesList.by_title("Super Mario Odyssey") + +games.first.title # "Super Mario Odyssey: Starter" +``` + ## Errors Error handling is still a work in progress diff --git a/alternate-rubocop-path.yml b/alternate-rubocop-path.yml new file mode 100644 index 0000000..78f13d1 --- /dev/null +++ b/alternate-rubocop-path.yml @@ -0,0 +1,90 @@ +require: rubocop-performance + +AllCops: + Exclude: + - db/schema.rb + - vendor/**/* + TargetRubyVersion: 2.4.6 + +Documentation: + Enabled: false + +Layout/AccessModifierIndentation: + EnforcedStyle: outdent + +Metrics/AbcSize: + Exclude: + - spec/**/* + - test/**/* + +Metrics/BlockLength: + Exclude: + - config/initializers/* + - config/routes.rb + - Gemfile + - spec/**/* + - test/**/* + - "*.gemspec" + - "**/*.rake" + +Metrics/BlockNesting: + Exclude: + - spec/**/* + - test/**/* + +Metrics/CyclomaticComplexity: + Exclude: + - spec/**/* + - test/**/* + +Metrics/LineLength: + Max: 120 + Exclude: + - config/routes.rb + - config/routes/* + - db/migrate/* + +Metrics/MethodLength: + Exclude: + - db/migrate/* + - spec/**/* + - test/**/* + +Metrics/ModuleLength: + Exclude: + - spec/**/* + - test/**/* + +Style/Alias: + EnforcedStyle: prefer_alias_method + +Style/AndOr: + EnforcedStyle: conditionals + +Style/DateTime: + Enabled: false + +Style/FrozenStringLiteralComment: + Enabled: false + +Style/Lambda: + Enabled: false + +Style/NumericLiterals: + Enabled: false + +Style/PercentLiteralDelimiters: + PreferredDelimiters: + '%i': () + '%I': () + '%q': () + '%Q': () + '%r': '{}' + '%s': () + '%w': () + '%W': () + '%x': () + +Style/StringLiterals: + EnforcedStyle: double_quotes + Enabled: true diff --git a/lib/nintendo_eshop.rb b/lib/nintendo_eshop.rb index edf37ce..6c98c0c 100644 --- a/lib/nintendo_eshop.rb +++ b/lib/nintendo_eshop.rb @@ -7,6 +7,7 @@ require_relative "nintendo_eshop/api_client" require_relative "nintendo_eshop/api_request" require_relative "nintendo_eshop/game" +require_relative "nintendo_eshop/games_list" require_relative "nintendo_eshop/version" module NintendoEshop diff --git a/lib/nintendo_eshop/games_list.rb b/lib/nintendo_eshop/games_list.rb new file mode 100644 index 0000000..e70a659 --- /dev/null +++ b/lib/nintendo_eshop/games_list.rb @@ -0,0 +1,56 @@ +module NintendoEshop + class GamesList < APIRequest + include Enumerable + + attr_accessor :title + attr_accessor :games + + RESOURCE_PATH = "/1/indexes/noa_aem_game_en_us/query".freeze + + def initialize(title) + self.title = title + end + + def refresh + response = request(:post, to_json: body) + result = response.dig(:hits) + self.games = refresh_list_objects(result) + self + end + + def each + games.each do |game| + yield(game) + end + end + + def self.by_title(title) + instance = new(title) + instance.refresh + end + + private + + def body + { + "query": title.to_s, + "restrictSearchableAttributes": [ + "title" + ] + } + end + + def refresh_list_objects(objects) + objects.map do |object| + game = Game.new(object.dig(:nsuid)) + game.art = object.dig(:boxArt) + game.msrp = object.dig(:msrp) + game.platform = object.dig(:platform) + game.sale_price = object.dig(:salePrice) + game.title = object.dig(:title) + game.url = object.dig(:url) + game + end + end + end +end diff --git a/lib/nintendo_eshop/version.rb b/lib/nintendo_eshop/version.rb index d11e6df..936c6db 100644 --- a/lib/nintendo_eshop/version.rb +++ b/lib/nintendo_eshop/version.rb @@ -1,3 +1,3 @@ module NintendoEshop - VERSION = "0.1.0.alpha3".freeze + VERSION = "0.1.0.alpha4".freeze end diff --git a/nintendo_eshop.gemspec b/nintendo_eshop.gemspec index 69f4503..91bd0b7 100644 --- a/nintendo_eshop.gemspec +++ b/nintendo_eshop.gemspec @@ -9,12 +9,22 @@ Gem::Specification.new do |spec| spec.email = ["peytorb@gmail.com"] spec.summary = "Retrieve game prices from the Nintendo eShop" - spec.homepage = "https://github.com/rickpeyton/nintendo_eshop" - spec.license = "MIT" + spec.description = <<~DESCRIPTION + When I want to check the price of a game on the Nintendo eShop I want to search Nintendo's + API by external key so that I am confident I am getting the correct price. + DESCRIPTION + spec.homepage = "https://github.com/rickpeyton/nintendo_eshop" + spec.metadata = { + "changelog_uri" => "https://github.com/rickpeyton/nintendo_eshop/releases", + "homepage_uri" => "https://github.com/rickpeyton/nintendo_eshop", + "source_code_uri" => "https://github.com/rickpeyton/nintendo_eshop" + } + spec.license = "MIT" + spec.required_ruby_version = ">= 2.4.6" # Specify which files should be added to the gem when it is released. # The `git ls-files -z` loads the files in the RubyGem that have been added into git. - spec.files = Dir.chdir(File.expand_path(__dir__)) do + spec.files = Dir.chdir(File.expand_path(__dir__)) do `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } end spec.bindir = "exe" diff --git a/spec/fake_client.rb b/spec/fake_client.rb index 7e1af6f..7899147 100644 --- a/spec/fake_client.rb +++ b/spec/fake_client.rb @@ -9,6 +9,8 @@ def post(_uri, json: {}) File.read("spec/http_responses/mario_response.txt") when "invalid" File.read("spec/http_responses/invalid_response.txt") + when "Mario" + File.read("spec/http_responses/mario_games_list_response.txt") end OpenStruct.new( body: response diff --git a/spec/http_responses/mario_games_list_response.txt b/spec/http_responses/mario_games_list_response.txt new file mode 100644 index 0000000..3409e76 --- /dev/null +++ b/spec/http_responses/mario_games_list_response.txt @@ -0,0 +1 @@ +{"hits":[{"type":"game","locale":"en_US","url":"/games/detail/dr-mario-world-ios","title":"Dr. Mario World","description":"This title is also available for Android. Click here for details.\nUse your puzzle skills to eliminate pesky viruses!\n\nMatch capsules with viruses and watch them disappear! Simply match three objects of the same color vertically or horizontally to clear them.\nLuckily, Dr. Mario and friends have virus-busting skills, and you can use leftover half-capsules to strategically zero in on especially meddlesome viruses.\nTake your time, because each puzzling configuration of viruses must be cleared using a limited number of capsules. Keep calm to plan your approach, and you'll rid the Dr. Mario's world of viruses in no time!\n\nPaging Dr. Mario!\n\nA colorful cast of viruses has Dr. Mario's world in a panic! Dr. Mario and friends have put on lab coats and grabbed capsules! Now they're ready to eliminate those unruly viruses.\nDr. Mario isn't the only one on call—Dr. Peach, Dr. Bowser, and others are on duty. Staff up with assistants like Goomba, Koopa Troopa, and Buzzy Beetle to help your doctors out with additional skills.\nDoctors and assistants have various virus-busting skills, so experiment to find a combination that suits your style and pace.\nHundreds of stages over many different worlds are ready for you to save! New worlds, new doctors, and more will be delivered on a regular basis.\n\nPlay together with friends and family around the world!\n\nYou're not in this alone—send and receive stamina-giving hearts to use in stage mode! Then, show off your puzzle-solving progress.\nIn versus mode, you can turn up the intensity on your virus-busting by challenging others to a one-on-one showdown—without using hearts!\nFind the right combo of doctor and assistants and aim for victory online to earn battle points and increase your tier!","lastModified":1561075760403,"slug":"dr-mario-world-ios","boxArt":"/content/dam/noa/en_US/games/mobile/d/dr-mario-world-ios/Mobile_DrMario_box_eShop.png","gallery":"/content/dam/noa/en_US/games/mobile/d/dr-mario-world-ios/screenshot-gallery/Mobile_DrMario_01.jpg","platform":"iOS","releaseDateMask":"2019-07-10T00:00:00.000-07:00","characters":["Mario"],"categories":["Puzzle"],"msrp":0.0,"esrb":"Everyone","esrbDescriptors":["In-Game Purchases"],"virtualConsole":"na","generalFilters":[],"filterShops":[],"filterPlayers":["1+"],"publishers":["Nintendo"],"developers":["LINE","NHN"],"players":"up to 2 players","featured":true,"freeToStart":true,"availability":["Coming soon"],"objectID":"71b1ac4d-cfee-3389-8dc7-675911ed8285","_highlightResult":{"title":{"value":"Dr. Mario World","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]}}},{"type":"game","locale":"en_US","url":"/games/detail/dr-mario-world-android","title":"Dr. Mario World","description":"This title is also available for iOS. Click here for details.\nUse your puzzle skills to eliminate pesky viruses!\n\nMatch capsules with viruses and watch them disappear! Simply match three objects of the same color vertically or horizontally to clear them.\nLuckily, Dr. Mario and friends have virus-busting skills, and you can use leftover half-capsules to strategically zero in on especially meddlesome viruses.\nTake your time, because each puzzling configuration of viruses must be cleared using a limited number of capsules. Keep calm to plan your approach, and you'll rid the Dr. Mario's world of viruses in no time!\n\nPaging Dr. Mario!\n\nA colorful cast of viruses has Dr. Mario's world in a panic! Dr. Mario and friends have put on lab coats and grabbed capsules! Now they're ready to eliminate those unruly viruses.\nDr. Mario isn't the only one on call—Dr. Peach, Dr. Bowser, and others are on duty. Staff up with assistants like Goomba, Koopa Troopa, and Buzzy Beetle to help your doctors out with additional skills.\nDoctors and assistants have various virus-busting skills, so experiment to find a combination that suits your style and pace.\nHundreds of stages over many different worlds are ready for you to save! New worlds, new doctors, and more will be delivered on a regular basis.\n\nPlay together with friends and family around the world!\n\nYou're not in this alone—send and receive stamina-giving hearts to use in stage mode! Then, show off your puzzle-solving progress.\nIn versus mode, you can turn up the intensity on your virus-busting by challenging others to a one-on-one showdown—without using hearts!\nFind the right combo of doctor and assistants and aim for victory online to earn battle points and increase your tier!","lastModified":1561075760403,"slug":"dr-mario-world-android","boxArt":"/content/dam/noa/en_US/games/mobile/d/dr-mario-world-ios/Mobile_DrMario_box_eShop.png","gallery":"/content/dam/noa/en_US/games/mobile/d/dr-mario-world-ios/screenshot-gallery/Mobile_DrMario_01.jpg","platform":"Android","releaseDateMask":"2019-07-10T00:00:00.000-07:00","characters":["Mario"],"categories":["Puzzle"],"msrp":0.0,"esrb":"Everyone","esrbDescriptors":["In-Game Purchases"],"virtualConsole":"na","generalFilters":[],"filterShops":[],"filterPlayers":["1+"],"publishers":["Nintendo"],"developers":["LINE","NHN"],"players":"up to 2 players","featured":true,"freeToStart":true,"availability":["Coming soon"],"objectID":"2123e477-3916-355f-96df-c9888949cd5f","_highlightResult":{"title":{"value":"Dr. Mario World","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]}}},{"type":"game","locale":"en_US","url":"/games/detail/super-mario-maker-2-switch","title":"Super Mario Maker 2","description":"Mario fans of the world, unite! Now you can play, create, and share* the side-scrolling Super Mario™ courses of your dreams in the Super Mario Maker™ 2 game, available exclusively on the Nintendo Switch™ system! Dive into the single-player Story Mode and play built-in courses to rebuild Princess Peach’s castle. Make your own courses, alone or together. And with a Nintendo Switch Online membership*, share your courses, access a near-endless supply made by others, enjoy online multiplayer, and more!\nA new side-scrolling Mario adventure that unleashes the creative potential of Super Mario Maker 2 awaits in Story Mode, which contains over 100 built-in courses. And in Course Maker, a wide range of parts, tools, and more are available so you can construct your own courses. Want coin-shooting cannons? Bowser riding on a giant Goomba? Cat Mario sliding down slopes to take out an army of baddies? Go for it! You call the shots. Pass a Joy-Con™ controller to a partner to build cooperatively on a single system!\n\nPower-up the fun even further with a Nintendo Switch Online membership, which gives you access to Course World and its wealth of online content and functionality. Track your rankings, share your creations, and leave comments after you’ve played courses. With a Nintendo Switch Online membership, you can also tackle Endless Challenge, save online courses locally for later offline play, enjoy online multiplayer with players both near and far, and customize how you appear to others by dressing your Mii™ character with fun accessories!","lastModified":1558631369492,"id":"9IrXeJEkSL89jJ2YoX1NiiuGQa_EXLPn","nsuid":"70010000018694","slug":"super-mario-maker-2-switch","boxArt":"/content/dam/noa/en_US/games/switch/s/super-mario-maker-2-switch/Switch_SuperMarioMaker2_box.png","gallery":"ZtOTg4aDE6_q-GTuFIoc5535xfAkbr0-","platform":"Nintendo Switch","releaseDateMask":"2019-06-28T00:00:00.000-07:00","characters":["Mario","Mii"],"categories":["Action","Platformer"],"msrp":59.99,"esrb":"Everyone","esrbDescriptors":["Mild Cartoon Violence","Users Interact"],"virtualConsole":"na","generalFilters":["Online Play via Nintendo Switch Online"],"filterShops":["At retail","On Nintendo.com"],"filterPlayers":["3+","2+","1+"],"publishers":["Nintendo"],"developers":["Nintendo"],"players":"up to 4 players","featured":true,"freeToStart":false,"priceRange":"$40+","salePrice":null,"availability":["Pre-purchase","Coming soon"],"objectID":"f9c03f6a-ea1b-3874-8776-fee27daf45e3","_highlightResult":{"title":{"value":"Super Mario Maker 2","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]},"id":{"value":"9IrXeJEkSL89jJ2YoX1NiiuGQa_EXLPn","matchLevel":"none","matchedWords":[]},"nsuid":{"value":"70010000018694","matchLevel":"none","matchedWords":[]}}},{"type":"game","locale":"en_US","url":"/games/detail/super-mario-maker-2-plus-nintendo-switch-online-bundle","title":"Super Mario Maker 2 + Nintendo Switch Online Bundle","description":"Mario fans of the world, unite! Now you can play, create, and share* the side-scrolling Super Mario™ courses of your dreams in the Super Mario Maker™ 2 game, available exclusively on the Nintendo Switch™ system! Dive into the single-player Story Mode and play built-in courses to rebuild Princess Peach’s castle. Make your own courses, alone or together. And with a Nintendo Switch Online membership*, share your courses, access a near-endless supply made by others, enjoy online multiplayer, and more!\nIf you’re not already a Nintendo Switch Online member, this Super Mario Maker 2 + Nintendo Switch Online Bundle might be perfect for you—it’s available as both a physical and digital release and includes a 12-month Individual Membership for Nintendo Switch Online!\n\nA new side-scrolling Mario adventure that unleashes the creative potential of Super Mario Maker 2 awaits in Story Mode, which contains over 100 built-in courses. And in Course Maker, a wide range of parts, tools, and more are available so you can construct your own courses. Want coin-shooting cannons? Bowser riding on a giant Goomba? Cat Mario sliding down slopes to take out an army of baddies? Go for it! You call the shots. Pass a Joy-Con™ controller to a partner to build cooperatively on a single system!\n\nPower-up the fun even further with a Nintendo Switch Online membership, which gives you access to Course World and its wealth of online content and functionality. Track your rankings, share your creations, and leave comments after you’ve played courses. With a Nintendo Switch Online membership, you can also tackle Endless Challenge, save online courses locally for later offline play, enjoy online multiplayer with players both near and far, and customize how you appear to others by dressing your Mii™ character with fun accessories!","lastModified":1558631369492,"nsuid":"70010000020523","slug":"super-mario-maker-2-plus-nintendo-switch-online-bundle","boxArt":"/content/dam/noa/en_US/games/switch/s/super-mario-maker-2-switch/Switch_SuperMarioMaker2_box.png","gallery":"ZtOTg4aDE6_q-GTuFIoc5535xfAkbr0-","platform":"Nintendo Switch","releaseDateMask":"2019-06-28T00:00:00.000-07:00","characters":["Mario","Mii"],"categories":["Action","Platformer"],"msrp":69.99,"esrb":"Everyone","esrbDescriptors":["Mild Cartoon Violence","Users Interact"],"virtualConsole":"na","generalFilters":["Online Play via Nintendo Switch Online"],"filterShops":["At retail","On Nintendo.com"],"filterPlayers":["3+","2+","1+"],"publishers":["Nintendo"],"developers":["Nintendo"],"players":"up to 4 players","featured":true,"freeToStart":false,"priceRange":"$40+","salePrice":null,"availability":["Pre-purchase","Coming soon"],"objectID":"0e8b2c09-35a5-3e55-b94b-85259499b85f","_highlightResult":{"title":{"value":"Super Mario Maker 2 + Nintendo Switch Online Bundle","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]},"nsuid":{"value":"70010000020523","matchLevel":"none","matchedWords":[]}}},{"type":"game","locale":"en_US","url":"/games/detail/mario-and-luigi-bowsers-inside-story-3ds","title":"Mario & Luigi: Bowser's Inside Story + Bowser Jr's Journey","description":"Laugh your way through a hilarious story told from three perspectives! Search the Mushroom Kingdom for a cure as Bowser, explore his innards as the Mario Bros., and discover the untold story of Bowser Jr.’s Journey. Overcome the fury of Fawful, action-packed battles, puzzling tasks, and giant bosses in a classic action RPG—stuffed with new content! Mario and Luigi are stuck inside Bowser, forced to accomplish unusual tasks to assist their arch nemesis with hero stuff across the land. The scenes and dialogue that ensue will have you cackling like Fawful, even in battle! Time your button presses and keep up with the action: turn the system sideways, blow into the mic, or tap the touch screen. In an all-new mode, Bowser Jr. will cross paths with our unlikely allies as he recruits Ranged, Flying, and Melee troopers to fight for his cause. Strategically form teams and pit them against enemies to reign supreme in frenetic combat.","lastModified":1558113070465,"id":"dUUO4LhaEvtuHYQOe-bzvcOn0mbU-WXs","nsuid":"50010000047155","slug":"mario-and-luigi-bowsers-inside-story-3ds","boxArt":"/content/dam/noa/en_US/games/3ds/m/mario-and-luigi-bowsers-inside-story-3ds/3DS_MarioLuigi-BowsersInsideStory_box.png","gallery":"I3dXI3aDE69q0qrYLnRypCMck4zBHKDl","platform":"Nintendo 3DS","releaseDateMask":"2019-01-10T00:00:00.000-08:00","characters":["Mario"],"categories":["Role-Playing","Action","Adventure"],"msrp":39.99,"esrb":"Everyone","esrbDescriptors":["Comic Mischief","Mild Cartoon Violence"],"virtualConsole":"na","generalFilters":[],"filterShops":["At retail","On Nintendo.com"],"filterPlayers":[],"publishers":["Nintendo"],"players":"1 player","featured":true,"freeToStart":false,"priceRange":"$20 - $39.99","salePrice":null,"availability":["Available now"],"objectID":"d8b68350-8955-3629-93df-8f1019c2c457","_highlightResult":{"title":{"value":"Mario & Luigi: Bowser's Inside Story + Bowser Jr's Journey","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]},"id":{"value":"dUUO4LhaEvtuHYQOe-bzvcOn0mbU-WXs","matchLevel":"none","matchedWords":[]},"nsuid":{"value":"50010000047155","matchLevel":"none","matchedWords":[]}}},{"type":"game","locale":"en_US","url":"/games/detail/new-super-mario-bros-u-deluxe-switch","title":"New Super Mario Bros. U Deluxe","description":"Join Mario, Luigi, and pals for single-player or multiplayer fun anytime, anywhere! Take on two family-friendly, side-scrolling adventures with up to three friends* as you try to save the Mushroom Kingdom. Includes the New Super Mario Bros. U and harder, faster New Super Luigi U games—both of which include Nabbit and Toadette as playable characters!\nTwo games in one, for double the fun! Simple, straightforward controls, new playable characters optimized for younger and less-experienced players, and a wealth of bonus content—like a Hints gallery and helpful reference videos**—make this a perfect choice for anyone looking to introduce their family to the wonderful world of Mario. All a player needs is one Joy-Con™ controller, so two people can team up right out of the box! Tackle 164 platforming courses in the two main game modes and enjoy extra replayability with three additional game modes in which you can also play as a Mii™ character: Challenges, Boost Rush, and Coin Battle!","lastModified":1558113070465,"id":"UUEoLaSJeN0jP6ZYzDGy1JzGzP_TBeMr","nsuid":"70010000006411","slug":"new-super-mario-bros-u-deluxe-switch","boxArt":"/content/dam/noa/en_US/games/switch/n/new-super-mario-bros-u-deluxe-switch/Switch_NSMBU-DX_box.png","gallery":"Fma2QxaDE6YuvnZGVqM42-44sCtvDLYZ","platform":"Nintendo Switch","releaseDateMask":"2019-01-10T00:00:00.000-08:00","characters":["Mario","Mii"],"categories":["Action","Adventure","Multiplayer","Platformer"],"msrp":59.99,"esrb":"Everyone","esrbDescriptors":["Comic Mischief"],"virtualConsole":"na","generalFilters":["Online Play via Nintendo Switch Online"],"filterShops":["At retail","On Nintendo.com"],"filterPlayers":["3+","2+","1+"],"publishers":["Nintendo"],"players":"up to 4 players","featured":true,"freeToStart":false,"priceRange":"$40+","salePrice":null,"availability":["Available now"],"objectID":"2d2a3033-b63d-394a-9081-1382342abbc1","_highlightResult":{"title":{"value":"New Super Mario Bros. U Deluxe","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]},"id":{"value":"UUEoLaSJeN0jP6ZYzDGy1JzGzP_TBeMr","matchLevel":"none","matchedWords":[]},"nsuid":{"value":"70010000006411","matchLevel":"none","matchedWords":[]}}},{"type":"game","locale":"en_US","url":"/games/detail/super-mario-party-bundle-switch","title":"Super Mario Party Bundle","description":"Includes the Super Mario Party game and a pair of Neon Green/Neon Yellow Joy-Con.\nThe original 4-player Mario Party series board game mode that fans love is back, and your friends and family are invited to the party! Freely walk the board: choose where to move, which Dice Block to roll, and how to win the most Stars in skill-based minigames. Wait till you see the 2 vs 2 mode with grid-based maps, the creative uses of the console, and the series’ first online minigame mode!\nTest your skills in sets of five minigames with the new mode, Mariothon, and see how you stack up against players across the globe in Online Mariothon*. Whether you’re pedaling tricycles, flipping meat, or who knows what else, you’ll use Joy-Con™ controllers in clever ways across 80 new minigames; some are all-out free-for-alls, others are 2 vs 2, or even 1 vs 3! Toad’s Rec Room lets you pair up two Nintendo Switch™ systems**, which you’ll lay side-by-side on a flat surface like a real tabletop game. That way you can play a mini baseball game, battle tanks in custom arenas, or even see who can match the most bananas by repositioning the systems however you see fit!","lastModified":1558113070465,"id":"glBeLHAGNHFpuZ0trIOJJSt0iFKywLUK","slug":"super-mario-party-bundle-switch","boxArt":"/content/dam/noa/en_US/games/switch/s/super-mario-party-bundle-switch/Switch_SuperMarioParty_box_bundle.png","gallery":"N3N2FuZzE65ZWkXF8rYkNRzhPuq4MU51","platform":"Nintendo Switch","releaseDateMask":"2018-11-15T00:00:00.000-08:00","characters":["Mario"],"categories":["Party","Multiplayer"],"msrp":99.99,"esrb":"Everyone","esrbDescriptors":["Mild Cartoon Violence"],"virtualConsole":"na","generalFilters":["Online Play via Nintendo Switch Online"],"filterShops":["At retail"],"filterPlayers":["3+","2+","1+"],"publishers":["Nintendo"],"developers":["Nintendo"],"players":"up to 4 players","featured":true,"freeToStart":false,"availability":["Available now"],"objectID":"5ef4a23b-2696-3941-89ff-4a4741ae60b1","_highlightResult":{"title":{"value":"Super Mario Party Bundle","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]},"id":{"value":"glBeLHAGNHFpuZ0trIOJJSt0iFKywLUK","matchLevel":"none","matchedWords":[]}}},{"type":"game","locale":"en_US","url":"/games/detail/super-mario-party-switch","title":"Super Mario Party","description":"The original 4-player Mario Party series board game mode that fans love is back, and your friends and family are invited to the party! Freely walk the board: choose where to move, which Dice Block to roll, and how to win the most Stars in skill-based minigames. Wait till you see the 2 vs 2 mode with grid-based maps, the creative uses of the console, and the series’ first online minigame mode!\nTest your skills in sets of five minigames with the new mode, Mariothon, and see how you stack up against players across the globe in Online Mariothon*. Whether you’re pedaling tricycles, flipping meat, or who knows what else, you’ll use Joy-Con™ controllers in clever ways across 80 new minigames; some are all-out free-for-alls, others are 2 vs 2, or even 1 vs 3! Toad’s Rec Room lets you pair up two Nintendo Switch™ systems**, which you’ll lay side-by-side on a flat surface like a real tabletop game. That way you can play a mini baseball game, battle tanks in custom arenas, or even see who can match the most bananas by repositioning the systems however you see fit!","lastModified":1558113070465,"id":"3bZRWi4rHAmW8cBw4-ynYNHKB7jxb5WL","nsuid":"70010000014158","slug":"super-mario-party-switch","boxArt":"/content/dam/noa/en_US/games/switch/s/super-mario-party-switch/Switch_SuperMarioParty_box.png","gallery":"N3N2FuZzE65ZWkXF8rYkNRzhPuq4MU51","platform":"Nintendo Switch","releaseDateMask":"2018-10-04T00:00:00.000-07:00","characters":["Mario"],"categories":["Party","Multiplayer"],"msrp":59.99,"esrb":"Everyone","esrbDescriptors":["Mild Cartoon Violence"],"virtualConsole":"na","generalFilters":["Online Play via Nintendo Switch Online"],"filterShops":["At retail","On Nintendo.com"],"filterPlayers":["3+","2+","1+"],"publishers":["Nintendo"],"developers":["Nintendo"],"players":"up to 4 players","featured":true,"freeToStart":false,"priceRange":"$40+","salePrice":null,"availability":["Available now"],"objectID":"3b772017-0779-3aa1-8b1d-f251d50a787e","_highlightResult":{"title":{"value":"Super Mario Party","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]},"id":{"value":"3bZRWi4rHAmW8cBw4-ynYNHKB7jxb5WL","matchLevel":"none","matchedWords":[]},"nsuid":{"value":"70010000014158","matchLevel":"none","matchedWords":[]}}},{"type":"game","locale":"en_US","url":"/games/detail/super-mario-odyssey-starter-pack-switch","title":"Super Mario Odyssey: Starter Pack","description":"This Starter Pack includes the Super Mario Odyssey™ game for the Nintendo Switch™ system and a Traveler’s Guide book.\nUse amazing new abilities—like the power to capture and control objects, animals, and enemies—to collect Power Moons so you can power up the Odyssey airship and save Princess Peach from Bowser's wedding plans!\nThanks to heroic, hat-shaped Cappy, Mario's got new moves that'll make you rethink his traditional run-and-jump gameplay—like cap jump, cap throw, and capture. Use captured cohorts such as enemies, objects, and animals to progress through the game and uncover loads of hidden collectibles. And if you feel like playing with a friend, just pass them a Joy-Con™ controller! Player 1 controls Mario while Player 2 controls Cappy. This sandbox-style 3D Mario adventure—the first since 1996's beloved Super Mario 64™ and 2002's Nintendo GameCube™ classic Super Mario Sunshine™—is packed with secrets and surprises, plus exciting new kingdoms to explore.\n\nExplore astonishing new locales like skyscraper-packed New Donk City to your heart's content, and run into familiar friends and foes as you try to save Princess Peach from Bowser's dastardly wedding plans.\nFind something interesting? Toss your cap at it and see what happens! There are lots of fun and surprising ways to interact with your surroundings.\nBe sure to bring any coins you find to a Crazy Cap store, where you can exchange them for decorative souvenirs for the Odyssey and new outfits for Mario! Some destinations have very exclusive dress codes, after all…\nHand a Joy-Con™ controller to a friend to enjoy simultaneous multiplayer: Player 1 controls Mario while Player 2 controls Mario's new ally Cappy.\nUse Snapshot Mode to freeze time while playing the game and take screenshots that you can customize using various options and filters. Screenshots can be shared via social media or uploaded to PCs and smart devices* using all of the Nintendo Switch™ system's built-in screenshot tools.\nA special edition Nintendo Switch™ hardware bundle will launch alongside the game. This special edition includes a download code for the full game, red left and right Joy-Con™ controllers, and a Super Mario Odyssey™ themed Nintendo Switch carrying case.","lastModified":1558113070465,"id":"g9ntCEVNsh6qGnRBLwT50hzMG7OoWDdG","slug":"super-mario-odyssey-starter-pack-switch","boxArt":"/content/dam/noa/en_US/games/switch/s/super-mario-odyssey-starter-pack-switch/Switch_SuperMarioOdyssey-BonusBundle_box.jpg","gallery":"N4bnI4ZDE6JTPeMbUtX5zubMaD2ZKwDk","platform":"Nintendo Switch","releaseDateMask":"2018-09-27T00:00:00.000-07:00","characters":["Mario"],"categories":["Action","Platformer"],"msrp":59.99,"esrb":"Everyone 10+","esrbDescriptors":["Cartoon Violence","Comic Mischief"],"virtualConsole":"na","generalFilters":["Online Play via Nintendo Switch Online"],"filterShops":["At retail"],"filterPlayers":["1+"],"publishers":["Nintendo"],"developers":["Nintendo"],"players":"up to 2 players","featured":true,"freeToStart":false,"availability":["Available now"],"objectID":"c7bf8463-d9a8-3139-976c-fe8a59443b3f","_highlightResult":{"title":{"value":"Super Mario Odyssey: Starter Pack","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]},"id":{"value":"g9ntCEVNsh6qGnRBLwT50hzMG7OoWDdG","matchLevel":"none","matchedWords":[]}}},{"type":"game","locale":"en_US","url":"/games/detail/mario-tennis-aces-switch","title":"Mario Tennis Aces","description":"Unleash an arsenal of shots and strategies in all-out tennis battles with friends, family, and fan-favorite Mushroom Kingdom characters. Whether you play locally,* online,** or using simple motion controls, intense rallies await! In Adventure mode, experience a new favor of tennis gameplay, with a variety of missions, boss battles and more.\nComplete missions and boss battles in Adventure mode while mastering the controls. Test your hard-earned skills in singles or doubles with up to 4 players in local* or online** multiplayer, not to mention Tournament Mode, which lets you challenge the CPU. Store up energy and use it to pull off amazing feats: move so fast the world slows down around you or aim in first-person to send the ball crashing down! Your rivals may attempt to block you, but if they fail, their racket will take damage—and break after three hits. Fully charge your energy to launch the ball with enough force to KO your opponent!\n\nRally against other players in singles or doubles as one of 15+ Mushroom Kingdom characters\nServe up everything from basic shots to trick shots to split-second blocks\nUse energy to leap after the ball, slow down time, aim in first-person, break rackets, and KO opponents!\nPlay locally,* online,** or swing your Joy-Con™ controller like a real racket in Swing Mode\nTake on CPU opponents in the Mushroom Cup, Flower Cup, or Star Cup in Tournament Mode\nAdventure mode offers a new flavor of tennis gameplay, with a variety of missions, boss battles and more.","lastModified":1560928134538,"id":"v0Ya5Z9XhvpbgBP5g2iNousChEol7JG4","nsuid":"70010000003889","slug":"mario-tennis-aces-switch","boxArt":"/content/dam/noa/en_US/games/switch/m/mario-tennis-aces-switch/Switch_MarioTennisAces_box.png","gallery":"R4ZG9uZjE60InrJG9DGmgU4kdRmN0iBC","platform":"Nintendo Switch","releaseDateMask":"2018-06-21T00:00:00.000-07:00","characters":["Mario"],"categories":["Sports"],"msrp":59.99,"salePrice":null,"esrb":"Everyone","esrbDescriptors":["Mild Cartoon Violence"],"virtualConsole":"na","generalFilters":["Online Play via Nintendo Switch Online"],"filterShops":["At retail","On Nintendo.com"],"filterPlayers":["3+","2+","1+"],"publishers":["Nintendo"],"developers":["Camelot"],"players":"up to 4 players","featured":true,"freeToStart":false,"priceRange":"$40+","availability":["Available now"],"objectID":"49ede443-7c50-3ee9-b19e-19315701e2e1","_highlightResult":{"title":{"value":"Mario Tennis Aces","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]},"id":{"value":"v0Ya5Z9XhvpbgBP5g2iNousChEol7JG4","matchLevel":"none","matchedWords":[]},"nsuid":{"value":"70010000003889","matchLevel":"none","matchedWords":[]}}},{"type":"game","locale":"en_US","url":"/games/detail/super-mario-odyssey-switch","title":"Super Mario Odyssey","description":"Use amazing new abilities—like the power to capture and control objects, animals, and enemies—to collect Power Moons so you can power up the Odyssey airship and save Princess Peach from Bowser's wedding plans!\nThanks to heroic, hat-shaped Cappy, Mario's got new moves that'll make you rethink his traditional run-and-jump gameplay—like cap jump, cap throw, and capture. Use captured cohorts such as enemies, objects, and animals to progress through the game and uncover loads of hidden collectibles. And if you feel like playing with a friend, just pass them a Joy-Con™ controller! Player 1 controls Mario while Player 2 controls Cappy. This sandbox-style 3D Mario adventure—the first since 1996's beloved Super Mario 64™ and 2002's Nintendo GameCube™ classic Super Mario Sunshine™—is packed with secrets and surprises, plus exciting new kingdoms to explore.\n\nExplore astonishing new locales like skyscraper-packed New Donk City to your heart's content, and run into familiar friends and foes as you try to save Princess Peach from Bowser's dastardly wedding plans.\nFind something interesting? Toss your cap at it and see what happens! There are lots of fun and surprising ways to interact with your surroundings.\nBe sure to bring any coins you find to a Crazy Cap store, where you can exchange them for decorative souvenirs for the Odyssey and new outfits for Mario! Some destinations have very exclusive dress codes, after all…\nHand a Joy-Con™ controller to a friend to enjoy simultaneous multiplayer: Player 1 controls Mario while Player 2 controls Mario's new ally Cappy.\nUse Snapshot Mode to freeze time while playing the game and take screenshots that you can customize using various options and filters. Screenshots can be shared via social media or uploaded to PCs and smart devices* using all of the Nintendo Switch™ system's built-in screenshot tools.\nA special edition Nintendo Switch™ hardware bundle will launch alongside the game. This special edition includes a download code for the full game, red left and right Joy-Con™ controllers, and a Super Mario Odyssey™ themed Nintendo Switch carrying case.","lastModified":1560931743389,"id":"fWmlUNmveycEsP2y5ez7JSVfV-cGjjz6","nsuid":"70010000001130","slug":"super-mario-odyssey-switch","boxArt":"/content/dam/noa/en_US/games/switch/s/super-mario-odyssey-switch/Switch_SuperMarioOdyssey_box.png","gallery":"N4bnI4ZDE6JTPeMbUtX5zubMaD2ZKwDk","platform":"Nintendo Switch","releaseDateMask":"2017-10-26T00:00:00.000-07:00","characters":["Mario"],"categories":["Action","Platformer"],"msrp":59.99,"salePrice":null,"esrb":"Everyone 10+","esrbDescriptors":["Cartoon Violence","Comic Mischief"],"virtualConsole":"na","generalFilters":["Online Play via Nintendo Switch Online"],"filterShops":["At retail","On Nintendo.com"],"filterPlayers":["1+"],"publishers":["Nintendo"],"developers":["Nintendo"],"players":"up to 2 players","featured":true,"freeToStart":false,"priceRange":"$40+","availability":["Available now"],"objectID":"3ce3fb54-5f95-3a24-9101-7faa694c4b6f","_highlightResult":{"title":{"value":"Super Mario Odyssey","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]},"id":{"value":"fWmlUNmveycEsP2y5ez7JSVfV-cGjjz6","matchLevel":"none","matchedWords":[]},"nsuid":{"value":"70010000001130","matchLevel":"none","matchedWords":[]}}},{"type":"game","locale":"en_US","url":"/games/detail/mario-kart-8-deluxe-switch","title":"Mario Kart 8 Deluxe","description":"Hit the road with the definitive version of Mario Kart 8 and play anytime, anywhere! Race your friends or battle them in a revised battle mode on new and returning battle courses. Play locally in up to 4-player multiplayer in 1080p while playing in TV Mode. Every track from the Wii U version, including DLC, makes a glorious return. Plus, the Inklings appear as all-new guest characters, along with returning favorites, such as King Boo, Dry Bones, and Bowser Jr.!\nFeatures:\n\nRace your friends in the definitive version of Mario Kart 8, only on Nintendo Switch!\nRace as every character on every track from the Wii U version, including DLC characters and tracks.\nPop some balloons in the revamped Battle mode, complete with Balloon Battle and Bob-omb Blast.\nBattle on new courses, like Urchin Underpass and Battle Stadium, or returning ones, such as GCN Luigi's Mansion and SNES Battle Course 1.\nInkling Girl & Inkling Boy from Splatoon, King Boo, Dry Bones, and Bowser Jr. join the roster!\nPlayers can choose a new Smart Steering feature which makes driving and staying on the track easy for novice players and kids even at 200cc\nThree new vehicles have been added, two are even inspired by Splatoon\nCarry two items at the same time\nReturning items include Boo, the item stealing ghost, and the Feather, which gives you a high jump in battle mode.\nPlay your friends in local wireless multiplayer with up to 8 players.\nDrive through in 1080p HD quality in TV mode\nPlay on the go with handheld mode and play anytime, anywhere","lastModified":1560931743389,"id":"ySxBNOPhx0xWi1Zf7Lp1PZ08Mgd7Dvm-","nsuid":"70010000000153","slug":"mario-kart-8-deluxe-switch","boxArt":"/content/dam/noa/en_US/games/switch/m/mario-kart-8-deluxe-switch/Switch_MK8-Deluxe_box.png","gallery":"h5cWI1YTE6gLmwBccTAauweUaH1pQsWV","platform":"Nintendo Switch","releaseDateMask":"2017-04-27T00:00:00.000-07:00","characters":["Mario"],"categories":["Racing","Multiplayer"],"msrp":59.99,"salePrice":null,"esrb":"Everyone","esrbDescriptors":["Comic Mischief"],"virtualConsole":"na","generalFilters":["Online Play via Nintendo Switch Online"],"filterShops":["At retail","On Nintendo.com"],"filterPlayers":["4+","3+","2+","1+"],"publishers":["Nintendo"],"developers":["Nintendo"],"players":"up to 12 players","featured":true,"freeToStart":false,"priceRange":"$40+","availability":["Available now"],"objectID":"fbf4b047-e25b-3f4e-a7f9-23d042e0a733","_highlightResult":{"title":{"value":"Mario Kart 8 Deluxe","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]},"id":{"value":"ySxBNOPhx0xWi1Zf7Lp1PZ08Mgd7Dvm-","matchLevel":"none","matchedWords":[]},"nsuid":{"value":"70010000000153","matchLevel":"none","matchedWords":[]}}},{"type":"game","locale":"en_US","url":"/games/detail/super-mario-run-ios","title":"Super Mario Run","description":"In this game, Mario constantly moves forward through the courses while you use a variety of jumps to navigate. Mario will behave differently depending on the timing of your taps, so it's up to you to show off particularly smooth moves, gather coins, and reach the goal.\nWorld Tour\n\n\nRun and jump with style to rescue Princess Peach from Bowser’s clutches!\nTravel through plains, caverns, haunted houses, airships, castles, and more...\nClear 6 worlds filled with 24 brand-new courses designed for one-handed play!\n\nToad Rally\n\nShow off Mario's stylish moves, compete against your friends and challenge people from all over the world.\nA challenge mode where the competition differs each time you play.\nCompete against the stylish moves of other players for the highest score as you gather coins and get cheered on by a crowd of Toads. If you’re impressive enough, the Toads may even come live in your kingdom.\nYou can also perform stylish moves to fill up your gauge and launch into Coin Rush!\n*In order to play Toad Rally, you will need Rally Tickets that you can acquire in a variety of ways, such as clearing worlds or through bonus games in your kingdom.\n\nKingdom Builder\n\nGather coins and Toads to build your very own kingdom.\nCreate your unique kingdom with buildings and decorations that you acquire with the help of Toads gathered in Toad Rally.","lastModified":1558113070465,"slug":"super-mario-run-ios","boxArt":"/content/dam/noa/en_US/games/mobile/s/super-mario-run-ios/vnuUH5fEcvLhpDMt0SoJ2VLE7EiwqW5-.png","gallery":"/content/dam/noa/en_US/games/mobile/s/super-mario-run-ios/gallery/dRfluIYycYG8vazdUcPV68Mv1btV_688.jpg","platform":"iOS","releaseDateMask":"2016-12-15T00:00:00.000-08:00","characters":["Mario"],"categories":["Action","Adventure"],"msrp":9.99,"esrbDescriptors":[],"virtualConsole":"na","generalFilters":[],"filterShops":[],"filterPlayers":[],"publishers":["Nintendo"],"players":"1 player","featured":true,"freeToStart":true,"availability":["Available now"],"objectID":"d73f5551-a35b-3ef9-99bd-261947575247","_highlightResult":{"title":{"value":"Super Mario Run","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]}}},{"type":"game","locale":"en_US","url":"/games/detail/super-mario-run-android","title":"Super Mario Run","description":"In this game, Mario constantly moves forward through the courses while you use a variety of jumps to navigate. Mario will behave differently depending on the timing of your taps, so it's up to you to show off particularly smooth moves, gather coins, and reach the goal.\nWorld Tour\n\n\nRun and jump with style to rescue Princess Peach from Bowser’s clutches!\nTravel through plains, caverns, haunted houses, airships, castles, and more...\nClear 6 worlds filled with 24 brand-new courses designed for one-handed play!\n\nToad Rally\n\nShow off Mario's stylish moves, compete against your friends and challenge people from all over the world.\nA challenge mode where the competition differs each time you play.\nCompete against the stylish moves of other players for the highest score as you gather coins and get cheered on by a crowd of Toads. If you’re impressive enough, the Toads may even come live in your kingdom.\nYou can also perform stylish moves to fill up your gauge and launch into Coin Rush!\n*In order to play Toad Rally, you will need Rally Tickets that you can acquire in a variety of ways, such as clearing worlds or through bonus games in your kingdom.\n\nKingdom Builder\n\nGather coins and Toads to build your very own kingdom.\nCreate your unique kingdom with buildings and decorations that you acquire with the help of Toads gathered in Toad Rally.","lastModified":1558113070465,"slug":"super-mario-run-android","boxArt":"/content/dam/noa/en_US/games/mobile/s/super-mario-run-android/vnuUH5fEcvLhpDMt0SoJ2VLE7EiwqW5-.png","gallery":"/content/dam/noa/en_US/games/mobile/s/super-mario-run-android/gallery/dRfluIYycYG8vazdUcPV68Mv1btV_688.jpg","platform":"Android","releaseDateMask":"2016-12-15T00:00:00.000-08:00","characters":["Mario"],"categories":["Action","Adventure"],"msrp":9.99,"esrbDescriptors":[],"virtualConsole":"na","generalFilters":[],"filterShops":[],"filterPlayers":[],"publishers":["Nintendo"],"players":"1 player","featured":true,"freeToStart":true,"availability":["Available now"],"objectID":"4c03e249-bcda-325a-b87d-d79087083e63","_highlightResult":{"title":{"value":"Super Mario Run","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]}}},{"type":"game","locale":"en_US","url":"/games/detail/mario-and-sonic-at-the-olympic-games-tokyo-2020-switch","title":"Mario and Sonic at the Olympic Games Tokyo 2020","description":"Go for gold as you compete in action-packed sports games, including 4 brand new events to Tokyo 2020—Skateboarding, Karate, Surfing, and Sport Climbing, as well as a large selection of classic events.\nGet the party started on your Nintendo Switch™ with a variety of ways to play, including button play and motion controls in multiplayer game modes that support up to 4 locally and up to 8 online. \n\nPlay as Mario, Sonic, Yoshi, Amy Rose, Luigi, Dr. Eggman, and many more of your favorite characters from November 2019. Stay tuned for more information!","lastModified":1560528580429,"nsuid":"70010000019616","slug":"mario-and-sonic-at-the-olympic-games-tokyo-2020-switch","boxArt":"/content/dam/noa/en_US/games/switch/m/mario-and-sonic-at-the-olympic-games-tokyo-2020-switch/Switch_MarioSonicOlympicGames-Tokyo_box.png","gallery":"9tN2V5aDE6u9JX6o0jbsIcACv2zTj3km","platform":"Nintendo Switch","releaseDateMask":"Nov 2019","characters":["Mario"],"categories":["Action","Multiplayer","Party","Sports"],"esrb":"Rating Pending","esrbDescriptors":["Visit www.esrb.org for rating information."],"virtualConsole":"na","generalFilters":["Online Play via Nintendo Switch Online"],"filterShops":["At retail"],"filterPlayers":["4+","3+","2+","1+"],"publishers":["Sega"],"developers":["Sega"],"players":"up to 8 players","featured":false,"freeToStart":false,"priceRange":null,"msrp":null,"salePrice":null,"availability":["Coming soon"],"objectID":"0150cc45-610c-390b-8c0d-105c1bde9ef6","_highlightResult":{"title":{"value":"Mario and Sonic at the Olympic Games Tokyo 2020","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]},"nsuid":{"value":"70010000019616","matchLevel":"none","matchedWords":[]}}},{"type":"game","locale":"en_US","url":"/games/detail/arcade-archives-vs-super-mario-bros-switch","title":"Arcade Archives VS. SUPER MARIO BROS.","description":""VS. SUPER MARIO BROS." is an action game released in 1986 by Nintendo. \n Mario and Luigi must go on a widespread adventure in order to rescue \n Peach from the clutches of Bowser. This version is from the Nintendo \n VS.SYSTEM, and the positions of enemies and items differ from the \n Nintendo Entertainment System (NES) version.\n \n \n The "Arcade Archives" series has faithfully reproduced many classic \n Arcade masterpieces.\n \n \n Players can change various game settings such as game difficulty, and \n also reproduce the atmosphere of arcade display settings at that time. \n Players can also compete against each other from all over the world with \n their high scores.\n \n \n Please enjoy the masterpiece that built a generation for video games.","lastModified":1558113070465,"id":"SEGmVXHI5Nu9WBDuRVIsWL6HosYbsHoC","nsuid":"70010000003432","slug":"arcade-archives-vs-super-mario-bros-switch","boxArt":"/content/dam/noa/en_US/games/switch/a/arcade-archives-vs-super-mario-bros-switch/Switch_ArcadeArchives-SuperMarioBros_box_eShop.png","gallery":"/content/dam/noa/en_US/games/switch/a/arcade-archives-vs-super-mario-bros-switch/screenshot-gallery/Switch_ArcadeArchives-SuperMarioBros_01.jpg","platform":"Nintendo Switch","releaseDateMask":"2017-12-22T00:00:00.000Z","characters":["Mario"],"categories":["Action","Arcade"],"msrp":7.99,"esrb":"Everyone","esrbDescriptors":["Mild Fantasy Violence"],"virtualConsole":"na","generalFilters":[],"filterShops":["On Nintendo.com"],"filterPlayers":["1+"],"publishers":["HAMSTER"],"players":"up to 2 players","featured":false,"freeToStart":false,"priceRange":"$5 - $9.99","salePrice":null,"availability":["Available now"],"objectID":"e798f9ad-c590-38cd-b5b5-3fcc4c7746c6","_highlightResult":{"title":{"value":"Arcade Archives VS. SUPER MARIO BROS.","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]},"id":{"value":"SEGmVXHI5Nu9WBDuRVIsWL6HosYbsHoC","matchLevel":"none","matchedWords":[]},"nsuid":{"value":"70010000003432","matchLevel":"none","matchedWords":[]}}},{"type":"game","locale":"en_US","url":"/games/detail/mario-rabbids-kingdom-battle-gold-edition-switch","title":"Mario + Rabbids Kingdom Battle Gold Edition","description":"This game is available for purchase exclusively on Nintendo eShop for \n Nintendo Switch.\n \n \n Gold Edition includes game and season pass:\n \n \n \n 8 new solo challenges + 5 co-op maps\n \n \n 16 new weapons.\n \n \n An exclusive world featuring a new hero, coming in early 2018.\n \n \n \n The Mushroom Kingdom has been torn apart by a mysterious vortex, \n transporting the chaotic Rabbids into this once-peaceful land. To \n restore order, Mario, Luigi, Princess Peach, and Yoshi must team up with \n a whole new crew: four Rabbids heroes!\n \n \n Together, they will battle with weapons through four worlds filled with \n combat, puzzles, and unpredictable enemies. Developed exclusively for \n the Nintendo Switch™ system, Mario + Rabbids Kingdom Battle is the best \n of the Mario and Rabbids franchises, combining all that you love about \n Mario's iconic universe with the side-splitting antics of the Rabbids.","lastModified":1560928134538,"id":"c0820NjIOvCpaf3lX5QbfWDrwuXCsjoH","slug":"mario-rabbids-kingdom-battle-gold-edition-switch","boxArt":"/content/dam/noa/en_US/games/switch/m/mario-rabbids-kingdom-battle-gold-edition-switch/Switch_MarioRabbidsKingdomBattle-Gold_box_eShop.png","gallery":"wyeGJmYzE6MSTVJIo41uElKf-Y5M45Ot","platform":"Nintendo Switch","releaseDateMask":"2017-11-17T00:00:00.000Z","characters":["Mario"],"categories":["Adventure","Strategy"],"msrp":79.99,"esrb":"Everyone 10+","esrbDescriptors":["Cartoon Violence","Comic Mischief","Mild Language"],"virtualConsole":"na","generalFilters":["DLC available","Online Play via Nintendo Switch Online"],"filterShops":["On Nintendo.com"],"filterPlayers":["1+"],"publishers":["Ubisoft"],"developers":["Ubisoft Paris"],"players":"up to 2 players","featured":false,"freeToStart":false,"availability":["Available now"],"objectID":"c1b33ce7-7e22-3fd4-8949-db1a5e3d89a1","_highlightResult":{"title":{"value":"Mario + Rabbids Kingdom Battle Gold Edition","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]},"id":{"value":"c0820NjIOvCpaf3lX5QbfWDrwuXCsjoH","matchLevel":"none","matchedWords":[]}}},{"type":"game","locale":"en_US","url":"/games/detail/mario-party-the-top-100-3ds","title":"Mario Party: The Top 100","description":"Ever partied with Mario? Stuffed mouthfuls of pizza? Dodged penguins? \n Well, the party is back with the top 100 minigames in Mario Party™ \n series history! Test your memory, speed, and luck in a variety of \n multiplayer minigame types. With Download Play, up to 4 players can \n party on their own system with just 1 Game Card! This time the fun comes \n faster, thanks to some fresh features, including a Favorites option for \n quicker minigame selection and streamlined instructions. Start playing \n and pretty soon you'll find there's only enough room for the best at \n this funfest!","lastModified":1558113070465,"id":"PxKsjH__kWtbaQkCFkNfJexciP-zu1Ss","nsuid":"50010000043879","slug":"mario-party-the-top-100-3ds","boxArt":"/content/dam/noa/en_US/games/3ds/m/mario-party-the-top-100-3ds/3DS_MarioParty-100_box.png","gallery":"oweWFyZDE6MRgHlNpJ0m4ea-Z2nQJUSz","platform":"Nintendo 3DS","releaseDateMask":"2017-11-10T00:00:00.000Z","characters":["Mario"],"categories":["Party","Multiplayer"],"msrp":39.99,"esrb":"Everyone","esrbDescriptors":["Mild Cartoon Violence"],"virtualConsole":"na","generalFilters":[],"filterShops":["At retail","On Nintendo.com"],"filterPlayers":["3+","2+","1+"],"publishers":["Nintendo"],"developers":["Nintendo"],"players":"up to 4 players","featured":false,"freeToStart":false,"priceRange":"$20 - $39.99","salePrice":null,"availability":["Available now"],"objectID":"d8409797-aaf0-3fe1-8bf9-da8edf4308dd","_highlightResult":{"title":{"value":"Mario Party: The Top 100","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]},"id":{"value":"PxKsjH__kWtbaQkCFkNfJexciP-zu1Ss","matchLevel":"none","matchedWords":[]},"nsuid":{"value":"50010000043879","matchLevel":"none","matchedWords":[]}}},{"type":"game","locale":"en_US","url":"/games/detail/mario-luigi-superstar-saga-bowsers-minions-3ds","title":"Mario & Luigi: Superstar Saga + Bowser's Minions","description":"The game that launched the Mario & Luigi series returns looking better \n than ever before. In this renewed classic, Mario and Luigi journey to \n the Beanbean Kingdom with Bowser to restore Princess Peach’s voice. \n Control Mario and Luigi simultaneously, making use of their unique Bros. \n Moves to solve puzzles and emerge victorious in action-packed battles. \n Pay heed to the enemy’s patterns and time your reactions right to land \n satisfying counterblows. Included in this remake is the Minion Quest: \n The Search for Bowser mode, which tells the story of the game from the \n perspective of Bowser’s minions. Recruit characters to grow your own \n Minion army as you fight to locate your missing leader!\n \n \n Features:\n \n \n \n Mario and Luigi have access to different techniques, known as Bros. \n Moves, necessary for solving puzzles on their adventure. Switch \n between the two characters at will to pave your way and progress \n through new areas.\n \n \n Time your button presses to skillfully dodge enemy blows, land \n devastating counters, and inflict increased damage in battle. Utilize \n Bros. Attacks that dish out massive damage!\n \n \n In the brand new mode titled Minion Quest: The Search for Bowser, \n become the unlikely hero, Captain Goomba. Journey together with \n ShyGuy, Boo and other familiar Baddies.\n \n \n The Minion Quest storyline takes place during Mario & Luigi’s classic \n adventure. Find out what really transpired behind-the-scenes!\n \n \n Compatible with amiibo™ figures* from the Super Mario series, \n including Mario and Luigi amiibo figures. Also coming soon are brand \n new Goomba and Koopa Troopa amiibo. The Goomba, Koopa Troopa and Boo \n amiibo figures will each have read/write compatibility.","lastModified":1558113070465,"id":"akwbpcmASKJ9suz_77yPSEYz8Z_qU_v-","nsuid":"50010000043575","slug":"mario-luigi-superstar-saga-bowsers-minions-3ds","boxArt":"/content/dam/noa/en_US/games/3ds/m/mario-luigi-superstar-saga-bowsers-minions-3ds/3DS_MarioLuigi-SuperstarSaga-Bowser_box.png","gallery":"4wZDEzZDE6-pElnIeoGFlito0DxHS72r","platform":"Nintendo 3DS","releaseDateMask":"2017-10-06T00:00:00.000Z","characters":["Mario"],"categories":["Action","Adventure","Role-Playing"],"msrp":39.99,"esrb":"Everyone","esrbDescriptors":["Mild Cartoon Violence","Mild Suggestive Themes"],"virtualConsole":"na","generalFilters":[],"filterShops":["At retail","On Nintendo.com"],"filterPlayers":[],"publishers":["Nintendo"],"developers":["ALPHADREAM"],"players":"1 player","featured":false,"freeToStart":false,"priceRange":"$20 - $39.99","salePrice":null,"availability":["Available now"],"objectID":"1dafd11b-69cd-3405-ae8a-6e2b6b4267b3","_highlightResult":{"title":{"value":"Mario & Luigi: Superstar Saga + Bowser's Minions","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]},"id":{"value":"akwbpcmASKJ9suz_77yPSEYz8Z_qU_v-","matchLevel":"none","matchedWords":[]},"nsuid":{"value":"50010000043575","matchLevel":"none","matchedWords":[]}}},{"type":"game","locale":"en_US","url":"/games/detail/arcade-archives-mario-bros-switch","title":"Arcade Archives Mario Bros.","description":"Mario Bros. is an action game released by Nintendo in 1983.\n \n \n It's the first game that used "Mario" in the title. Control Mario or \n Luigi in order to punch the enemies coming out of pipes from below to \n turn them over and then defeat them. In the two-player mode, both \n players can choose to work together or work against each other and enjoy \n the game in a myriad of ways.\n \n \n The "Arcade Archives" series has faithfully reproduced many classic \n Arcade masterpieces.\n \n \n Players can change various game settings such as game difficulty, and \n also reproduce the atmosphere of arcade display settings at that time. \n Players can also compete against each other from all over the world with \n their high scores.\n \n \n Please enjoy the masterpiece that built a generation for video games.","lastModified":1558113070465,"id":"p2Du5ZtXYls5jpbpU-XVp2Jdku4PJQb6","nsuid":"70010000000917","slug":"arcade-archives-mario-bros-switch","boxArt":"/content/dam/noa/en_US/games/switch/a/arcade-archives-mario-bros-switch/Switch_ArcadeArchives-MarioBros_box_eShop.png","gallery":"/content/dam/noa/en_US/games/switch/a/arcade-archives-mario-bros-switch/screenshot-gallery/Switch_ArcadeArchives-MarioBros_01.jpg","platform":"Nintendo Switch","releaseDateMask":"2017-09-27T00:00:00.000Z","characters":["Mario"],"categories":["Action","Arcade"],"msrp":7.99,"esrb":"Everyone","esrbDescriptors":["Mild Fantasy Violence"],"virtualConsole":"na","generalFilters":[],"filterShops":["On Nintendo.com"],"filterPlayers":["1+"],"publishers":["HAMSTER"],"players":"2 players alternating","featured":false,"freeToStart":false,"priceRange":"$5 - $9.99","salePrice":null,"availability":["Available now"],"objectID":"88614288-5311-3071-b500-ad7048a27e07","_highlightResult":{"title":{"value":"Arcade Archives Mario Bros.","matchLevel":"full","fullyHighlighted":false,"matchedWords":["mario"]},"id":{"value":"p2Du5ZtXYls5jpbpU-XVp2Jdku4PJQb6","matchLevel":"none","matchedWords":[]},"nsuid":{"value":"70010000000917","matchLevel":"none","matchedWords":[]}}}],"nbHits":126,"page":0,"nbPages":7,"hitsPerPage":20,"processingTimeMS":1,"exhaustiveNbHits":true,"query":"Mario","params":"query=Mario&restrictSearchableAttributes=%5B%22title%22%5D"} \ No newline at end of file diff --git a/spec/nintendo_eshop/games_list_spec.rb b/spec/nintendo_eshop/games_list_spec.rb new file mode 100644 index 0000000..7d9289e --- /dev/null +++ b/spec/nintendo_eshop/games_list_spec.rb @@ -0,0 +1,15 @@ +RSpec.describe NintendoEshop::GamesList do + it "includes enumerable" do + expect(NintendoEshop::GamesList).to include(Enumerable) + end + + describe ".by_title" do + it "returns a list of games" do + actual = NintendoEshop::GamesList.by_title("Mario") + first_game = actual.first + + expect(actual).to be_a(NintendoEshop::GamesList) + expect(first_game.title).to eq("Dr. Mario World") + end + end +end