class PeekAView::View

Public Class Methods

new(name, common_block = nil) click to toggle source
# File lib/peek_a_view/view.rb, line 3
def initialize(name, common_block = nil)
  @name       = name
  self.params = nil # just to initialize params
  @blocks = []
  record(common_block) if common_block
end

Public Instance Methods

fixture(name) click to toggle source
# File lib/peek_a_view/view.rb, line 32
def fixture(name)
  fixture_dir = Rails.root + 'spec/fixtures/peek_a_view' # TODO config
  file = File.join(fixture_dir, name)
  File.read(file)
end
layout() click to toggle source
# File lib/peek_a_view/view.rb, line 18
def layout
  'application' # TODO be smarter
end
params=(new_params) click to toggle source
Calls superclass method
# File lib/peek_a_view/view.rb, line 22
def params=(new_params)
  *controller, action = template.split('/')
  augmented = (new_params || { }).reverse_merge(
    controller: controller.join('/'),
    action:     action
  )
  super(augmented)
  augmented
end
record(block) click to toggle source
# File lib/peek_a_view/view.rb, line 10
def record(block)
  @blocks << block
end
template() click to toggle source
Calls superclass method
# File lib/peek_a_view/view.rb, line 14
def template
  super || @name
end
variables(options = {}) click to toggle source
# File lib/peek_a_view/view.rb, line 38
def variables(options = {})
  @blocks.flatten.each { |block| block.call(self, options) }
  self
end