Skip to content

Add SMO-Flow Ruby gem to 07 Ruby Exchange Gems - #48

Open
Sebasmadridmx wants to merge 4 commits into
innovyze:mainfrom
Sebasmadridmx:add-smo-flow-gem
Open

Add SMO-Flow Ruby gem to 07 Ruby Exchange Gems#48
Sebasmadridmx wants to merge 4 commits into
innovyze:mainfrom
Sebasmadridmx:add-smo-flow-gem

Conversation

@Sebasmadridmx

Copy link
Copy Markdown
Contributor

Summary

  • Adds SMO-Flow, a Ruby gem for stormwater management and hydrological calculations using the Rational Method
  • Placed under 07 Ruby Exchange Gems/SMO-Flow following the repository's folder structure
  • Includes full source code, specs, documentation, and gemspec

About SMO-Flow

SMO-Flow provides tools for computing peak runoff flow rates (Q = C·i·A) for civil engineering and urban drainage design.

Developed by Sebastian Madrid Ontiveros.

Contents

  • lib/ — Core library (Rational Method calculations, error handling)
  • spec/ — RSpec test suite
  • README.md — Usage documentation
  • CHANGELOG.md, LICENSE.txt, CODE_OF_CONDUCT.md

SMO-Flow is a Ruby gem for stormwater management and hydrological
calculations using the Rational Method. It provides tools for
computing peak runoff flow rates for civil engineering and urban
drainage design.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Comment thread 07 Ruby Exchange Gems/SMO-Flow/index.html Fixed
Removed index.html, hero.png, and qr-coffee.png as they are
landing page assets and not part of the SMO-Flow gem source code.
Moves repeated "Depth must be positive" and "Timestep must be positive"
error messages into constants to satisfy SonarQube quality gate.

@dfmore dfmore left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution, @Sebasmadridmx — the gem looks great. Pure Ruby ✅, MIT ✅, clean RSpec coverage, idiomatic Ruby, and a focused Rational Method implementation. I also did a manual security pass on the source: no eval, no shell execution, no deserialization, no file/network I/O, zero runtime dependencies, comprehensive input validation, and the unit conversions in the formulas all check out.

One small thing before I can merge:

LICENSE.txt has the Bundler scaffold placeholder:

Copyright (c) 2026 TODO: Write your name

This is the default text bundle gem writes — it just needs your name in place of TODO: Write your name so the MIT grant has a real copyright holder. Once you push that fix, I'll merge.

A couple of notes (no action needed from you):

  • SonarCloud "1 Security Hotspot": orphaned. It flagged a missing integrity attribute on a Google Fonts <link> in index.html, but you already removed that file in commit 2. The gate stays UNSTABLE because Sonar evaluates the cumulative PR delta. I'll dismiss it on merge.
  • Catalog row: I'll add SMO-Flow to the catalog table in 07 Ruby Exchange Gems/README.md as part of the merge — the contributing guide asks contributors to do this, but I'd rather not push that maintenance task onto first-time contributors.

Thanks again — nice clean first gem for the catalog 🙌

@Sebasmadridmx

Copy link
Copy Markdown
Contributor Author

@dfmore Thanks Dan, I have updated the License with my name

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
1 Security Hotspot

See analysis details on SonarQube Cloud

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.

3 participants