Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Make sure RUBY_VERSION matches the Ruby version in .ruby-version or gemspec
ARG RUBY_VERSION=3.4.2
FROM ghcr.io/rails/devcontainer/images/ruby:$RUBY_VERSION

USER root

# Install pkg-config and SQLite development libraries
RUN apt-get update -qq && \
apt-get install -y pkg-config libsqlite3-dev && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

USER vscode

# Ensure binding is always 0.0.0.0
# Binds the server to all IP addresses of the container, so it can be accessed from outside the container.
ENV BINDING="0.0.0.0"
13 changes: 13 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "Quo Rails Gem Development",
"build": {
"dockerfile": "Dockerfile"
},
"containerEnv": {
"RAILS_ENV": "development"
},
"forwardPorts": [3000],
"postCreateCommand": "bundle install && bin/rails db:setup",
"postStartCommand": "bundle exec appraisal && bundle exec appraisal rake test",
"remoteUser": "vscode"
}
19 changes: 19 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Quo Development Guide

## Build & Test Commands
- Run all tests: `bundle exec rake test`
- Run a single test: `bundle exec ruby -Ilib:test test/path/to/test_file.rb -n test_method_name`
- Run tests across Rails versions: `bundle exec appraisal rake test`
- Type checking: `bundle exec steep check`
- Lint code: `bundle exec standardrb`
- Fix lint issues: `bundle exec standardrb --fix`

## Code Style Guidelines
- **Frozen String Literals**: Include `# frozen_string_literal: true` at the top of every file
- **Types**: Use RBS for type annotations with `# rbs_inline: enabled` and `@rbs` annotations
- **Naming**: Use snake_case for methods/variables, CamelCase for classes, and SCREAMING_CASE for constants
- **Error Handling**: Raise specific errors with clear messages
- **Indentation**: 2 spaces (default Standard Ruby style)
- **Testing**: Use Minitest for tests
- **Framework**: Built on Literal gem - use Literal::Struct and Literal::Types
- **Documentation**: Document public methods with comments
4 changes: 3 additions & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ source "https://rubygems.org"
# Specify your gem's dependencies in quo.gemspec
gemspec

gem "rails", "~> 7.2"
gem "rails", "~> 8"

group :development, :test do
gem "sqlite3"
Expand All @@ -14,6 +14,8 @@ group :development, :test do

gem "minitest", "~> 5.0"

gem "simplecov", require: false

gem "standard", require: false

gem "steep", require: false
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2022-2024 Stephen Ierodiaconou
Copyright (c) 2022-2025 Stephen Ierodiaconou

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
Loading