module Glipper::Validation::ClassMethods

module ApplicationHelper

def glip(resource)
  glipper_class.decorate(resource, self)
end

def glipper_class
  ::Sample::ApplicationGlipper
end

def method_missing(name, *args, instead_nil: '', **params, &block)
  return super(name, *args, **params, &block) unless glipper_class.glip_method?(name, *args, **params, &block)
  return instead_nil.html_safe if glipper_class.glip_skip?(name, *args, **params, &block)
  return super(name, *args, **params, &block) unless glipper_class.glip_arguments?(name, *args, **params, &block)

  glip(args.first).public_send(glipper_class.glip_method_name(name), *args[1..-1], **params, &block)
end

def respond_to_missing?(name, include_private = false)
  glipper_class.glip_method?(name)
end

end

Public Instance Methods

glip_arguments?(name, *args, &block) click to toggle source
# File lib/glipper/validation.rb, line 28
def glip_arguments?(name, *args, &block)
  name.starts_with?('glip_')
end
glip_method?(name, *args, &block) click to toggle source
# File lib/glipper/validation.rb, line 32
def glip_method?(name, *args, &block)
  name.starts_with?('glip_')
end
glip_method_name(name) click to toggle source
# File lib/glipper/validation.rb, line 44
def glip_method_name(name)
  name.to_s.gsub(/!\z/, '').to_sym
end
glip_skip?(name, *args, &block) click to toggle source
# File lib/glipper/validation.rb, line 40
def glip_skip?(name, *args, &block)
  name.starts_with?('glip_') && name.ends_with?('!') && args.first.nil?
end