Essential session storage is required to sign in. Optional analytics remain off unless you allow them.
Package reusable Ruby as a small library with a proper Gemfile managed by BUNDLER and a suite of RSpec (or Minitest) tests. Requirements: expose functionality through a MODULE and/or class, mixing in Enumerable or Comparable where it fits (define the required 'each' or '<=>' so the mixin works); write your OWN methods that accept a block and 'yield' to it; transform data with Enumerable (reduce/group_by/each_with_object) rather than loops; write describe/context/it specs with expect(...).to matchers covering the happy path AND an error case; and lock dependencies with a committed Gemfile.lock. Explain one place you chose a Symbol over a String and why.
Clean module/class API; Enumerable or Comparable mixed in correctly (each or <=> defined); own methods accept a block and yield.
Declarative Enumerable transforms (reduce/group_by/each_with_object) over manual loops; a justified Symbol-vs-String choice.
RSpec/Minitest specs covering success and failure paths; Bundler-managed Gemfile with a committed Gemfile.lock.
Use this README structure to make the work reviewable.
DevPath fetches a read-only, size-capped snapshot. Submitted code is never executed.
# A tested gem-style library with Bundler + RSpec ## Goal Package reusable Ruby as a small library with a proper Gemfile managed by BUNDLER and a suite of RSpec (or Minitest) tests. Requirements: expose functionality through a MODULE and/or class, mixing in Enumerable or Comparable where it fits (define the required 'each' or '<=>' so the mixin works); write your OWN methods that accept a block and 'yield' to it; transform data with Enumerable (reduce/group_by/each_with_object) rather than loops; write describe/context/it specs with expect(...).to matchers covering the happy path AND an error case; and lock dependencies with a committed Gemfile.lock. Explain one place you chose a Symbol over a String and why. ## Acceptance criteria - [ ] Library & mixin design: Clean module/class API; Enumerable or Comparable mixed in correctly (each or <=> defined); own methods accept a block and yield. - [ ] Enumerable & idiom: Declarative Enumerable transforms (reduce/group_by/each_with_object) over manual loops; a justified Symbol-vs-String choice. - [ ] Tests & tooling: RSpec/Minitest specs covering success and failure paths; Bundler-managed Gemfile with a committed Gemfile.lock. ## Verification - [ ] Document installation and run commands. - [ ] Record automated checks and their exact commands. - [ ] Add representative output, screenshots, or a short demo where useful. - [ ] Confirm failure paths and known constraints. ## Decision log ### Decision title - Context: - Choice: - Alternatives considered: - Tradeoffs: ## Evidence - Link each rubric criterion to the file, test, or artifact that demonstrates it. ## Known limitations - List what is intentionally out of scope and what should be improved next.