class Coupdoeil::Hovercard::Setup

def default_options = klass.default_options_for(type)

def default_options = klass.default_options_for(type)

def identifier = "#{type}@#{klass.hovercard_resource_name}"

def identifier = "#{type}@#{klass.hovercard_resource_name}"

def initialize(klass)

def initialize(klass)
  @klass = klass
  @type = nil
  @params = EMPTY_PARAMS
end

def method_missing(method_name, *args, &)

def method_missing(method_name, *args, &)
  if klass.action_methods.include?(method_name.name)
    raise ArgumentError, "expected no arguments, given #{args.size}" if args.any?
    with_type(method_name)
  else
    super
  end
end

def render_in(view_context) = klass.new(params, view_context).process(type)

def render_in(view_context) = klass.new(params, view_context).process(type)

def respond_to_missing?(method, include_all = false)

def respond_to_missing?(method, include_all = false)
  klass.action_methods.include?(method.name) || super
end

def with_params(**params)

def with_params(**params)
  @params = params
  self
end

def with_type(type)

def with_type(type)
  @type = type
  self
end