Module: ContextExposer::BaseController::ClassMethods

Defined in:
lib/context_exposer/base_controller.rb

Instance Method Summary collapse

Instance Method Details

#context_expose_decently(options = {}) ⇒ Object Also known as: expose_decently

expose all exposures exposed by decent_exposure to context



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/context_exposer/base_controller.rb', line 24

def context_expose_decently options = {}
  transfer_keys = _exposures.keys
  except = (options[:except] || {}).map(&:to_sym)
  only = (options[:only] || {}).map(&:to_sym)

  transfer_keys = transfer_keys - except

  unless only.empty?
    transfer_keys.select {|k| only.include? k.to_sym } 
  end

  transfer_keys.each do |exposure|
    exposed exposure do
      send(exposure)
    end
  end
end

#exposed(name, &block) ⇒ Object



18
19
20
21
# File 'lib/context_exposer/base_controller.rb', line 18

def exposed name, &block
  # puts "store: #{name} in hash storage for class #{self}"
  exposure_storage[name.to_sym] = block
end

#view_context_class(name) ⇒ Object



43
44
45
46
47
# File 'lib/context_exposer/base_controller.rb', line 43

def view_context_class name
  define_method :view_context_class do
    @view_context_class ||= name.kind_of?(Class) ? name : name.to_s.camelize.constantize
  end
end