Git Product home page Git Product logo

Comments (7)

kipcole9 avatar kipcole9 commented on July 19, 2024 1

Thanks for the report and apologies for the inconvenience. I had updated all of my libs to work with either Decimal version but I missed that Decimal.parse/1 changed behaviour as well.

I have published money_sql version 1.3.1 to address this issue and it should now be compatible with both Decimal versions 1.x and 2.x.

Updating

Should require no more than:

mix deps.update ex_money_sql

Changelog

  • Fixes compatibility with both Decimal version 1.x and 2.x. Thanks to @doughsay and @coladarci for the report. Closes #8.

from money_sql.

coladarci avatar coladarci commented on July 19, 2024

For context @kipcole9 this is what the error looks like:

** (WithClauseError) no with clause matching: {#Decimal<0.32>, ""}
    (ex_money_sql 1.3.0) lib/money/ecto/money_ecto_composite_type.ex:62: Money.Ecto.Composite.Type.cast/1
    (ecto 3.4.6) lib/ecto/changeset.ex:559: Ecto.Changeset.cast_field/8
    (ecto 3.4.6) lib/ecto/changeset.ex:520: Ecto.Changeset.process_param/7
    (elixir 1.10.4) lib/enum.ex:2111: Enum."-reduce/3-lists^foldl/2-0-"/3
    (ecto 3.4.6) lib/ecto/changeset.ex:497: Ecto.Changeset.cast/6

when you pass in %{"currency" => "USD", "amount" => "0.32"}for a Money.Ecto.Composite.Type

from money_sql.

coladarci avatar coladarci commented on July 19, 2024

@kipcole9 this update is causing my CI to fail w/ this:

== Compilation error in file lib/cldr/number/parse.ex ==
** (FunctionClauseError) no function clause matching in Keyword.get/3    
    
    The following arguments were given to Keyword.get/3:
    
        # 1
        nil
    
        # 2
        :vsn
    
        # 3
        nil
    
    Attempted function clauses (showing 1 out of 1):
    
        def get(+keywords+, +key+, +default+) when -is_list(keywords)- and +is_atom(key)+
    
Error:     (elixir 1.10.4) lib/keyword.ex:201: Keyword.get/3
Error:     lib/cldr/number/parse.ex:169: (module)
Error:     (stdlib 3.12.1) erl_eval.erl:680: :erl_eval.do_apply/6

from money_sql.

coladarci avatar coladarci commented on July 19, 2024

(I'm being told by @doughsay that this is a caching issue in CI... feel free to ignore......... 🤦 )

from money_sql.

kipcole9 avatar kipcole9 commented on July 19, 2024

Let me know is the issue persists? This error comes from the shim I have in cldr_utils to do version detection at compile tome on Decimal which is needed to determine which version of Decimal.compare/2 or Decimal.cmp/2 to use. And the same for Decimal.parse/1.

The code where is error comes from is:

# cldr_utils/lib/cldr/utils/decimal.ex
decimal_version = Application.ensure_all_started(:decimal) &&
  Application.spec(:decimal, :vsn)
  |> List.to_string()

from money_sql.

coladarci avatar coladarci commented on July 19, 2024

clearing all the CI caches fixed this..

from money_sql.

kipcole9 avatar kipcole9 commented on July 19, 2024

Thanks for the update. Your CI must have cached a buggy version of cldr_utils in the one hour period beforeI retired that version in hex.

from money_sql.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.