gems.sass-3.2.8.lib.sass.tree.media_node.rb Maven / Gradle / Ivy
Go to download
Sass makes CSS fun again. Sass is an extension of CSS3, adding nested rules, variables, mixins, selector
inheritance, and more. It's translated to well-formatted, standard CSS using the command line tool or a
web-framework plugin.
This is a repackaged GEM in a JAR format of the sass-lang.gem package. The sass-gems package version
follows the sass-lang.gem versions located http://rubyforge.org/frs/?group_id=9702. Simply change
the version of this package to download and repackage the same GEM version.
module Sass::Tree
# A static node representing a `@media` rule.
# `@media` rules behave differently from other directives
# in that when they're nested within rules,
# they bubble up to top-level.
#
# @see Sass::Tree
class MediaNode < DirectiveNode
# TODO: parse and cache the query immediately if it has no dynamic elements
# The media query for this rule, interspersed with {Sass::Script::Node}s
# representing `#{}`-interpolation. Any adjacent strings will be merged
# together.
#
# @return [Array]
attr_accessor :query
# The media query for this rule, without any unresolved interpolation. It's
# only set once {Tree::Node#perform} has been called.
#
# @return [Sass::Media::QueryList]
attr_accessor :resolved_query
# @see RuleNode#tabs
attr_accessor :tabs
# @see RuleNode#group_end
attr_accessor :group_end
# @param query [Array] See \{#query}
def initialize(query)
@query = query
@tabs = 0
super('')
end
# @see DirectiveNode#value
def value; raise NotImplementedError; end
# @see DirectiveNode#name
def name; '@media'; end
# @see DirectiveNode#resolved_value
def resolved_value
@resolved_value ||= "@media #{resolved_query.to_css}"
end
# True when the directive has no visible children.
#
# @return [Boolean]
def invisible?
children.all? {|c| c.invisible?}
end
# @see Node#bubbles?
def bubbles?; true; end
end
end