Money
contracts.ruby
Money | contracts.ruby | |
---|---|---|
4 | 5 | |
2,684 | 1,441 | |
0.3% | - | |
7.3 | 1.4 | |
9 days ago | about 1 year ago | |
Ruby | Ruby | |
MIT License | BSD 2-clause "Simplified" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Money
-
Keep Your Ruby Code Maintainable with Money-Rails
Many other options are available to customize this for your Ruby on Rails app. Check out the full details in the money and money-rails guides.
-
Why I Stopped Using Sorbet in All My Ruby Projects
For now I just try to use better objects, avoiding primitive datatypes in internal code (using the null object pattern or an option/maybe class can go a long way), and using gems that do the same, such as dry-rb and money.
-
[Production code] The previous dev thought it was ok to use floating point variables for money
Java has to have a modern money library by now? Ruby has one => https://github.com/RubyMoney/money
-
Currency Calculations in Ruby
Make sure to refer to the docs for more of the provided currency attributes, such as iso_code (which returns the international three-digit code of that currency) and decimal_mark (the char between the value and the fraction of the money data), among others.
contracts.ruby
-
A few words on Ruby's type annotations state
I had written a code contracts library for Ruby about 10 years ago [1]. I stopped working on it, mainly because it only provided runtime type checking, and I wanted static type checking. Nowadays my main language is typescript. I miss ruby, but can't give up the static typing that typescript provides. I really wish Ruby had a type system with the same level of support. VSCode has phenomenal TS support, and there's a community adding types to projects [2]. This is something I'd like for Ruby also.
> An integral part of this informality is relying on Matz’s taste and intuition for everything that affects the language’s core.
I think a more defined process would mean a better future for Ruby and Ruby developers.
- [1] https://github.com/egonschiele/contracts.ruby
- [2] https://github.com/DefinitelyTyped/DefinitelyTyped
-
Why I Stopped Using Sorbet in All My Ruby Projects
Contracts gem can be a nice middle-ground. It has a fairly readably syntax and only checks method inputs and outputs at runtime. We use it to annotate important core methods, while leaving the rest type-free.
-
Should gems support old Ruby versions like 2.4?
For example contracts gem needs to have a separate version/branch for ruby 3.x due to the breaking change above
-
Cells - Introduction
This gives me access to input values as long as I defined them via attr_reader. Oh what's the Contract XXX above attr_reader? They are from contracts.ruby and completely optional and won't be explained in this post. You can safely ignore those and maybe study that gem later.
What are some alternatives?
Monetize - A library for converting various objects into `Money` objects.
Fundamental Ruby - :books: Fundamental programming with ruby examples and references. It covers threads, SOLID principles, design patterns, data structures, algorithms. Books for reading. Repo for website https://github.com/khusnetdinov/betterdocs
Plutus - A Ruby on Rails Engine which provides a double entry accounting system for your application
fast-ruby - :dash: Writing Fast Ruby :heart_eyes: -- Collect Common Ruby idioms.
Wallet - A Ruby program to track your finances.
Ruby style guide - A community-driven Ruby coding style guide
Income Tax Estimation - Ruby library to calculate the income tax for any country
Rails style guide - A community-driven Ruby on Rails style guide
DoubleEntry - A double-entry accounting system for Ruby applications.
Best-Ruby - Ruby Tricks, Idiomatic Ruby, Refactoring and Best Practices
money-rails - Integration of RubyMoney - Money with Rails
RSpec style guide - RSpec Best Practices