For the impatient: fast to reproduce:
begin
color=SassC::Script::Value::Color.new()
rescue Exception => e
puts e
end
---------> Unable to determine color configuration¹
begin
color=SassC::Script::Value::Color.new(1,2,3)
rescue Exception => e
puts e
end
---------> wrong number of arguments (given 3, expected 0)
¹ this error fits to the original gem source:
# Creates a new color with (`red`, `green`, `blue`) or (`hue`, `saturation`, `lightness`
# values, plus an optional `alpha` transparency value.
def initialize(red:nil, green:nil, blue:nil, hue:nil, saturation:nil, lightness:nil, alpha:1.0)
if red && green && blue && alpha
@mode = :rgba
@red = SassC::Util.clamp(red.to_i, 0, 255)
@green = SassC::Util.clamp(green.to_i, 0, 255)
@blue = SassC::Util.clamp(blue.to_i, 0, 255)
@alpha = SassC::Util.clamp(alpha.to_f, 0.0, 1.0)
elsif hue && saturation && lightness && alpha
@mode = :hsla
@hue = SassC::Util.clamp(hue.to_i, 0, 360)
@saturation = SassC::Util.clamp(saturation.to_i, 0, 100)
@lightness = SassC::Util.clamp(lightness.to_i, 0, 100)
@alpha = SassC::Util.clamp(alpha.to_f, 0.0, 1.0)
else
raise SassC::UnsupportedValue, "Unable to determine color configuration for"
end
end
versions:
Rails 7.0.4.2
ruby 2.7.7p221
sassc (2.4.0)
The more detailed explain:
I am migrating from Sass
to SassC
. I am using a hand full external function extensions wit Sass.
I soon got the error to_s() wrong number of arguments (given 1, expected 0)
I started monkey patching SassC
for a workaround, but always ended up in errors like wrong number of arguments (given n, expected 0)
After almost the half of function patched I give up, because that's not the idea of a (monkey) patch.
Conclusion:
I (almost) got my functions running, but after replacing about 10 original ones from SassC
- mostly replacing to_s(opts)
with just to_s
, I think, that there is something wrong.
My fault, or a SassC bug?