Class: Sass::BaseEnvironment
- Inherits:
-
Object
- Object
- Sass::BaseEnvironment
- Defined in:
- .ruby-sass/lib/sass/environment.rb
Overview
The abstract base class for lexical environments for SassScript.
Direct Known Subclasses
Direct Known Subclasses
Instance Attribute Summary (collapse)
-
#caller ⇒ Environment?
The environment of the caller of this environment's mixin or function.
-
#content ⇒ [Array<Sass::Tree::Node>, Environment]?
The content passed to this environment.
-
#options ⇒ Object
readonly
The options passed to the Sass Engine.
-
#selector ⇒ Selector::CommaSequence?
The selector for the current CSS rule, or nil if there is no current CSS rule.
Class Method Summary (collapse)
-
.inherited_hash_accessor(name) ⇒ Object
Note: when updating this, update sass/yard/inherited_hash.rb as well.
- .inherited_hash_reader(name) ⇒ Object
- .inherited_hash_writer(name) ⇒ Object
Instance Method Summary (collapse)
-
#global? ⇒ Boolean
Returns whether this is the global environment.
-
#global_env ⇒ Environment
The top-level Environment object.
-
#initialize(parent = nil, options = nil) ⇒ BaseEnvironment
constructor
A new instance of BaseEnvironment.
-
#stack ⇒ Sass::Stack
The import/mixin stack.
Constructor Details
#initialize(parent = nil, options = nil) ⇒ BaseEnvironment
Returns a new instance of BaseEnvironment
86 87 88 89 90 91 92 93 94 95 96 97 |
# File '.ruby-sass/lib/sass/environment.rb', line 86 def initialize(parent = nil, = nil) @parent = parent @options = || (parent && parent.) || {} @stack = @parent.nil? ? Sass::Stack.new : nil @caller = nil @content = nil @filename = nil @functions = nil @mixins = nil @selector = nil @vars = nil end |
Constructor Details
#initialize(parent = nil, options = nil) ⇒ BaseEnvironment
Returns a new instance of BaseEnvironment
86 87 88 89 90 91 92 93 94 95 96 97 |
# File '.ruby-sass/lib/sass/environment.rb', line 86 def initialize(parent = nil, = nil) @parent = parent @options = || (parent && parent.) || {} @stack = @parent.nil? ? Sass::Stack.new : nil @caller = nil @content = nil @filename = nil @functions = nil @mixins = nil @selector = nil @vars = nil end |
Instance Attribute Details
#caller ⇒ Environment?
The environment of the caller of this environment's mixin or function.
108 109 110 |
# File '.ruby-sass/lib/sass/environment.rb', line 108 def caller @caller || (@parent && @parent.caller) end |
#content ⇒ [Array<Sass::Tree::Node>, Environment]?
The content passed to this environment. This is naturally only set for mixin body environments with content passed in.
117 118 119 |
# File '.ruby-sass/lib/sass/environment.rb', line 117 def content @content || (@parent && @parent.content) end |
#options ⇒ Object (readonly)
The options passed to the Sass Engine.
65 66 67 |
# File '.ruby-sass/lib/sass/environment.rb', line 65 def @options end |
#selector ⇒ Selector::CommaSequence?
The selector for the current CSS rule, or nil if there is no current CSS rule.
126 127 128 |
# File '.ruby-sass/lib/sass/environment.rb', line 126 def selector @selector || (@caller && @caller.selector) || (@parent && @parent.selector) end |
Class Method Details
.inherited_hash_accessor(name) ⇒ Object
Note: when updating this, update sass/yard/inherited_hash.rb as well.
9 10 11 12 |
# File '.ruby-sass/lib/sass/environment.rb', line 9 def inherited_hash_accessor(name) inherited_hash_reader(name) inherited_hash_writer(name) end |
.inherited_hash_reader(name) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File '.ruby-sass/lib/sass/environment.rb', line 14 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 |
.inherited_hash_writer(name) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File '.ruby-sass/lib/sass/environment.rb', line 32 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 |
Instance Method Details
#global? ⇒ Boolean
Returns whether this is the global environment.
102 103 104 |
# File '.ruby-sass/lib/sass/environment.rb', line 102 def global? @parent.nil? end |
#global_env ⇒ Environment
The top-level Environment object.
133 134 135 |
# File '.ruby-sass/lib/sass/environment.rb', line 133 def global_env @global_env ||= global? ? self : @parent.global_env end |
#stack ⇒ Sass::Stack
The import/mixin stack.
140 141 142 |
# File '.ruby-sass/lib/sass/environment.rb', line 140 def stack @stack || global_env.stack end |