twitter_bootstrap_helper 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,10 +15,8 @@ module TwitterBootstrapHelper
|
|
15
15
|
# ==== Options
|
16
16
|
# * <tt>:icon</tt> - Optionally display an icon before the name.
|
17
17
|
# * All other options are passed through the the link_to helper.
|
18
|
-
def tb_link(name, link="#", options =
|
19
|
-
options
|
20
|
-
icon: nil,
|
21
|
-
}.merge(options)
|
18
|
+
def tb_link(name, link="#", options = nil)
|
19
|
+
options ||= {}
|
22
20
|
|
23
21
|
icon = nil
|
24
22
|
if options[:icon]
|
@@ -45,7 +43,7 @@ module TwitterBootstrapHelper
|
|
45
43
|
class: "btn",
|
46
44
|
icon: nil,
|
47
45
|
type: :submit,
|
48
|
-
}.merge(options)
|
46
|
+
}.merge(options || {})
|
49
47
|
|
50
48
|
options = options.nil? ? default_options : default_options.merge(options)
|
51
49
|
|
@@ -67,8 +65,7 @@ module TwitterBootstrapHelper
|
|
67
65
|
# ==== Options
|
68
66
|
# * <tt>:class</tt> - Defaults to "badge", any other class specified will be appended to the "badge" class.
|
69
67
|
def tb_badge(name, options = {})
|
70
|
-
options
|
71
|
-
}.merge(options)
|
68
|
+
options ||= {}
|
72
69
|
|
73
70
|
options[:class] = "badge #{options[:class]}"
|
74
71
|
|
@@ -79,8 +76,7 @@ module TwitterBootstrapHelper
|
|
79
76
|
# ==== Options
|
80
77
|
# * <tt>:class</tt> - Defaults to "label", any other class specified will be appended to the "label" class.
|
81
78
|
def tb_label(name, options = {})
|
82
|
-
options
|
83
|
-
}.merge(options)
|
79
|
+
options ||= {}
|
84
80
|
|
85
81
|
options[:class] = "label #{options[:class]}"
|
86
82
|
|
@@ -94,11 +90,9 @@ module TwitterBootstrapHelper
|
|
94
90
|
# * <tt>:badge_class</tt> - Optional badge class to add. Eg "badge-success"
|
95
91
|
# * <tt>:active</tt> - adds the active class showing the item is selected
|
96
92
|
def tb_sidebar_link(name, link="#", options = {})
|
97
|
-
|
98
|
-
icon: nil,
|
99
|
-
badge: 0,
|
93
|
+
options = {
|
100
94
|
active: (request.fullpath == link)
|
101
|
-
}.merge(options)
|
95
|
+
}.merge(options || {})
|
102
96
|
|
103
97
|
icon = nil
|
104
98
|
li_class = []
|
@@ -112,24 +106,105 @@ module TwitterBootstrapHelper
|
|
112
106
|
if options[:active]
|
113
107
|
li_class << "active"
|
114
108
|
i_class << "icon-white"
|
109
|
+
options.delete(:active)
|
115
110
|
end
|
116
111
|
|
117
112
|
i_class << icon
|
118
|
-
badge = options[:badge] > 0 ? " #{tb_badge(options[:badge], :class => "pull-right #{options[:badge_class]}")}".html_safe : ""
|
113
|
+
badge = (options[:badge] || 0) > 0 ? " #{tb_badge(options[:badge], :class => "pull-right #{options[:badge_class]}")}".html_safe : ""
|
119
114
|
icon_tag = content_tag(:i, "", :class => i_class.join(" "))
|
120
115
|
content_tag(:li, link_to(icon_tag + name + badge, link, options), :class => li_class.empty? ? nil : li_class.join(" "))
|
121
116
|
end
|
122
117
|
|
118
|
+
## Nav Helpers
|
119
|
+
|
120
|
+
def tb_nav(nav_type = nil, content_or_options_with_block = {}, options = {}, &block)
|
121
|
+
if block_given?
|
122
|
+
options = content_or_options_with_block if content_or_options_with_block.is_a?(Hash)
|
123
|
+
content = capture(&block)
|
124
|
+
else
|
125
|
+
content = content_or_options_with_block
|
126
|
+
end
|
127
|
+
|
128
|
+
options = {
|
129
|
+
:type => nil, # :tabs, :pills or :list
|
130
|
+
:stacked => false,
|
131
|
+
:dropdown_menu => false,
|
132
|
+
:html => {}
|
133
|
+
}.merge(options || {})
|
134
|
+
|
135
|
+
classes = [].tap do |c|
|
136
|
+
unless nav_type == :dropdown_menu
|
137
|
+
c << "nav"
|
138
|
+
c << "nav-#{nav_type.to_s}" unless nav_type.nil?
|
139
|
+
else
|
140
|
+
c << "dropdown-menu"
|
141
|
+
end
|
142
|
+
c << "nav-stacked" if options[:stacked]
|
143
|
+
c << options[:html][:class] if options[:html][:class]
|
144
|
+
end.join(" ")
|
145
|
+
|
146
|
+
options[:html][:class] = classes.blank? ? nil : classes
|
147
|
+
content_tag :ul, content, options[:html]
|
148
|
+
end
|
149
|
+
|
150
|
+
def tb_nav_item(content_or_options_with_block = nil, options = nil, &block)
|
151
|
+
if block_given?
|
152
|
+
options = content_or_options_with_block if content_or_options_with_block.is_a?(Hash)
|
153
|
+
content = capture(&block)
|
154
|
+
else
|
155
|
+
content = content_or_options_with_block
|
156
|
+
end
|
157
|
+
|
158
|
+
options = {
|
159
|
+
:header => false,
|
160
|
+
:active => false,
|
161
|
+
:disabled => false,
|
162
|
+
:dropdown => false,
|
163
|
+
:dropdown_submenu => false,
|
164
|
+
:html => {}
|
165
|
+
}.merge(options || {})
|
166
|
+
|
167
|
+
classes = [].tap do |c|
|
168
|
+
if [:divider, :divider_vertical].include?(content)
|
169
|
+
c << content.to_s.gsub("_", "-")
|
170
|
+
content = nil
|
171
|
+
end
|
172
|
+
c << options[:html][:class] if options[:html][:class]
|
173
|
+
options.except(:html, :nav_header).each_pair do |key, value|
|
174
|
+
c << key.to_s.gsub("_", "-") if value
|
175
|
+
end
|
176
|
+
c << "nav-header" if options[:header]
|
177
|
+
end.join(" ")
|
178
|
+
|
179
|
+
options[:html][:class] = classes.blank? ? nil : classes
|
180
|
+
content = tb_dropdown_toggle(options[:dropdown]) + content if options[:dropdown]
|
181
|
+
content_tag :li, content, options[:html]
|
182
|
+
end
|
183
|
+
|
184
|
+
def tb_nav_items(items)
|
185
|
+
[].tap do |l|
|
186
|
+
items.each_pair do |title, options|
|
187
|
+
l << tb_nav_item(tb_link(title, options[:path], options[:link]), options[:nav])
|
188
|
+
end
|
189
|
+
end.join.html_safe
|
190
|
+
end
|
191
|
+
|
192
|
+
def tb_dropdown_toggle(name, options = {})
|
193
|
+
options["data-toggle"] = "dropdown"
|
194
|
+
options[:class] = "dropdown-toggle #{options[:class]}"
|
195
|
+
tb_link "#{name} <b class=\"caret\"></b>".html_safe, "#", options
|
196
|
+
end
|
197
|
+
|
123
198
|
## Modal Helpers
|
124
199
|
|
125
200
|
# Creates a button with the given +name+ that will active a Twitter Bootstrap Modal with the id of +modal_id+.
|
126
201
|
# ==== Options
|
127
202
|
# * <tt>:data-toggle</tt> - Defaults to modal
|
128
203
|
# * All other options are passed to tb_link
|
129
|
-
def tb_modal_button(name, modal_id, options=
|
204
|
+
def tb_modal_button(name, modal_id, options=nil)
|
130
205
|
options = {
|
131
206
|
"data-toggle" => "modal"
|
132
|
-
}.merge(options)
|
207
|
+
}.merge(options || {})
|
133
208
|
|
134
209
|
tb_link name, "##{modal_id}", options
|
135
210
|
end
|
@@ -146,7 +221,14 @@ module TwitterBootstrapHelper
|
|
146
221
|
# * <tt>:ok_link</tt> - The link for the ok button. Default: "#"
|
147
222
|
# * <tt>:remote</tt> - (untested) The remote link for the model to get it's content
|
148
223
|
def tb_modal(modal_id, content_or_options_with_block = nil, options = nil, &block)
|
149
|
-
|
224
|
+
if block_given?
|
225
|
+
options = content_or_options_with_block if content_or_options_with_block.is_a?(Hash)
|
226
|
+
content = capture(&block)
|
227
|
+
else
|
228
|
+
content = content_or_options_with_block
|
229
|
+
end
|
230
|
+
|
231
|
+
options = {
|
150
232
|
title: "Alert",
|
151
233
|
fade: true,
|
152
234
|
cancel_label: "Cancel",
|
@@ -156,18 +238,9 @@ module TwitterBootstrapHelper
|
|
156
238
|
ok_class: "btn btn-primary",
|
157
239
|
ok_link: "#",
|
158
240
|
remote: nil,
|
159
|
-
}
|
160
|
-
|
161
|
-
if block_given?
|
162
|
-
options = content_or_options_with_block if content_or_options_with_block.is_a?(Hash)
|
163
|
-
content = capture(&block)
|
164
|
-
else
|
165
|
-
content = content_or_options_with_block
|
166
|
-
end
|
167
|
-
|
168
|
-
options = options.nil? ? default_options : default_options.merge(options)
|
241
|
+
}.merge(options || {})
|
169
242
|
|
170
|
-
content_tag :div, :id => modal_id, :class => "modal hide #{ options[:fade] ? "fade" : ""}", "data-remote" => options[:remote]
|
243
|
+
content_tag :div, :id => modal_id, :class => "modal hide #{ options[:fade] ? "fade" : ""}", "data-remote" => options[:remote] do
|
171
244
|
[].tap do |modal|
|
172
245
|
modal << content_tag(:div, :class => "modal-header") do
|
173
246
|
[].tap do |header|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twitter_bootstrap_helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -71,7 +71,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
71
71
|
version: '0'
|
72
72
|
segments:
|
73
73
|
- 0
|
74
|
-
hash:
|
74
|
+
hash: 747899810726140837
|
75
75
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
76
|
none: false
|
77
77
|
requirements:
|
@@ -80,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
80
80
|
version: '0'
|
81
81
|
segments:
|
82
82
|
- 0
|
83
|
-
hash:
|
83
|
+
hash: 747899810726140837
|
84
84
|
requirements: []
|
85
85
|
rubyforge_project:
|
86
86
|
rubygems_version: 1.8.24
|