How do I load extensions to the Sass::Script::Functions module?

前端 未结 2 387
旧巷少年郎
旧巷少年郎 2021-01-14 00:11

I\'m trying to extend the Sass:Script::Functions module, per this recommendation: https://gist.github.com/481261/dd07a52829886ab1ad0875a8895f0100c4b925ab. The question is, w

相关标签:
2条回答
  • 2021-01-14 00:30

    I usually make a folder in lib named "sass" and in that folder create a sass-hex.rb (make sure this folder is on the load path)

    module Sass::Script::Functions
      module SassHex
        def hex(decimal)
          Sass::Script::String.new("%02x" % decimal)
        end
      end
      include SassHex
    end
    

    All you should have todo is require the sass-hex.rb file I use this trick a lot in compass when extending sass.

    0 讨论(0)
  • 2021-01-14 00:36

    I just solved this to be able to use the compact function from Compass. Here's the whole scoop:

    lib/sass.rb (created a new file)

    # Compact function pulled from compass
    module Sass::Script::Functions
    
      module CustomSassExtensions
        def compact(*args)
          sep = :comma
          if args.size == 1 && args.first.is_a?(Sass::Script::List)
            args = args.first.value
            sep = args.first.separator
          end
          Sass::Script::List.new(args.reject{|a| !a.to_bool}, sep)
        end
      end
    
      include CustomSassExtensions
    
    end
    

    config/application.rb (place this inside inside class Application right after the lines with config.autoload_paths)

    if config.respond_to?(:sass)
      require "#{config.root}/lib/sass.rb"
    end
    

    Let me know if it worked for you.

    0 讨论(0)
提交回复
热议问题