Sha256: 0fc26c806c62f837dcf05912fd981d3ae7d30661c166d6f80862503f0e906e76

Contents?: true

Size: 720 Bytes

Versions: 9

Compression:

Stored size: 720 Bytes

Contents

require 'sass/constant/string'
require 'sass/constant/number'
require 'sass/constant/color'

module Sass::Constant # :nodoc:
  class Operation # :nodoc:
    def initialize(operand1, operand2, operator)
      @operand1 = operand1
      @operand2 = operand2
      @operator = operator
    end
    
    def to_s
      self.perform.to_s
    end
    
    protected
    
    def perform
      literal1 = @operand1.perform
      literal2 = @operand2.perform
      begin
        literal1.send(@operator, literal2)
      rescue NoMethodError => e
        raise e unless e.name.to_s == @operator.to_s
        raise Sass::SyntaxError.new("Undefined operation: \"#{literal1} #{@operator} #{literal2}\"")
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
haml-1.5.1 lib/sass/constant/operation.rb
haml-1.5.0 lib/sass/constant/operation.rb
haml-1.7.2 lib/sass/constant/operation.rb
haml-1.7.1 lib/sass/constant/operation.rb
haml-1.8.0 lib/sass/constant/operation.rb
haml-1.5.2 lib/sass/constant/operation.rb
haml-1.7.0 lib/sass/constant/operation.rb
haml-1.8.2 lib/sass/constant/operation.rb
haml-1.8.1 lib/sass/constant/operation.rb