class Sass::BaseEnvironment

The abstract base class for lexical environments for SassScript.

def caller

Returns:
  • (Environment?) -
def caller
  @caller || (@parent && @parent.caller)
end

def content

Returns:
  • ([Array, Environment]?) - The content nodes and
def content
  @content || (@parent && @parent.content)
end

def global?

Returns:
  • (Boolean) -
def global?
  @parent.nil?
end

def global_env

Returns:
  • (Environment) -
def global_env
  @global_env ||= global? ? self : @parent.global_env
end

def inherited_hash_accessor(name)

update sass/yard/inherited_hash.rb as well.
Note: when updating this,
def inherited_hash_accessor(name)
  inherited_hash_reader(name)
  inherited_hash_writer(name)
end

def inherited_hash_reader(name)

def inherited_hash_reader(name)
  class_eval <<-RUBY, __FILE__, __LINE__ + 1
    def #{name}(name)
      _#{name}(name.tr('_', '-'))
    end
    def _#{name}(name)
      (@#{name}s && @#{name}s[name]) || @parent && @parent._#{name}(name)
    end
    protected :_#{name}
    def is_#{name}_global?(name)
      return !@parent if @#{name}s && @#{name}s.has_key?(name)
      @parent && @parent.is_#{name}_global?(name)
    end
  RUBY
end

def inherited_hash_writer(name)

def inherited_hash_writer(name)
  class_eval <<-RUBY, __FILE__, __LINE__ + 1
    def set_#{name}(name, value)
      name = name.tr('_', '-')
      @#{name}s[name] = value unless try_set_#{name}(name, value)
    end
    def try_set_#{name}(name, value)
      @#{name}s ||= {}
      if @#{name}s.include?(name)
        @#{name}s[name] = value
        true
      elsif @parent && !@parent.global?
        @parent.try_set_#{name}(name, value)
      else
        false
      end
    end
    protected :try_set_#{name}
    def set_local_#{name}(name, value)
      @#{name}s ||= {}
      @#{name}s[name.tr('_', '-')] = value
    end
    def set_global_#{name}(name, value)
      global_env.set_#{name}(name, value)
    end
  RUBY
end

def initialize(parent = nil, options = nil)

Parameters:
  • parent (Environment) -- See \{#parent}
  • options ({Symbol => Object}) -- The options hash. See
def initialize(parent = nil, options = nil)
  @parent = parent
  @options = options || (parent && parent.options) || {}
  @stack = @parent.nil? ? Sass::Stack.new : nil
  @caller = nil
  @content = nil
  @filename = nil
  @functions = nil
  @mixins = nil
  @selector = nil
  @vars = nil
end

def selector

Returns:
  • (Selector::CommaSequence?) - The current selector, with any
def selector
  @selector || (@caller && @caller.selector) || (@parent && @parent.selector)
end

def stack

Returns:
  • (Sass::Stack) -
def stack
  @stack || global_env.stack
end