Ruby — Stack (Enumerable, blocks, custom error)
A realistic Ruby snippet: a Stack class that mixes in Enumerable, yields blocks, raises a custom error class, and uses string interpolation and symbol-to-proc — for testing highlighters, RuboCop, and parsers.
# frozen_string_literal: true
# A generic stack: a class that mixes in Enumerable, uses blocks,
# and raises a custom error.
class Stack
include Enumerable
class EmptyError < StandardError; end
def initialize
@items = []
end
def push(item)
@items.push(item)
self
end
def pop
raise EmptyError, "stack is empty" if @items.empty?
@items.pop
end
def each(&block)
@items.reverse_each(&block)
end
def size
@items.size
end
end
stack = Stack.new
%w[alpha beta gamma].each { |word| stack.push(word) }
puts "top: #{stack.pop}"
puts "remaining: #{stack.map(&:upcase).join(', ')}"
puts "size: #{stack.size}"
Specifications
- Language
- Ruby
- Kind
- realistic snippet
- Lines
- 39
- Encoding
- UTF-8
- Line Endings
- LF
Testing contract
Expected to pass- Scenario
- Run the file and confirm the iteration order the Enumerable mixin produces.
- Expected result
- It prints `top: gamma`, then `remaining: BETA, ALPHA`, then `size: 2`. The order is the assertion that matters: `each` is defined with `reverse_each`, so `map` walks the stack top-down, and popping an empty Stack raises `Stack::EmptyError` rather than returning nil.
What is a .rb file?
Ruby (.rb) is a plain-text source file for the Ruby programming language — a dynamically typed, object-oriented scripting language known for expressive, readable syntax and blocks. Everything is an object, and it is widely used for web development (Rails), scripting, and automation.
How to use this file
Use an example .rb file to test syntax highlighters, the Ruby interpreter, linters and formatters (RuboCop), and parser or language-detection tooling.
How to use this file for testing
“Ruby — Stack (Enumerable, blocks, custom error)” is a deterministic Novus Examples fixture for Syntax highlighting, Code parsing, Editor testing. Idiomatic hello-world programs and realistic snippets across sixteen languages, exercising comments, string escapes, interpolation, numeric literals, and language keywords — for testing syntax highlighters, editor themes, and tree-sitter grammars.
Documented properties for this file: Ruby · UTF-8 · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
This is a short, known-correct source file. Run it through your syntax highlighter, linter, formatter, tree-sitter grammar, or parser, and open it in the in-browser editor to tweak and re-download. Each snippet exercises comments, string escapes, literals, and language keywords.
Code examples
ruby stack.rbRelated files
- rbRuby — Hello WorldThe classic hello-world in Ruby — a single puts — for testing highlighters, the Ruby interpreter, and parsers.

- rbRuby Lint Invalid — Rescue All InvalidIntentionally lint-bait SAMPLE ruby snippet (rescue-all-invalid) for rule-engine tests.

- rbRuby ModuleRuby nested module SAMPLE for parser tests.

- cC — Hello WorldThe classic hello-world in C — an include, main, and printf — for testing highlighters, C compilers, and parsers against the canonical first program.

- cC — Linked list (structs, malloc, pointers)A realistic C program: a singly linked list with a typedef struct, malloc/free memory management, pointer walking, and error handling — for testing highlighters, compilers, and static analysers.

- cC StructC struct SAMPLE for clangd / highlighter fixtures.

Generated by generation/code_samples.py. Free for any use, no attribution required — license.