Releases: moduloTech/modulorails
Releases · moduloTech/modulorails
v1.7.1
The boot-resilience release. Hardens the gem against several boot-time crash paths so that information gathering and configuration generation can never prevent the host application from starting.
Fixes
- Fix
initialize_from_databasewhen the database is unreachable on Rails 7.1+. Connections are now established lazily at query time, so errors surface fromselect_valueasActiveRecord::StatementInvalidor adapter-level errors (e.g.PG::ConnectionBad) that don't inherit fromActiveRecordError. The rescue is broadened toStandardErrorso that DB metadata collection never prevents the application from booting (e.g. runningbin/rails db:createon a fresh checkout). - Guard
Modulorails::Data#initialize_from_configurationagainst a missingconfig.name: fall back to the Rails application class name and use safe navigation when deriving@environment_name, so a forgottenconfig.name '...'no longer crashes the boot withNoMethodError: undefined method 'parameterize' for nil. - Move the body construction in
Modulorails.send_datainside itsbegin/rescueblock so that an unexpected failure inModulorails::Data.new(e.g. a malformed configuration) is caught instead of bubbling out ofafter_initializeand breaking Rails boot.
v1.7.0
Improvements
- Make the Rubocop generator idempotent:
.rubocop.ymlis no longer rewritten on every Rails boot. Like the other generators,RubocopGeneratornow uses the.modulorails.ymlkeepfile and aVERSIONconstant — the config is only (re)generated on the first run or when the generator's version is bumped.
Fixes
- Fix
initialize_from_gitwhen the git repository is not available (no.git, missinggitbinary, or nooriginremote): rescue the error, warn, and leaverepositoryasnilinstead of crashing the application boot. - Fix
send_dataandself_updatecrashing withNoMethodErrorwhenRails.loggerisnil(e.g. early initialization or minimal apps): use safe navigation on debug logging.
Internal
- Add
release-modulorailsClaude Code skill (.claude/skills/release-modulorails/) to standardize the gem release workflow.