module Lutaml::Model::Liquefiable::ClassMethods
def drop_class
def drop_class const_get(drop_class_name) rescue StandardError nil end
def drop_class_name
def drop_class_name @drop_class_name ||= if name "#{to_s.split('::').last}Drop" else "Drop" end end
def initialize(object)
def initialize(object) super() @object = object end
def register_drop_method(method_name)
def register_drop_method(method_name) register_liquid_drop_class unless drop_class return if drop_class.method_defined?(method_name) drop_class.define_method(method_name) do value = @object.public_send(method_name) if value.is_a?(Array) value.map(&:to_liquid) else value.to_liquid end end end
def register_liquid_drop_class
def register_liquid_drop_class validate_liquid! if drop_class raise "#{drop_class_name} Already exists!" end const_set(drop_class_name, Class.new(Liquid::Drop) do def initialize(object) super() @object = object end end) end
def validate_liquid!
def validate_liquid! return if Object.const_defined?(:Liquid) raise Lutaml::Model::LiquidNotEnabledError end