Как перенести пользовательские функции ruby-sass в sassc? - PullRequest
1 голос
/ 23 октября 2019

Как перенести эту пользовательскую функцию ruby ​​sass в SassC? В проекте rails я только что включил этот модуль в мой application.rb, и в моих файлах sass будут доступны my-method.

Рубиновое сообщение EOL ruby ​​sass *1005* предлагает мнеследует просто саб "SassC" для "Sass", но это не работает. Я не вижу ни одного из этих методов (assert_type или prepend_host), определенных в SassC.

Спасибо!

module Sass::Script::Functions

  def my_method(string)
    assert_type string, :String

    prepend_host('https://cdn.host.com', string)
  end
  declare :my_method, [:string]
end

Другое сообщение в блоге, описывающее реализацию: http://www.seancolombo.com/2010/07/28/how-to-make-and-use-a-custom-sass-function/

1 Ответ

0 голосов
/ 23 октября 2019

Для функции assert_type вы можете попробовать что-нибудь отсюда https://github.com/sass/sassc-ruby/blob/61a02d1d88b489f83b5b3d0da48a9b62f210691b/lib/sassc/script/value_conversion.rb

SassC::Native.value_get_tag(string) == :sass_string

Вы можете попробовать скопировать функцию assert_type, если вы хотите также выдать ошибку, отметьте это https://github.com/sass/ruby-sass/blob/1ed4e31033dd0bff4da27d1f21c531e1fdaccaab/lib/sass/script/functions.rb#L533

Я не могу найти этот prepend_host метод на базе кода ruby-sass. Я не уверен, что он на самом деле делает, чтобы предложить замену.

...