Sha256: 6e3409f807b2d1694a52fc7bfe15fd8e4e5549688a840f0f35f224ff9fb39c6d

Contents?: true

Size: 1.35 KB

Versions: 2

Compression:

Stored size: 1.35 KB

Contents

class Sass::Script::Literal # :nodoc:
  require 'sass/script/string'
  require 'sass/script/number'
  require 'sass/script/color'
  require 'sass/script/bool'

  attr_reader :value

  def initialize(value = nil)
    @value = value
  end

  def perform(environment)
    self
  end

  def and(other)
    to_bool ? other : self
  end

  def or(other)
    to_bool ? self : other
  end

  def eq(other)
    Sass::Script::Bool.new(self.class == other.class && self.value == other.value)
  end

  def neq(other)
    Sass::Script::Bool.new(!eq(other).to_bool)
  end

  def unary_not
    Sass::Script::Bool.new(!to_bool)
  end

  def concat(other)
    Sass::Script::String.new("#{self.to_s} #{other.to_s}")
  end

  def comma(other)
    Sass::Script::String.new("#{self.to_s}, #{other.to_s}")
  end

  def plus(other)
    Sass::Script::String.new(self.to_s + other.to_s)
  end

  def minus(other)
    Sass::Script::String.new("#{self.to_s}-#{other.to_s}")
  end

  def div(other)
    Sass::Script::String.new("#{self.to_s}/#{other.to_s}")
  end

  def unary_minus
    Sass::Script::String.new("-#{self.to_s}")
  end

  def unary_div
    Sass::Script::String.new("/#{self.to_s}")
  end

  def inspect
    value.inspect
  end

  def to_bool
    true
  end

  def ==(other)
    eq(other).to_bool
  end

  def to_i
    raise Sass::SyntaxError.new("#{self.inspect} is not an integer.")
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
honkster-haml-2.1.0 lib/sass/script/literal.rb
honkster-haml-2.1.1 lib/sass/script/literal.rb