module Sass::Tree # A node representing an `@import` rule that's importing plain CSS. # # @see Sass::Tree class CssImportNode < DirectiveNode # The URI being imported, either as a plain string or an interpolated # script string. # # @return [String, Sass::Script::Tree::Node] attr_accessor :uri # The text of the URI being imported after any interpolated SassScript has # been resolved. Only set once {Tree::Visitors::Perform} has been run. # # @return [String] attr_accessor :resolved_uri # The supports condition for this import. # # @return [Sass::Supports::Condition] attr_accessor :supports_condition # The media query for this rule, interspersed with # {Sass::Script::Tree::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::Visitors::Perform} has been run. # # @return [Sass::Media::QueryList] attr_accessor :resolved_query # @param uri [String, Sass::Script::Tree::Node] See \{#uri} # @param query [Array] See \{#query} # @param supports_condition [Sass::Supports::Condition] See \{#supports_condition} def initialize(uri, query = [], supports_condition = nil) @uri = uri @query = query @supports_condition = supports_condition super('') end # @param uri [String] See \{#resolved_uri} # @return [CssImportNode] def self.resolved(uri) node = new(uri) node.resolved_uri = uri node end # @see DirectiveNode#value def value; raise NotImplementedError; end # @see DirectiveNode#resolved_value def resolved_value @resolved_value ||= begin str = "@import #{resolved_uri}" str << " supports(#{supports_condition.to_css})" if supports_condition str << " #{resolved_query.to_css}" if resolved_query str end end end end