diff --git a/2024/ruby/day_07.rb b/2024/ruby/day_07.rb
new file mode 100644
index 0000000..fdc46e0
--- /dev/null
+++ b/2024/ruby/day_07.rb
@@ -0,0 +1,16 @@
+input = DATA.readlines
+ .map {|line|
+ nums = line.scan(/\d+/).map(&:to_i)
+ [nums.shift, nums]
+ }
+
+pp input.filter_map {|val, vars|
+ vals = vars.inject {|n,x|
+ %i[ + * ].flat_map {|op|
+ Array(n).map { _1.send(op, x) }
+ }
+ }
+ vals.include?(val) && val
+}.sum
+
+__END__