Sha256: 58b4938ad6f182afac5caca85affe5831b54af45991dcedf2dfe226f492ed17d

Contents?: true

Size: 745 Bytes

Versions: 2

Compression:

Stored size: 745 Bytes

Contents

module Danica
  module Wrapper
    def wrap_value(value)
      case value
      when Numeric
        return negative(number(-value)) if value < 0
        number(value)
      when Hash
        return constant(value) if value.keys.map(&:to_sym).sort == %i(gnu latex value)
        variable(value)
      when String, Symbol
        variable(name: value)
      when NilClass
        variable
      else
        value
      end
    end

    autoload :Number,    'danica/wrapper/number'
    autoload :Group,     'danica/wrapper/group'
    autoload :Negative,  'danica/wrapper/negative'
    autoload :PlusMinus, 'danica/wrapper/plus_minus'
    autoload :Constant,  'danica/wrapper/constant'
    autoload :Variable,  'danica/wrapper/variable'
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
danica-2.4.3 lib/danica/wrapper.rb
danica-2.4.2 lib/danica/wrapper.rb