lib/sass/value/function.rb
# frozen_string_literal: true module Sass module Value # Sass's function type. # # @see https://sass-lang.com/documentation/js-api/classes/SassFunction class Function include Value # @overload initialize(id) # @param id [Numeric] # @overload initialize(signature, callback) # @param signature [::String] # @param callback [Proc] def initialize(id_or_signature, callback = nil) if id_or_signature.is_a? Numeric @id = id_or_signature else @signature = id_or_signature @callback = callback end end # @return [Integer, nil] attr_reader :id # @return [::String, nil] attr_reader :signature # @return [Proc, nil] attr_reader :callback # @return [::Boolean] def ==(other) if id.nil? other.equal? self else other.is_a?(Sass::Value::Function) && other.id == id end end # @return [Integer] def hash id.nil? ? signature.hash : id.hash end # @return [Function] def assert_function(_name = nil) self end end end end