lib/danica/wrapper.rb in danica-2.4.1 vs lib/danica/wrapper.rb in danica-2.4.2

- old
+ new

@@ -1,12 +1,21 @@ module Danica module Wrapper def wrap_value(value) - return wrap_value(number(value)) if value.is_a?(Numeric) - return wrap_value(variable(value)) if value.is_a?(Hash) - return wrap_value(variable(name: value)) if [ String, Symbol ].any? { |c| value.is_a?(c) } - return wrap_value(variable) if value.nil? - 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'