module Compass::SassExtensions::Functions::Math
Public Instance Methods
cos(number)
click to toggle source
# File lib/compass/sass_extensions/functions/math.rb, line 13 def cos(number) trig(:cos, number) end
e()
click to toggle source
# File lib/compass/sass_extensions/functions/math.rb, line 23 def e() Sass::Script::Number.new(Math::E) end
logarithm(number, base = e )
click to toggle source
# File lib/compass/sass_extensions/functions/math.rb, line 28 def logarithm(number, base = e ) assert_type number, :Number assert_type base, :Number raise Sass::SyntaxError, "base to logarithm must be unitless." unless base.unitless? result = Math.log(number.value, base.value) rescue Math.log(number.value) / Math.log(base.value) Sass::Script::Number.new(result, number.numerator_units, number.denominator_units) end
pi()
click to toggle source
# File lib/compass/sass_extensions/functions/math.rb, line 3 def pi() Sass::Script::Number.new(Math::PI) end
pow(number, exponent)
click to toggle source
# File lib/compass/sass_extensions/functions/math.rb, line 47 def pow(number, exponent) assert_type number, :Number assert_type exponent, :Number raise Sass::SyntaxError, "exponent to pow must be unitless." unless exponent.unitless? Sass::Script::Number.new(number.value**exponent.value, number.numerator_units, number.denominator_units) end
sin(number)
click to toggle source
# File lib/compass/sass_extensions/functions/math.rb, line 8 def sin(number) trig(:sin, number) end
sqrt(number)
click to toggle source
# File lib/compass/sass_extensions/functions/math.rb, line 39 def sqrt(number) numeric_transformation(number) { |n| Math.sqrt(n) } end
Also aliased as: square_root
tan(number)
click to toggle source
# File lib/compass/sass_extensions/functions/math.rb, line 18 def tan(number) trig(:tan, number) end
Private Instance Methods
trig(operation, number)
click to toggle source
# File lib/compass/sass_extensions/functions/math.rb, line 56 def trig(operation, number) if number.numerator_units == ["deg"] && number.denominator_units == [] Sass::Script::Number.new(Math.send(operation, Math::PI * number.value / 180)) else Sass::Script::Number.new(Math.send(operation, number.value), number.numerator_units, number.denominator_units) end end