Sha256: 5692017a27c93bbedef7edb2177b045a37b34bf77899be9d49a49647e003f492

Contents?: true

Size: 1.96 KB

Versions: 438

Compression:

Stored size: 1.96 KB

Contents

module Sass
  module Selector
    # The abstract parent class of the various selector sequence classes.
    #
    # All subclasses should implement a `members` method
    # that returns an array of object that respond to `#line=` and `#filename=`.
    class AbstractSequence
      # The line of the Sass template on which this selector was declared.
      #
      # @return [Fixnum]
      attr_reader :line

      # The name of the file in which this selector was declared.
      #
      # @return [String, nil]
      attr_reader :filename

      # Sets the line of the Sass template on which this selector was declared.
      # This also sets the line for all child selectors.
      #
      # @param line [Fixnum]
      # @return [Fixnum]
      def line=(line)
        members.each {|m| m.line = line}
        @line = line
      end

      # Sets the name of the file in which this selector was declared,
      # or `nil` if it was not declared in a file (e.g. on stdin).
      # This also sets the filename for all child selectors.
      #
      # @param filename [String, nil]
      # @return [String, nil]
      def filename=(filename)
        members.each {|m| m.filename = filename}
        @filename = filename
      end

      # Returns a hash code for this sequence.
      #
      # Subclasses should define `#_hash` rather than overriding this method,
      # which automatically handles memoizing the result.
      #
      # @return [Fixnum]
      def hash
        @_hash ||= _hash
      end

      # Checks equality between this and another object.
      #
      # Subclasses should define `#_eql?` rather than overriding this method,
      # which handles checking class equality and hash equality.
      #
      # @param other [Object] The object to test equality against
      # @return [Boolean] Whether or not this is equal to `other`
      def eql?(other)
        other.class == self.class && other.hash == self.hash && _eql?(other)
      end
      alias_method :==, :eql?
    end
  end
end

Version data entries

438 entries across 292 versions & 8 rubygems

Version Path
classiccms-0.7.5 vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/selector/abstract_sequence.rb
classiccms-0.7.5 vendor/bundle/gems/sass-3.1.15/lib/sass/selector/abstract_sequence.rb
classiccms-0.7.5 vendor/bundle/gems/haml-3.1.4/vendor/sass/lib/sass/selector/abstract_sequence.rb
classiccms-0.7.5 vendor/bundle/gems/haml-3.1.5/vendor/sass/lib/sass/selector/abstract_sequence.rb
classiccms-0.7.4 vendor/bundle/gems/haml-3.1.5/vendor/sass/lib/sass/selector/abstract_sequence.rb
classiccms-0.7.4 vendor/bundle/gems/sass-3.1.15/lib/sass/selector/abstract_sequence.rb
classiccms-0.7.4 vendor/bundle/gems/haml-3.1.4/vendor/sass/lib/sass/selector/abstract_sequence.rb
classiccms-0.7.4 vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/selector/abstract_sequence.rb
classiccms-0.7.3 vendor/bundle/gems/haml-3.1.5/vendor/sass/lib/sass/selector/abstract_sequence.rb
classiccms-0.7.3 vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/selector/abstract_sequence.rb
classiccms-0.7.3 vendor/bundle/gems/sass-3.1.15/lib/sass/selector/abstract_sequence.rb
classiccms-0.7.3 vendor/bundle/gems/haml-3.1.4/vendor/sass/lib/sass/selector/abstract_sequence.rb
torquebox-console-0.3.0 vendor/bundle/jruby/1.9/gems/haml-3.1.8/vendor/sass/lib/sass/selector/abstract_sequence.rb
classiccms-0.7.2 vendor/bundle/gems/haml-3.1.4/vendor/sass/lib/sass/selector/abstract_sequence.rb
classiccms-0.7.2 vendor/bundle/gems/haml-3.1.5/vendor/sass/lib/sass/selector/abstract_sequence.rb
classiccms-0.7.2 vendor/bundle/gems/haml-3.1.6/vendor/sass/lib/sass/selector/abstract_sequence.rb
classiccms-0.7.2 vendor/bundle/gems/sass-3.1.15/lib/sass/selector/abstract_sequence.rb
classiccms-0.7.1 vendor/bundle/gems/haml-3.1.5/vendor/sass/lib/sass/selector/abstract_sequence.rb
classiccms-0.7.1 vendor/bundle/gems/sass-3.1.15/lib/sass/selector/abstract_sequence.rb
classiccms-0.7.1 vendor/bundle/gems/haml-3.1.4/vendor/sass/lib/sass/selector/abstract_sequence.rb