1 # Nick's web site: Helper to retrieve global style variables in ruby.
3 # Copyright © 2020 Nick Bowler
5 # This program is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation, either version 3 of the License, or
8 # (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program. If not, see <https://www.gnu.org/licenses/>.
20 class GetSCSSGlobals < Sass::Tree::Visitors::Perform
21 def self.visit(root, name = nil)
24 result = x.instance_variable_get(:@globals)
34 def initialize(environment)
36 @globals.default_proc = proc { |h, k|
37 if h.key? k.to_s then h[k.to_s] end }
41 def visit_variable(node)
44 x = @environment.global_env.var(node.name)
46 @globals[node.name] = x
51 def scss_get_var(variable, item = @items["/style.scss"])
52 engine = Sass::Engine.for_file(item.raw_filename, { :syntax => :scss })
53 return GetSCSSGlobals.visit(engine.to_tree, variable)