Sha256: 527f61b04bfc78549012226aeb5a11cc8b2d8ed0dde9abc60474282087d389f0

Contents?: true

Size: 596 Bytes

Versions: 3

Compression:

Stored size: 596 Bytes

Contents

# frozen_string_literal: true

class Code
  class Node
    class Decimal < Node
      def initialize(parsed)
        return if parsed.blank?
        @decimal = parsed.delete(:decimal).presence

        if parsed.key?(:exponent)
          @exponent = Statement.new(parsed.delete(:exponent).presence)
        end
      end

      def evaluate(**args)
        if @exponent && @decimal
          Object::Decimal.new(@decimal, @exponent.evaluate(**args))
        elsif @decimal
          Object::Decimal.new(@decimal)
        else
          Object::Nothing.new
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
code-ruby-0.13.1 lib/code/node/decimal.rb
code-ruby-0.13.0 lib/code/node/decimal.rb
code-ruby-0.12.0 lib/code/node/decimal.rb