List of Ruby Kata to Update - codewars/content-issues GitHub Wiki
Ruby 3.0 was added. This page lists the kata requiring manual updates.
Overview
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 Update
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.
List of Kata
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.
GiacomoSorbi
- 80's Kids #7: She's a Small Wonder
- AD2070: Help Lorimar troubleshoot his robots- ultrasonic distance analysis
- Acronym Buster
- Adding Binary Numbers
- Airport Arrivals/Departures - #1
- Always perfect
- Arrays and hex color codes
- Barking mad
- Base Conversion
- Calculating Expected Utility
- Cambridge Word Scramble
- Class conundrum - Bug Fixing #7
- Correct the date-string
- Déjà vu Duplicates
- Elo rating - one game, one pair
- Feed Kahumolings!
- 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
- HTML Complementary Color
- Job Matching #1
- Jumble words
- Jumping Number (Special Numbers Series #4)
- LOTTO 6 aus 49 - 6 of 49
- Map function issue
- Max number of people and year in a specific place
- Maximum Triplet Sum (Array Series #7)
- Multiply Two Numbers Without Integers
- Name on billboard
- Ninja vs Samurai: Attack + Block
- No Modulo Mk II
- Number , number ... wait LETTER !
- Number encrypting: decypher
- Parse the log
- Permutations Of An Array And Associated Values
- Prefill an Array
- Ratio of Bouncy Numbers
- RegExp Fun #1 - When I miss few days of gym
- Regex Password Validation
- Remove HTML tags using regexp
- Return 1, 2, 3 randomly
- Shop Inventory Manager
- Simple Events
- Simple fraction to mixed number converter
- Text align justify
- There are two kinds of people
- Tom's Allergies
- Transpose of a Matrix
- Width-Height Ratio
- validDate Regex
anter69
g964
- Backwards Read Primes
- Floating-point Approximation (III)
- What's a Perfect Power anyway?
- Which are in?
myjinxin2015
jhoffner
- ASCII85 Encoding & Decoding
- Codewars style ranking system
- Linked Lists - Get Nth Node
- Ruby Array invoke instance method
- Simple Interactive Interpreter
- Simpler Interactive Interpreter
- Temperature converter
- The builder of things
raulbc777
Can be updated by
s/it .+\n\s+(.+)\s+end/\1/Removes
itwhen 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
- Tracking Hits for Different Sum Values for Different Kinds of Dice
- Working With Coloured Numbers II
- Working With Coloured Numbers
adrian.eyre
NaMe613
- Consecutive Digit Constraints
- Fractions of a currency' smallest value
- Recursive Floor Sequence
- Sequence generator
- Special Multiples
- Using the Codewars API - Kata Rank
- Zip it!
bellmyer
- Loop Through Conway's Game of Life
- Make Ruby Hashes Act Like JavaScript Objects
- Solve the Mysteries of Christianity
Blind4Basics
- 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
KenKamau
user8436785
Firefly2002
- ATM Heist
- Climbing the Leaderboard
- Find the Word Pair!
- How many are smaller than me II?
- Missing number in Unordered Arithmetic Progression
- Prime Streaming (PG-13)
10XL
Mackay
user578387
DiegoSalazar
hilary
- 80's Kids #6: Rock 'Em, Sock 'Em Robots
- 80's Kids #8: The Secret World of Alex Mack
- Create a House Cleaning Rota
- Magic The Gathering #2: Mana
xDranik
narayanswa30663
Insti
Voile
- BECOME IMMORTAL
- Faberge easter eggs crush test [linear]
- Geohashing
- Insane Coloured Triangles
- Regular Expression - Check if divisible by 0b111 (7)
- Upside-Down Numbers - Challenge Edition
moonfly
- Deadlock Detection
- Find The Object
- Re-entrant Mutex (aka Counting Mutex)
- Storing Codes
- Wait on All Threads
- Wait on Any Thread
user8476848
Lordnibbler
ineiti
tachyonlabs
omegahm
Beast
- Guess the list pattern #3
- Guess the list pattern #5
- Guess the list pattern #6
- Guess the string pattern #1 - Advanced
sunboshan
BattleRattle
davidhu2000
ogryzek
devtheory
sahglie
hencethus
mcclaskc
noku
Dr Phil
Glyxerine
ReganRyanNZ
CorsaiR
ajLapid718
pioraid
Javatlacati
chipit24
rohitpaulk
benzrf
mcelearr
GeorgeSeeger
Antiokus314
Roy Gardiner
Chrono79
phaul
vgrichina
rsalgado
hagi
Tavio
donaldsebleung
- Esolang Interpreters #1 - Introduction to Esolangs and My First Interpreter (MiniStringFuck)
- The Prediction
Unihedron
BurstNova
ggmoy
tansaku
cgthornt
daveallie
JoshBrodieNZ
SnooperSnayk
Drymonade
nyi
thatrubylove
Others
- The Power of Exponents
- The dropWhile Function
- Array of all primes up to number N
- Do you know how to make Query String?
- Life of Possibilities
- Strip Url Params
- Calculate Hypotenuse of Right-angled Triangle
- Evil Autocorrect Prank
- What adds up
- Crack the Encrypted Email
- Next level string padding
- IBAN Validator
- Vonhyou's Math Class!
- My smallest code interpreter (aka Brainf**k)
- #Hashtag
- Trip Checker
- Tree Reconstruction
- Integer to English
- Cycle Detection: Floyd's The Tortoise and the The Hare
- Earliest Occurring Unique Value in Stream
- Endianness Conversion
- Quipu Calculator
- Fouriest transformation
- Recover a secret string from random triplets
- Longest Common Subsequence (Performance version)
- Decode the Morse code, for real
- Cable Matching Problem
- Synchonizing records
- German Unicode Characters to ASCII Equivalents
- Date Range Formatter
- Best GF (Guardian Force) junctions based on compatibility
- Playfair cipher
- Mahjong II: Is this complex set a winning set?
- Dependency check
- How many dots are covered
- Count the number of instances of three identical digits on a four-digit digital clock
- Basic variable assignment
- Push a hash/an object into array
- 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
- Towers of Hanoi
- Luck check
- Cheating a bit...
- A Chain adding function
- 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
- Natural Language Calculator
- Improving hashes.
- Grader
- Grasshopper - Messi Goals
- Compare within margin
- Add new item (collections are passed by reference)
- Merging sorted integer arrays (without duplicates)
- No Modulo
- Re-open class
- Next birth-day of the week finder
- sum_eq_n?
- Center of the Matrix
- Russian postal code checker
- Parsing Commandline Arguments
- Find Duplicates
- Is n divisible by (...)?
- Quicksum
- Simple template
- Translate anything into French !
- Personalising Spammy Marketing Emails
- Return the first M multiples of N
- Remove B M W
- Custom each() Array method
- Title Case
- Bag#every?
- Two Sum
- Array Exchange
- Word a10n (abbreviation)
- Pretty date
- Flexible Card Game
- Format Text
- Tree Depth
- Find the biggest piece of gold
- Lucky Sevens
- Markings to White Triangles and How to Find Them
- The Strongest Tree in the Forest
- Extract the domain name from a URL
- Custom Enumerators - Fibonacci
- Vector Class
- Find All Array Values That Fall Within a Given Difference
- Dynamic instance variables & attributes
- Pandigital Sequence
- Fluent Calculator
- To BrainFuck Transpiler
- Word statistics
- Clock Hands
- Construct Javascript-method syntax in Ruby
- Temp Tracker: Max, Min, Mean and Mode
- Server: Connection Pool
- Easter Eggs
- Event Date Dilemma
- Implement a client for an API
- Call a block on an array multiple times
- DIY ActiveRecord a.k.a KataRecord
- Brainunpack
- Gammas text manipulation 1: Detecting errors using regexp
- The Black Panther Language