Module: Xpose::Controller::ClassMethods
- Defined in:
- lib/xpose/controller.rb
Instance Method Summary collapse
- #_expose(**args) ⇒ Object
- #expose(names, value = nil, **args, &block) ⇒ Object
- #expose!(names, value = nil, **args, &block) ⇒ Object
- #exposed ⇒ Object
Instance Method Details
#_expose(**args) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# 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) ⇒ Object
21 22 23 24 |
# 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) ⇒ Object
26 27 28 29 |
# 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 ⇒ Object
31 32 33 |
# File 'lib/xpose/controller.rb', line 31 def exposed @@exposed ||= {} end |