-
Notifications
You must be signed in to change notification settings - Fork 1
List of Ruby Kata to Update
Ruby 3.0 was added. This page lists the kata requiring manual updates.
From Ruby 3.0, we'll be using RSpec under the hood instead of a custom test framework. Tests should be compatible as long as the structure matches describe -> it -> assertion
. Assertion methods from the old test framework is still available to help with migration, but it should not be used for new tests.
/home/codewarrior/solution.txt
no longer exists, use /workspace/solution.txt
, which is the standard location for all languages and versions (also exists in older language versions).
Test.describe
and Test.it
are no longer supported.
To avoid enabling Ruby 3.0 for a kata with some edge cases, the structure of the test was checked before running it with Ruby 3.0. This section lists both kata with unsupported test structure or failing with Ruby 3.0.
Examples:
describe -> assertion
is invalid:
describe "Group" do
Test.assert_equals(add(1, 1), 2)
end
it
without describe
is invalid:
it "test case" do
Test.assert_equals(add(1, 1), 2)
end
Top level assertion is invalid:
Test.assert_equals(add(1, 1), 2)
Useless test group/case like the following should be removed:
describe "Not a test group" do
puts "some fancy output"
end
Unfortunately, there are many from myjinxin. Also, remove/minimize any logs in test cases.
Assertions can be updated to use RSpec matchers at the same time, but fixing the test structure to make it Ruby 3.0 compatible should be prioritized.
Use the new "Fork" feature to update:
You should see "Fork" when viewing a kata with the language you've completed in selected. Click that to open a translation editor with the current version filled in. The proposed changes can be merged or rejected after publishing, just like translations.
NOTE: If you find a repeating pattern that can be fixed using a Ruby script, let me know.
These are grouped by the translator unless the translator only did one.
- 2 Arrays 1 Sort
- 80's Kids #1: How Many Licks Does it Take?
- 80's Kids #3: Punky Brewster's Socks
- 80's Kids #4: Legends of the Hidden Temple
- 80's Kids #7: She's a Small Wonder
- A Needle in the Haystack
- AD2070: Help Lorimar troubleshoot his robots- ultrasonic distance analysis
- Acronym Buster
- Adding Binary Numbers
- Airport Arrivals/Departures - #1
- Algorithmic predicament- Bug Fixing #9
- Alphabet war - airstrike - letters massacre
- Alphabet war
- Alphabetized
- Always perfect
- Are they square 2?
- Array Info
- Arrays and hex color codes
- BBQ Pitmaster
- Balanced Number (Special Numbers Series #1 )
- Band name generator
- Barking mad
- Base Conversion
- Basic DeNico
- Basic Sequence Practice
- Batman Quotes
- Breadcrumb Generator
- Caesar Cipher Helper
- Calculating Expected Utility
- Cambridge Word Scramble
- Chuck Norris III - Cage Match
- Class conundrum - Bug Fixing #7
- Computing the complex logarithm function
- Convert between radians and degrees
- Correct the date-string
- Custom Christmas Tree
- Cycle Detection: greedy algorithm
- D&D Character generator #3: carrying capacity
- Decibel Scale
- Decimal to any Rational or Irrational Base Converter
- Delete occurrences of an element if it occurs more than n times
- Difference between biggest 2 numbers
- Déjà vu Duplicates
- EAN Validation
- Elementary Arithmetic - Carries Count
- Elo rating - one game, one pair
- Explosive Sum
- Extra Perfect Numbers (Special Numbers Series #7)
- Factorial tail
- Feed Kahumolings!
- Fibonacci, Tribonacci and friends
- Find heavy ball - level: conqueror
- Find heavy ball - level: master
- Find heavy ball - level: novice
- Finish Guess the Number Game
- Geometric Mean I
- Geometric Mean II
- Get the Excel column title!
- Grasshopper - Bug Squashing
- Group Repeating Fractions
- HTML Complementary Color
- Hamming Numbers
- Hamster me
- Histogram - H1
- Job Matching #1
- Josephus Permutation
- Josephus Survivor
- Jumble words
- Jumping Number (Special Numbers Series #4)
- LOTTO 6 aus 49 - 6 of 49
- Last digit of a large number
- Make a spiral
- Map function issue
- Max number of people and year in a specific place
- Maximum Gap (Array Series #4)
- Maximum Multiple
- Maximum Triplet Sum (Array Series #7)
- Morse Encoding
- Most improved - Puzzles #4
- Multiply Two Numbers Without Integers
- Name on billboard
- Ninja vs Samurai: Attack + Block
- No Modulo Mk II
- Number , number ... wait LETTER !
- Number encrypting: decypher
- One Variable Second Degree Equation Solver
- Parse the log
- Permutations Of An Array And Associated Values
- Prefill an Array
- Prime number decompositions
- Ratio of Bouncy Numbers
- RegExp Fun #1 - When I miss few days of gym
- Regex Password Validation
- Remember
- Remove HTML tags using regexp
- Return 1, 2, 3 randomly
- Sequence classifier
- Shop Inventory Manager
- Simple Events
- Simple fraction to mixed number converter
- Sweet Dreams are Made of Cheese
- Text align justify
- There are two kinds of people
- Tom's Allergies
- Transpose of a Matrix
- UN-usual Sort
- Width-Height Ratio
- validDate Regex
- validate code with simple regex
- zero-balanced Array
- Calculate Derivative #1 - Single Integer Equation
- Consecutive Count
- Find the Integral
- Iterative Rotation Cipher
- Square sums (simple)
- String -> N iterations -> String
- Strong password?
- Unary Messages
- Backwards Read Primes
- Disguised sequences (II)
- Double Cola
- First Variation on Caesar Cipher
- Floating-point Approximation (III)
- Growth of a Population
- I love big nums and I cannot lie
- Is my friend cheating?
- Looking for a benefactor
- Meeting
- Primes in numbers
- What's a Perfect Power anyway?
- Which are in?
- ASCII85 Encoding & Decoding
- Codewars style ranking system
- Linked Lists - Get Nth Node
- Nesting Structure Comparison
- Ruby Array invoke instance method
- Simple Interactive Interpreter
- Simpler Interactive Interpreter
- Temperature converter
- The builder of things
- Typer.js
Can be updated by
s/it .+\n\s+(.+)\s+end/\1/
Removes
it
when there's a single line in between. Some tests have more than one line inside a nestedit
.
- #10 Matrices: Creating Hankel Matrices
- Approximate Fractions
- Are you Geometric or Arithmetic? No, I´m both of them.
- Avoid trillion years of calculations !!
- Building Chains Using the Arithmetic Derivative of a Number
- Composed Integers Having Prime Factors Only Once
- Equivalent Dice
- Generate Numbers From Digits #2
- Identifying Top Users and their Corresponding Purchases On a Website
- Non Decomposable Primes as Sums of Perfect Squares
- Possible Triangles Formed with Available Iron Rods
- Primes with Even Digits
- Rearrangement of Numbers to Have The Minimum Divisible by a Given Factor
- Required Data I
- Simultaneous Equations - Three Variables
- Sorting Arrays by the Amount of Perfect Squares that Each Element May Generate
- The Primes as a Result of the Longest Consecutive Sum I (https://www.codewars.com/kata/57aaaada72292d3b8f0001b4/ruby)
- Tracking Hits for Different Sum Values for Different Kinds of Dice
- Working With Coloured Numbers II
- Working With Coloured Numbers
- Adding words - Part II
- Connect 4
- Guess Who?
- Guess the Word: Count Matching Letters
- Mastermind
- Pigs in a Pen
- Street Fighter 2 - Character Selection - Part 2
- Sum of all the multiples of 3 or 5
- Vending Machine
- Building blocks
- Consecutive Digit Constraints
- Fractions of a currency' smallest value
- Last man standing
- Recursive Floor Sequence
- Routes in a square grid
- Sequence generator
- Special Multiples
- Using the Codewars API - Kata Rank
- Zip it!
- Football Fever!
- Loop Through Conway's Game of Life
- Make Ruby Hashes Act Like JavaScript Objects
- Solve the Mysteries of Christianity
- Alphametics Solver
- Battleship field validator II
- Battleship field validator
- Bird Mountain
- Blaine is a pain
- Break the pieces (Evilized Edition)
- Cut the cake
- Expression Transpiler
- Gerrymander Solver
- Hard Sudoku Solver
- Hard Sudoku Solver
- Mahjong - #1 Pure Hand
- Path Finder #3: the Alpinist
- Puzzle Fighter
- Simplifying
- Symbolic differentiation of prefix expressions
- Transforming Maze Solver
- 2D Vector Mapping
- Consecutive Ducks
- Hexagon Beam Max Sum
- Line Safari - Is that a line?
- List of all Rationals
- Schrödinger's Boolean
- ATM Heist
- Climbing the Leaderboard
- Connect Four
- Dumb News: The Truth About CW Leaderboard !
- Find the Word Pair!
- How many are smaller than me II?
- Memory Reallocation
- Missing number in Unordered Arithmetic Progression
- One Line Task: Squirrel And Tree
- One line task: Square Every Digit
- Prime Streaming (PG-13)
- Argue the toss
- Duck Duck Goose
- Find within array
- Generate An Array of Unique Strings
- Scraping: Codewars Top 500 Users
- The rarest pepe
- Translate to 1337
- Calculate the function f(x) for a simple linear sequence (Easy)
- Calculate the function f(x) for a simple linear sequence (Medium)
- Football League Table System
- Guess the number!
- Roulette Bet Calculator
- Tile Map Path Finding
- Basic HTTP Response Class
- Basic Router With Named Segments
- Implement Hash#safe_dig
- Map With Empty Fallback
- Readable N choose K
- Split Into Arrays of Equal Size
- 80's Kids #10: Captain Planet
- 80's Kids #6: Rock 'Em, Sock 'Em Robots
- 80's Kids #8: The Secret World of Alex Mack
- 80's Kids #9: Down in Fraggle Rock
- Create a House Cleaning Rota
- Magic The Gathering #2: Mana
- Average Array
- Back to the Future?
- Simple Fun #332: Catch Thief
- Simple Fun #341: Minimum Bonus
- Simple Fun #344: Children And Apples
- Every nth array element. (Advanced)
- Food combinations
- Reversi row rudiments
- Testing 'Food combinations'
- BECOME IMMORTAL
- Faberge easter eggs crush test [linear]
- Geohashing
- Insane Coloured Triangles
- Regular Expression - Check if divisible by 0b111 (7)
- Round and Round
- Upside-Down Numbers - Challenge Edition
- Deadlock Detection
- Find The Object
- Re-entrant Mutex (aka Counting Mutex)
- Storing Codes
- Wait on All Threads
- Wait on Any Thread
- Add _ - accessors to Hash
- Get config values of hash
- Phone my kids
- Return substring instance count - 2
- Set - the card game
- Guess the list pattern #3
- Guess the list pattern #5
- Guess the list pattern #6
- Guess the string pattern #1 - Advanced
- Decimals or groups of thousands??
- [Minecraft Series #3] Lava is amazing!
- [Minecraft Series #4] Lava is amazing, however...
- From..To..Series #7: from sentence to camelCase. Can you convert it?
- Multiplication table
- Zero Terminated Sum
- Esolang Interpreters #1 - Introduction to Esolangs and My First Interpreter (MiniStringFuck)
- The Prediction
- Pirates!! Are the Cannons ready!??
- Palindrome chain length
- Line Type Parser
- The Power of Exponents
- Orthogonal Vectors
- Delta Bits
- Credit Card Mask
- The dropWhile Function
- Count the Ones
- Candy problem
- Figure Out the Notes
- 80's Kids #2: Help ALF Find His Spaceship
- Genetic Algorithm Series - #3 Crossover
- Array of all primes up to number N
- Credit card issuer checking
- Powers of 3
- Pluralization
- Coding Meetup #1 - Higher-Order Functions Series - Count the number of JavaScript developers coming from Europe
- Coding Meetup #2 - Higher-Order Functions Series - Greet developers
- Coding Meetup #4 - Higher-Order Functions Series - Find the first Python developer
- Magic Three
- Do you know how to make Query String?
- STRING-ASCII_STRING??
- Life of Possibilities
- Strip Url Params
- Calculate Hypotenuse of Right-angled Triangle
- Good vs Evil
- Who has the most money?
- Pascal's Triangle #2
- Dreidel dreidel
- Adding ordinal indicator suffixes to numbers
- Sort sentence pseudo-alphabetically
- Atbash Cipher Helper
- Palindrome for your Dome
- Big to Little Endian
- Evil Autocorrect Prank
- What adds up
- Bracket Duplicates
- Wind component calculation
- House of cards
- Ping-Pong service problem
- Run-length encoding
- NATO Phonetic Alphabet Ruby
- Triangular matrices.
- Triangle number check
- Enigeliisohe too Eniigeeliiisoohee Toroanisoliatooro
- Crack the Encrypted Email
- Next level string padding
- Backspaces in string
- Let's flat them out
- Doors in the school
- 0 to 100, real quick!
- DotNotation Transformer
- The Wolf of Wall Street
- Unique Strings
- Reversing Euclid's GCD. Parameters out of results
- Keith Numbers
- IBAN Validator
- Pythagorean Triplets
- Vonhyou's Math Class!
- Squares in a Rectangle
- Read a UPC/Barcode
- Word Segmentation: MaxMatch
- Where my anagrams at?
- Rotate an array matrix
- My smallest code interpreter (aka Brainf**k)
- Greed is Good
- Email Validation
- Convert PascalCase string into snake_case
- Can you get the loop ?
- #Hashtag
- Trip Checker
- Tree Reconstruction
- Blackjack Scorer
- Integer to English
- Cycle Detection: Floyd's The Tortoise and the The Hare
- self_converge
- Earliest Occurring Unique Value in Stream
- Endianness Conversion
- Quipu Calculator
- Fouriest transformation
- Most frequently used words in a text
- Snail
- The observed PIN
- Sort binary tree by levels
- Carmichael function
- Recover a secret string from random triplets
- Pyramid Slide Down
- Find all possible number combos that sum to a number
- Longest Common Subsequence (Performance version)
- Calculator
- Rail Fence Cipher: Encoding and Decoding
- Knight's Attack!
- Decode the Morse code, for real
- Count the likes
- Cable Matching Problem
- Synchonizing records
- counting in dot notation
- Count IPv6 Addresses (ruby only)
- Create a linked list class and its methods
- German Unicode Characters to ASCII Equivalents
- Date Range Formatter
- Texas Hold'em Poker
- Reverse word order in place.
- Best GF (Guardian Force) junctions based on compatibility
- Playfair cipher
- Palindromes
- Word proposals
- Square Root Games
- Mahjong II: Is this complex set a winning set?
- Dependency check
- Clock hands angle
- How many dots are covered
- Rep The Set, Gotta Rep The Power Set
- Count the number of instances of three identical digits on a four-digit digital clock
- Connecting Linked Lists
- Basic variable assignment
- Push a hash/an object into array
- Incorrect array_remove method
- Failed Sort - Bug Fixing #4
- Broken Collatz
- Not very secure
- Gravity Flip
- Find the max depth in an array
- Number of Rectangles in a Grid
- Slamming Lockers
- Thinking & Testing : Uniq or not Uniq
- 5 without alphanums!!!
- Player Contact Manager
- Hard Time Bomb
- Feynman's square question
- Mysterious function
- Sum #1
- Mr. Safety's treasures
- XOR string reduction
- Button sequences
- Towers of Hanoi
- Luck check
- Cheating a bit...
- A Chain adding function
- Did I Finish my Sudoku?
- Base64 Numeric Translator
- Find the code and open the safe
- Sting like a bee, float like a sponge?
- Path Finder #4: where are you?
- Ruby’s Eleven
- 6 By 6 Skyscrapers
- Haskellish Syntax
- Guess the Passtune
- The cross-stitch Kata
- stripper_namer
- Natural Language Calculator
- Easy hacking #1
- Triangular Peg Solitaire Solver
- Improving hashes.
- Grader
- Counting sheep...
- Are arrow functions odd?
- Who ate the cookie?
- Grasshopper - Messi Goals
- Compare within margin
- Add new item (collections are passed by reference)
- Remove First and Last Character Part Two
- Merging sorted integer arrays (without duplicates)
- Thinkful - Number Drills: Blue and red marbles
- Ensure question
- Who is going to pay for the wall?
- Help the Elite Squad of Brazilian forces BOPE
- Area or Perimeter
- Ruby Metaprogramming 101 - Dynamic Method Calls
- No Modulo
- Flatten
- Power of two
- Re-open class
- We Have Liftoff
- Last
- greetings with First Name AND Last Name
- Lazily executing a function
- Next birth-day of the week finder
- Find sum of top-left to bottom-right diagonals
- sum_eq_n?
- Center of the Matrix
- Converting integer to currency format
- Big Factorial
- Do you speak retsec?
- Russian postal code checker
- Parsing Commandline Arguments
- Find Duplicates
- Counting Array Elements
- Help the Fruit Guy
- Is n divisible by (...)?
- Capitals first!
- Trigrams
- Filter Coffee
- Array comparator
- Quicksum
- Simple template
- Translate anything into French !
- Integer Difference
- Sum squares of numbers in list that may contain more lists
- Personalising Spammy Marketing Emails
- Exclamation marks series #18: a simple slot machine that only contains exclamation marks and question marks
- String Scramble
- Changing letters
- No yelling!
- TIY-FizzBuzz
- Return the first M multiples of N
- Reverse the bits in an integer
- Odder Than the Rest
- Remove B M W
- Alphabetically ordered
- Knight position
- Dropzone
- Alphabetical Sequence
- Bob's Treasure Map
- Will you survive the zombie onslaught?
- Custom each() Array method
- Title Case
- Bag#every?
- Two Sum
- Format a string of names like 'Bart, Lisa & Maggie'.
- Array Exchange
- Command line parameters
- Word a10n (abbreviation)
- Pretty date
- Grouping and Counting
- Flexible Card Game
- Harshad or Niven numbers
- Multi-tap Keypad Text Entry on an Old Mobile Phone
- Tick Toward
- Format Text
- Tree Depth
- Polynomial Evaluation - Binomial Form
- Find the biggest piece of gold
- Lucky Sevens
- Parse HTML/CSS Colors
- Markings to White Triangles and How to Find Them
- Ka Ka Ka cypher - words only vol 1
- Matrix Rotation
- How many feelings?
- The Strongest Tree in the Forest
- Extract the domain name from a URL
- Custom Enumerators - Fibonacci
- Gift Unwrapping
- Vector Class
- Find All Array Values That Fall Within a Given Difference
- Dynamic instance variables & attributes
- Sum of pairs
- Pandigital Sequence
- Fluent Calculator
- To BrainFuck Transpiler
- Word statistics
- Clock Hands
- Tug-o'-War
- Construct Javascript-method syntax in Ruby
- Temp Tracker: Max, Min, Mean and Mode
- Server: Connection Pool
- Strings to worded numbers
- Easter Eggs
- Convert to ledger format
- Cost of Shopping
- Lat/Long Parser
- Event Date Dilemma
- Implement a client for an API
- Call a block on an array multiple times
- DIY ActiveRecord a.k.a KataRecord
- Narcissistic Numbers
- Robot Walk
- Brainunpack
- Compress string to return letter followed by numbers of times it occurs in a string
- Stop worrying!
- Go Shopping
- Gammas text manipulation 1: Detecting errors using regexp
- Non-consecutive Pairs
- Lucky Number - Simple
- Clear the Catacombs!
- Morse Code (translate text to and from morse code)
- The Black Panther Language
- Truncate string to first n words
- Basic Statement Coverage in Unit Testing
- Group your pupils
- Agda Kata that require rank adjustment
- List of Possible Duplicate Kata
- List of kata that are candidates to retirement
- List of Kata with font Tag in Description (possibly broken)
- Potentially Plagiarized Kata
- Tags and topics to assign to kata
- List of Agda Kata to Update
- List of C Kata to Update
- List of C++ Kata to Update
- List of COBOL Kata to Update
- List of Coq Kata to Update
- List of Crystal Kata to Update
- List of C# Kata to Update
- List of Dart Kata to Update
- List of Elixir Kata to Update
- List of Go Kata to Update
- List of Haskell Kata to Update
- List of Java Kata to Update
- List of JavaScript Kata to Update
- List of Kotlin Kata to Update
- List of Lean Kata to Update
- List of Nim Kata to Update
- List of PHP Kata to Update
- List of Python Kata to Update
- List of Racket Kata to Update
- List of Ruby Kata to Update
- List of Rust Kata to Update
- List of Scala Kata to Update
- List of Solidity Kata to Update
- List of Swift Kata to Update
- List of TypeScript Kata to Update