Class: Aureus::Box

Inherits:
Renderable show all
Defined in:
lib/aureus/box.rb

Instance Method Summary collapse

Methods inherited from Renderable

#compact, #compact_render, #content_tag, #init

Constructor Details

#initialize(title, options, &block) ⇒ Box

Returns a new instance of Box.



5
6
7
8
9
10
11
# File 'lib/aureus/box.rb', line 5

def initialize title, options, &block
	init options, :for => :text, :centered => false
	init_haml_helpers
	@title = title
	@buttons = Array.new
	@content = capture_haml self, &block
end

Instance Method Details

#button(content) ⇒ Object



21
22
23
# File 'lib/aureus/box.rb', line 21

def button content
	@buttons << BoxButton.new(content)
end

#content(&block) ⇒ Object



13
14
15
# File 'lib/aureus/box.rb', line 13

def content &block
	@new_content = capture_haml &block
end

#foot(&block) ⇒ Object



17
18
19
# File 'lib/aureus/box.rb', line 17

def foot &block
	@foot = capture_haml &block
end

#renderObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/aureus/box.rb', line 25

def render
	title = ("h3",compact(("span",@title),compact_render(*@buttons)))
	classes = ["box"]
	classes << "centered" if @options[:centered]
	@content = @new_content if not @new_content.nil?
	 "div", :class => classes.join(" ") do
		case @options[:for]
			when :form
				@content = ("ul",@content,:class => "content")
		end
		footer = @foot.nil? ? "" : ("div",@foot,:class => "foot")
		compact title, ("div",@content), footer
	end
end