Sha256: b874726a6ebb0e4e77af7fec9cbfd130ce54918bd27986a8bb16f9a0cc60f0d9

Contents?: true

Size: 451 Bytes

Versions: 1

Compression:

Stored size: 451 Bytes

Contents

class TransformIntoNumbers < Micro::Service::Base
  attributes :a, :b

  def call!
    number_a, number_b = number(a), number(b)

    if number_a && number_b
      Success(a: number(a), b: number(b))
    else
      Failure(:not_a_number) { 'The arguments must contain only numeric values' }
    end
  end

  private def number(value)
    return value.to_i if value =~ /\A[\-,=]?\d+\z/
    return value.to_f if value =~ /\A[\-,=]?\d+\.\d+\z/
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
u-service-0.13.0 examples/calculator/calc/transform_into_numbers.rb