Skip to content

Add Laravel-inspired UI with styled boxes and dynamic version detection#4

Merged
dpaluy merged 1 commit intomasterfrom
fix/questionary
Nov 22, 2025
Merged

Add Laravel-inspired UI with styled boxes and dynamic version detection#4
dpaluy merged 1 commit intomasterfrom
fix/questionary

Conversation

@dpaluy
Copy link
Copy Markdown
Owner

@dpaluy dpaluy commented Nov 22, 2025

Summary

Transforms Railstart CLI with a polished, Laravel-inspired interface featuring ASCII art, styled boxes, and dynamic version detection.

Key Features

  • ✨ ASCII art logo with version display
  • 📦 Styled welcome box showing detected Rails version
  • 🎨 Boxed configuration summary with syntax highlighting
  • 🎯 Icon-based status messages (success ✓, info ℹ, warning ⚠, error ✗)
  • 🎪 Section headers with visual separators

Technical Improvements

  • New Railstart::UI module for CLI presentation
  • Fixed TTY::Prompt select/multi_select (hash format instead of array pairs)
  • Fixed default value selection (1-based index handling)
  • Bundler context isolation for Rails command execution
  • Bundle install post-action disabled by default

Files Changed

  • lib/railstart/ui.rb — New UI module (143 lines)
  • lib/railstart/generator.rb — UI integration + TTY::Prompt fixes
  • railstart.gemspec — Added tty-box dependency
  • config/rails8_defaults.yaml — Disabled bundle install post-action
  • CHANGELOG.md — Documented v0.2.0 with preset system and UI improvements

Test Plan

  • All tests pass (30 runs, 80 assertions, 0 failures)
  • RuboCop clean (0 offenses)
  • Manual testing of interactive flow
  • Dynamic Rails version detection works
  • TTY::Prompt displays all options correctly

Screenshots

Before: Plain text output
After: Styled boxes, ASCII art, colored status messages

Breaking Changes

None - fully backward compatible

Related Issues

Closes #4 (if applicable - improves CLI UX as discussed)

…namic version

Add comprehensive UI enhancements including ASCII art logo, styled welcome box,
colored status messages, and boxed configuration summary. Welcome message now
displays detected Rails version dynamically.

Key improvements:
- New Railstart::UI module with logo, welcome box, section headers, and status messages
- TTY::Box integration for styled frames and borders
- Dynamic Rails version detection in welcome message
- Improved select/multi_select choices using hash format instead of array pairs
- Fixed TTY::Prompt default value handling (1-based index)
- Bundler context isolation for Rails command execution
- Bundle install post-action disabled by default

Also includes CHANGELOG update documenting preset system and UI improvements.
@dpaluy dpaluy merged commit cc66e88 into master Nov 22, 2025
1 check passed
@dpaluy dpaluy deleted the fix/questionary branch November 22, 2025 22:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant