Files
news.gitea.happylizard.me/bin/gems/sass-embedded-1.83.4-x86_64-linux-gnu/lib/sass/compiler/host/structifier.rb
T
pizza2d1 4cee170d66
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 9s
Add bin and edit workflow
2026-09-16 13:11:16 -06:00

38 lines
839 B
Ruby

# frozen_string_literal: true
module Sass
class Compiler
class Host
# The {Structifier} module.
#
# It converts {::Hash} to {Struct}-like objects.
module Structifier
module_function
def to_struct(obj, *symbols)
return obj unless obj.is_a?(Hash)
struct = Object.new
symbols.each do |key|
next unless obj.key?(key)
value = obj[key]
if value.respond_to?(:call)
struct.define_singleton_method key do |*args, **kwargs|
value.call(*args, **kwargs)
end
else
struct.define_singleton_method key do
value
end
end
end
struct
end
end
private_constant :Structifier
end
end
end