module Xpose::Controller::ClassMethods

Public Instance Methods

_expose(**args) click to toggle source
# File lib/xpose/controller.rb, line 6
def _expose(**args)
  ::Xpose::Exposed.new(args).tap do |inst|
    @@exposed ||= {}
    @@exposed[inst.conf.name] = inst
    define_method inst.conf.name do
      if instance_variable_defined?(inst.conf.ivar_name)
        instance_variable_get(inst.conf.ivar_name)
      else
        instance_variable_set(inst.conf.ivar_name, inst.exposed_value(self))
      end
    end
    helper_method(inst.conf.name)
  end
end
expose(names, value = nil, **args, &block) click to toggle source
# File lib/xpose/controller.rb, line 21
def expose(names, value = nil, **args, &block)
  value = value || args.fetch(:value, nil) || block
  [names].flatten.each { |name| _expose({ name: name, value: value }.merge(args)) }
end
expose!(names, value = nil, **args, &block) click to toggle source
# File lib/xpose/controller.rb, line 26
def expose!(names, value = nil, **args, &block)
  expose(name, value, args, &block)
  [names].flatten.each { |name| before_action(name) }
end
exposed() click to toggle source
# File lib/xpose/controller.rb, line 31
def exposed
  @@exposed ||= {}
end