padrino-helpers 0.11.3 → 0.11.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.rdoc +1 -1
- data/lib/padrino-helpers.rb +3 -5
- data/lib/padrino-helpers/asset_tag_helpers.rb +32 -40
- data/lib/padrino-helpers/breadcrumb_helpers.rb +21 -39
- data/lib/padrino-helpers/form_builder/abstract_form_builder.rb +121 -118
- data/lib/padrino-helpers/form_builder/standard_form_builder.rb +6 -9
- data/lib/padrino-helpers/form_helpers.rb +190 -193
- data/lib/padrino-helpers/format_helpers.rb +29 -42
- data/lib/padrino-helpers/locale/cs.yml +14 -14
- data/lib/padrino-helpers/locale/da.yml +1 -1
- data/lib/padrino-helpers/locale/de.yml +1 -1
- data/lib/padrino-helpers/locale/en.yml +16 -16
- data/lib/padrino-helpers/locale/es.yml +16 -16
- data/lib/padrino-helpers/locale/fr.yml +1 -2
- data/lib/padrino-helpers/locale/hu.yml +16 -16
- data/lib/padrino-helpers/locale/it.yml +2 -2
- data/lib/padrino-helpers/locale/ja.yml +16 -16
- data/lib/padrino-helpers/locale/lv.yml +16 -16
- data/lib/padrino-helpers/locale/nl.yml +1 -1
- data/lib/padrino-helpers/locale/no.yml +1 -1
- data/lib/padrino-helpers/locale/pl.yml +7 -7
- data/lib/padrino-helpers/locale/pt_br.yml +16 -16
- data/lib/padrino-helpers/locale/ro.yml +16 -16
- data/lib/padrino-helpers/locale/ru.yml +16 -16
- data/lib/padrino-helpers/locale/sv.yml +16 -16
- data/lib/padrino-helpers/locale/tr.yml +16 -16
- data/lib/padrino-helpers/locale/uk.yml +16 -16
- data/lib/padrino-helpers/locale/zh_cn.yml +16 -16
- data/lib/padrino-helpers/locale/zh_tw.yml +16 -16
- data/lib/padrino-helpers/number_helpers.rb +10 -15
- data/lib/padrino-helpers/output_helpers.rb +49 -57
- data/lib/padrino-helpers/output_helpers/abstract_handler.rb +16 -18
- data/lib/padrino-helpers/output_helpers/erb_handler.rb +11 -12
- data/lib/padrino-helpers/output_helpers/haml_handler.rb +9 -9
- data/lib/padrino-helpers/output_helpers/slim_handler.rb +11 -13
- data/lib/padrino-helpers/render_helpers.rb +5 -6
- data/lib/padrino-helpers/tag_helpers.rb +18 -21
- data/lib/padrino-helpers/translation_helpers.rb +4 -6
- data/test/fixtures/markup_app/app.rb +7 -3
- data/test/fixtures/render_app/app.rb +1 -0
- data/test/test_asset_tag_helpers.rb +1 -1
- data/test/test_form_builder.rb +5 -6
- data/test/test_form_helpers.rb +24 -12
- data/test/test_format_helpers.rb +3 -3
- data/test/test_number_helpers.rb +4 -0
- data/test/test_output_helpers.rb +1 -1
- data/test/test_render_helpers.rb +1 -1
- data/test/test_tag_helpers.rb +1 -1
- metadata +9 -15
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ef68c8d06903529b8d8f51c05b1290487a392463
|
4
|
+
data.tar.gz: e7a25b76bffb3892afd7f4a4820e0507670c608a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 66cda324d865e815ec7bbdd1e93ac7dae958d5ec3db1e7b1f53a409f2aa825c76c58bcab9f632da80c2dce5f48d532a04aa77f9d7c632f72fea4d7955d5b1e19
|
7
|
+
data.tar.gz: c01aaa4bdb41938c530acb00cc1784490a06b462f1ff315c53514f3915a959bc76214c4a5142213e1ebe01abd5407fc498782663ea811368db9c2a9fc0b61671
|
data/README.rdoc
CHANGED
data/lib/padrino-helpers.rb
CHANGED
@@ -8,8 +8,6 @@ require 'active_support/core_ext/object/with_options' # with_options
|
|
8
8
|
require 'active_support/inflector' # humanize
|
9
9
|
|
10
10
|
FileSet.glob_require('padrino-helpers/**/*.rb', __FILE__)
|
11
|
-
|
12
|
-
# Load our locales
|
13
11
|
I18n.load_path += Dir["#{File.dirname(__FILE__)}/padrino-helpers/locale/*.yml"]
|
14
12
|
|
15
13
|
module Padrino
|
@@ -33,7 +31,7 @@ module Padrino
|
|
33
31
|
# Padrino::Helpers::Breadcrumbs
|
34
32
|
#
|
35
33
|
# @param [Sinatra::Application] app
|
36
|
-
# The specified
|
34
|
+
# The specified Padrino application.
|
37
35
|
#
|
38
36
|
# @example Register the helper module
|
39
37
|
# require 'padrino-helpers'
|
@@ -55,5 +53,5 @@ module Padrino
|
|
55
53
|
end
|
56
54
|
alias :included :registered
|
57
55
|
end
|
58
|
-
end
|
59
|
-
end
|
56
|
+
end
|
57
|
+
end
|
@@ -1,21 +1,21 @@
|
|
1
1
|
module Padrino
|
2
2
|
module Helpers
|
3
3
|
###
|
4
|
-
# Helpers related to producing assets (images,stylesheets,js,etc) within templates.
|
4
|
+
# Helpers related to producing assets (images, stylesheets, js, etc) within templates.
|
5
5
|
#
|
6
6
|
module AssetTagHelpers
|
7
7
|
FRAGMENT_HASH = "#".html_safe.freeze
|
8
|
-
APPEND_ASSET_EXTENSIONS = ["js", "css"]
|
9
|
-
ABSOLUTE_URL_PATTERN = %r{^(https?://)}
|
8
|
+
APPEND_ASSET_EXTENSIONS = ["js", "css"]
|
9
|
+
ABSOLUTE_URL_PATTERN = %r{^(https?://)}
|
10
10
|
|
11
11
|
##
|
12
|
-
# Creates a div to display the flash of given type if it exists
|
12
|
+
# Creates a div to display the flash of given type if it exists.
|
13
13
|
#
|
14
14
|
# @param [Symbol] kind
|
15
15
|
# The type of flash to display in the tag.
|
16
16
|
# @param [Hash] options
|
17
17
|
# The html options for this section.
|
18
|
-
# use :bootstrap => true to support Twitter's bootstrap dismiss alert button
|
18
|
+
# use :bootstrap => true to support Twitter's bootstrap dismiss alert button.
|
19
19
|
#
|
20
20
|
# @return [String] Flash tag html with specified +options+.
|
21
21
|
#
|
@@ -26,7 +26,6 @@ module Padrino
|
|
26
26
|
# # Generates: <div class="error">flash-error</div>
|
27
27
|
# # <div class="success">flash-success</div>
|
28
28
|
#
|
29
|
-
# @api public
|
30
29
|
def flash_tag(*args)
|
31
30
|
options = args.extract_options!
|
32
31
|
bootstrap = options.delete(:bootstrap) if options[:bootstrap]
|
@@ -39,7 +38,7 @@ module Padrino
|
|
39
38
|
end
|
40
39
|
|
41
40
|
##
|
42
|
-
# Creates a link element with given name, url and options
|
41
|
+
# Creates a link element with given name, url and options.
|
43
42
|
#
|
44
43
|
# @overload link_to(caption, url, options={})
|
45
44
|
# @param [String] caption The text caption.
|
@@ -51,15 +50,15 @@ module Padrino
|
|
51
50
|
# @param [Proc] block The link content.
|
52
51
|
#
|
53
52
|
# @option options [String] :anchor
|
54
|
-
# The anchor for the link (i.e #something)
|
53
|
+
# The anchor for the link (i.e #something).
|
55
54
|
# @option options [String] :fragment
|
56
|
-
# Synonym for anchor
|
55
|
+
# Synonym for anchor.
|
57
56
|
# @option options [Boolean] :if
|
58
|
-
# If true, the link will appear, otherwise not
|
57
|
+
# If true, the link will appear, otherwise not.
|
59
58
|
# @option options [Boolean] :unless
|
60
|
-
# If false, the link will appear, otherwise not
|
59
|
+
# If false, the link will appear, otherwise not.
|
61
60
|
# @option options [Boolean] :remote
|
62
|
-
# If true, this link should be handled by
|
61
|
+
# If true, this link should be handled by an ajax ujs handler.
|
63
62
|
# @option options [String] :confirm
|
64
63
|
# Instructs ujs handler to alert confirm message.
|
65
64
|
# @option options [Symbol] :method
|
@@ -74,13 +73,12 @@ module Padrino
|
|
74
73
|
# link_to('click me', :class => 'blocky') do; end
|
75
74
|
#
|
76
75
|
# Note that you can pass :+if+ or :+unless+ conditions, but if you provide :current as
|
77
|
-
# condition padrino return true/false if the request.path_info match the given url
|
76
|
+
# condition padrino return true/false if the request.path_info match the given url.
|
78
77
|
#
|
79
|
-
# @api public
|
80
78
|
def link_to(*args, &block)
|
81
|
-
options
|
82
|
-
fragment
|
83
|
-
fragment
|
79
|
+
options = args.extract_options!
|
80
|
+
fragment = options.delete(:anchor).to_s if options[:anchor]
|
81
|
+
fragment = options.delete(:fragment).to_s if options[:fragment]
|
84
82
|
|
85
83
|
url = ActiveSupport::SafeBuffer.new
|
86
84
|
if block_given?
|
@@ -121,11 +119,11 @@ module Padrino
|
|
121
119
|
# @param[Hash] options
|
122
120
|
# The options for the feed tag.
|
123
121
|
# @option options [String] :rel ("alternate")
|
124
|
-
# Specify the relation of this link
|
122
|
+
# Specify the relation of this link.
|
125
123
|
# @option options [String] :type
|
126
|
-
# Override the auto-generated mime type
|
124
|
+
# Override the auto-generated mime type.
|
127
125
|
# @option options [String] :title
|
128
|
-
# Specify the title of the link, defaults to the type
|
126
|
+
# Specify the title of the link, defaults to the type.
|
129
127
|
#
|
130
128
|
# @return [String] Feed link html tag with specified +options+.
|
131
129
|
#
|
@@ -135,7 +133,6 @@ module Padrino
|
|
135
133
|
# feed_tag :rss, url(:blog, :posts, :format => :rss)
|
136
134
|
# # Generates: <link type="application/rss+xml" rel="alternate" href="/blog/posts.rss" title="rss" />
|
137
135
|
#
|
138
|
-
# @api public
|
139
136
|
def feed_tag(mime, url, options={})
|
140
137
|
full_mime = (mime == :atom) ? 'application/atom+xml' : 'application/rss+xml'
|
141
138
|
tag(:link, options.reverse_merge(:rel => 'alternate', :type => full_mime, :title => mime, :href => url))
|
@@ -163,7 +160,6 @@ module Padrino
|
|
163
160
|
# # Generates: <a href="mailto:me@demo.com">My Email</a>
|
164
161
|
# mail_to "me@demo.com", "My Email"
|
165
162
|
#
|
166
|
-
# @api public
|
167
163
|
def mail_to(email, caption=nil, mail_options={})
|
168
164
|
html_options = mail_options.slice!(:cc, :bcc, :subject, :body)
|
169
165
|
mail_query = Rack::Utils.build_query(mail_options).gsub(/\+/, '%20').gsub('%40', '@').gsub('&', '&')
|
@@ -188,14 +184,13 @@ module Padrino
|
|
188
184
|
# # Generates: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
189
185
|
# meta_tag "text/html; charset=UTF-8", 'http-equiv' => "Content-Type"
|
190
186
|
#
|
191
|
-
# @api public
|
192
187
|
def meta_tag(content, options={})
|
193
188
|
options.reverse_merge!("content" => content)
|
194
189
|
tag(:meta, options)
|
195
190
|
end
|
196
191
|
|
197
192
|
##
|
198
|
-
# Generates a favicon link.
|
193
|
+
# Generates a favicon link. Looks inside images folder
|
199
194
|
#
|
200
195
|
# @param [String] source
|
201
196
|
# The source image path for the favicon link tag.
|
@@ -210,7 +205,6 @@ module Padrino
|
|
210
205
|
# # or override some options
|
211
206
|
# favicon_tag 'favicon.png', :type => 'image/ico'
|
212
207
|
#
|
213
|
-
# @api public
|
214
208
|
def favicon_tag(source, options={})
|
215
209
|
type = File.extname(source).gsub('.','')
|
216
210
|
options = options.dup.reverse_merge!(:href => image_path(source), :rel => 'icon', :type => "image/#{type}")
|
@@ -218,7 +212,7 @@ module Padrino
|
|
218
212
|
end
|
219
213
|
|
220
214
|
##
|
221
|
-
# Creates an image element with given url and options
|
215
|
+
# Creates an image element with given url and options.
|
222
216
|
#
|
223
217
|
# @param [String] url
|
224
218
|
# The source path for the image tag.
|
@@ -230,7 +224,6 @@ module Padrino
|
|
230
224
|
# @example
|
231
225
|
# image_tag('icons/avatar.png')
|
232
226
|
#
|
233
|
-
# @api public
|
234
227
|
def image_tag(url, options={})
|
235
228
|
options.reverse_merge!(:src => image_path(url))
|
236
229
|
tag(:img, options)
|
@@ -250,7 +243,7 @@ module Padrino
|
|
250
243
|
# @example
|
251
244
|
# stylesheet_link_tag 'style', 'application', 'layout'
|
252
245
|
#
|
253
|
-
# @api public
|
246
|
+
# @api public.
|
254
247
|
def stylesheet_link_tag(*sources)
|
255
248
|
options = sources.extract_options!.symbolize_keys
|
256
249
|
options.reverse_merge!(:media => 'screen', :rel => 'stylesheet', :type => 'text/css')
|
@@ -273,7 +266,6 @@ module Padrino
|
|
273
266
|
# @example
|
274
267
|
# javascript_include_tag 'application', :extjs
|
275
268
|
#
|
276
|
-
# @api public
|
277
269
|
def javascript_include_tag(*sources)
|
278
270
|
options = sources.extract_options!.symbolize_keys
|
279
271
|
options.reverse_merge!(:type => 'text/javascript')
|
@@ -287,7 +279,7 @@ module Padrino
|
|
287
279
|
# like app/public/images for inclusion. You can provide also a full path.
|
288
280
|
#
|
289
281
|
# @param [String] src
|
290
|
-
# The path to the image file (relative or absolute)
|
282
|
+
# The path to the image file (relative or absolute).
|
291
283
|
#
|
292
284
|
# @return [String] Path to an image given the +kind+ and +source+.
|
293
285
|
#
|
@@ -301,10 +293,10 @@ module Padrino
|
|
301
293
|
end
|
302
294
|
|
303
295
|
##
|
304
|
-
# Returns the path to the specified asset (css or javascript)
|
296
|
+
# Returns the path to the specified asset (css or javascript).
|
305
297
|
#
|
306
298
|
# @param [String] kind
|
307
|
-
# The kind of asset (i.e :images, :js, :css)
|
299
|
+
# The kind of asset (i.e :images, :js, :css).
|
308
300
|
# @param [String] source
|
309
301
|
# The path to the asset (relative or absolute).
|
310
302
|
#
|
@@ -320,7 +312,6 @@ module Padrino
|
|
320
312
|
# # Generates: /images/example.jpg?1269008689
|
321
313
|
# asset_path :images, 'example.jpg'
|
322
314
|
#
|
323
|
-
# @api semipublic
|
324
315
|
def asset_path(kind, source)
|
325
316
|
source = asset_normalize_extension(kind, URI.escape(source.to_s))
|
326
317
|
return source if source =~ ABSOLUTE_URL_PATTERN || source =~ /^\// # absolute source
|
@@ -332,7 +323,7 @@ module Padrino
|
|
332
323
|
|
333
324
|
private
|
334
325
|
##
|
335
|
-
# Returns the
|
326
|
+
# Returns the URI root of the application with optional paths appended.
|
336
327
|
#
|
337
328
|
# @example
|
338
329
|
# uri_root_path("/some/path") => "/root/some/path"
|
@@ -344,7 +335,7 @@ module Padrino
|
|
344
335
|
end
|
345
336
|
|
346
337
|
##
|
347
|
-
# Returns the timestamp mtime for an asset
|
338
|
+
# Returns the timestamp mtime for an asset.
|
348
339
|
#
|
349
340
|
# @example
|
350
341
|
# asset_timestamp("some/path/to/file.png") => "?154543678"
|
@@ -375,7 +366,8 @@ module Padrino
|
|
375
366
|
end
|
376
367
|
end
|
377
368
|
|
378
|
-
|
369
|
+
##
|
370
|
+
# Normalizes the extension for a given asset.
|
379
371
|
#
|
380
372
|
# @example
|
381
373
|
#
|
@@ -389,7 +381,7 @@ module Padrino
|
|
389
381
|
end
|
390
382
|
|
391
383
|
##
|
392
|
-
# Parses link_to options for given correct conditions
|
384
|
+
# Parses link_to options for given correct conditions.
|
393
385
|
#
|
394
386
|
# @example
|
395
387
|
# parse_conditions("/some/url", :if => false) => true
|
@@ -404,6 +396,6 @@ module Padrino
|
|
404
396
|
true
|
405
397
|
end
|
406
398
|
end
|
407
|
-
end
|
408
|
-
end
|
409
|
-
end
|
399
|
+
end
|
400
|
+
end
|
401
|
+
end
|
@@ -1,30 +1,28 @@
|
|
1
1
|
module Padrino
|
2
2
|
module Helpers
|
3
3
|
class Breadcrumb
|
4
|
-
|
5
4
|
attr_accessor :home, :items
|
6
5
|
|
7
6
|
DEFAULT_URL = "/"
|
8
7
|
DEFAULT_CAPTION ="Home Page"
|
9
8
|
|
10
9
|
##
|
11
|
-
#
|
10
|
+
# Initialize breadcrumbs with default value.
|
12
11
|
#
|
13
12
|
# @example
|
14
13
|
# before do
|
15
14
|
# @breadcrumbs = breadcrumbs.new
|
16
15
|
# end
|
17
16
|
#
|
18
|
-
# @api public
|
19
17
|
def initialize
|
20
18
|
reset!
|
21
19
|
end
|
22
20
|
|
23
21
|
##
|
24
|
-
# Set the custom home (Parent) link
|
22
|
+
# Set the custom home (Parent) link.
|
25
23
|
#
|
26
24
|
# @param [String] url
|
27
|
-
# The url href
|
25
|
+
# The url href.
|
28
26
|
#
|
29
27
|
# @param [String] caption
|
30
28
|
# The text caption.
|
@@ -35,8 +33,6 @@ module Padrino
|
|
35
33
|
# @example
|
36
34
|
# breadcrumbs.set_home "/HomeFoo", "Foo Home", :id => "home-breadcrumb"
|
37
35
|
#
|
38
|
-
#
|
39
|
-
# @api public
|
40
36
|
def set_home(url, caption, options = {})
|
41
37
|
self.home = {
|
42
38
|
:url => url.to_s,
|
@@ -48,24 +44,22 @@ module Padrino
|
|
48
44
|
end
|
49
45
|
|
50
46
|
##
|
51
|
-
# Reset breadcrumbs to default or personal
|
47
|
+
# Reset breadcrumbs to default or personal home.
|
52
48
|
#
|
53
49
|
# @example
|
54
50
|
# breadcrumbs.reset
|
55
51
|
#
|
56
|
-
# @api public
|
57
52
|
def reset
|
58
53
|
self.items = []
|
59
54
|
self.items << home
|
60
55
|
end
|
61
56
|
|
62
57
|
##
|
63
|
-
# Reset breadcrumbs to default home
|
58
|
+
# Reset breadcrumbs to default home.
|
64
59
|
#
|
65
60
|
# @example
|
66
61
|
# breadcrumbs.reset!
|
67
62
|
#
|
68
|
-
# @api public
|
69
63
|
def reset!
|
70
64
|
self.home = {
|
71
65
|
:name => :home,
|
@@ -77,7 +71,7 @@ module Padrino
|
|
77
71
|
end
|
78
72
|
|
79
73
|
##
|
80
|
-
# Add a new
|
74
|
+
# Add a new breadcrumbs.
|
81
75
|
#
|
82
76
|
# @param [String] name
|
83
77
|
# The name of resource.
|
@@ -97,7 +91,6 @@ module Padrino
|
|
97
91
|
# breadcrumbs.add "foo", "/foo", "Foo Link", :id => "foo-id"
|
98
92
|
# breadcrumbs.add :foo, "/foo", "Foo Link", :class => "foo-class"
|
99
93
|
#
|
100
|
-
# @api public
|
101
94
|
def add(name, url, caption, options = {})
|
102
95
|
items << {
|
103
96
|
:name => name.to_sym,
|
@@ -106,42 +99,35 @@ module Padrino
|
|
106
99
|
:options => options
|
107
100
|
}
|
108
101
|
end
|
109
|
-
|
110
102
|
alias :<< :add
|
111
103
|
|
112
104
|
##
|
113
|
-
# Remove a
|
105
|
+
# Remove a breadcrumb.
|
114
106
|
#
|
115
107
|
# @param [String] name
|
116
|
-
# The name of resource to delete from breadcrumbs list
|
117
|
-
#
|
118
|
-
# @param [Symbol] name
|
119
|
-
# The name of resource to delete from breadcrumbs list
|
108
|
+
# The name of resource to delete from breadcrumbs list.
|
120
109
|
#
|
121
110
|
# @example
|
122
111
|
# breadcrumbs.del "foo"
|
123
112
|
# breadcrumbs.del :foo
|
124
113
|
#
|
125
|
-
# @api public
|
126
114
|
def del(name)
|
127
115
|
items.delete_if { |item| item[:name] == name.to_sym }
|
128
116
|
end
|
129
|
-
|
130
|
-
end # Breadcrumb
|
131
|
-
|
117
|
+
end
|
132
118
|
|
133
119
|
module Breadcrumbs
|
134
|
-
|
135
|
-
# Render breadcrumbs to view
|
120
|
+
##
|
121
|
+
# Render breadcrumbs to view.
|
136
122
|
#
|
137
123
|
# @param [Breadcrumbs] breadcrumbs
|
138
|
-
# The breadcrumbs to render into view
|
124
|
+
# The breadcrumbs to render into view.
|
139
125
|
#
|
140
126
|
# @param [Boolean] bootstrap
|
141
|
-
# If true, render separation (
|
127
|
+
# If true, render separation (useful with Twitter Bootstrap).
|
142
128
|
#
|
143
129
|
# @param [String] active
|
144
|
-
#
|
130
|
+
# CSS class style set to active breadcrumb.
|
145
131
|
#
|
146
132
|
# @param [Hash] options
|
147
133
|
# The HTML options to include in ul.
|
@@ -156,8 +142,6 @@ module Padrino
|
|
156
142
|
# # <li class="active"><a href="/bar">Bar Link</a></li>
|
157
143
|
# # </ul>
|
158
144
|
#
|
159
|
-
#
|
160
|
-
# @api public
|
161
145
|
def breadcrumbs(breadcrumbs, bootstrap = false, active = "active", options = {})
|
162
146
|
content = ""
|
163
147
|
breadcrumbs.items[0..-2].each do |item|
|
@@ -178,24 +162,22 @@ module Padrino
|
|
178
162
|
|
179
163
|
private
|
180
164
|
##
|
181
|
-
# Private method to return list item
|
165
|
+
# Private method to return list item.
|
182
166
|
#
|
183
167
|
# @param [Hash] item
|
184
|
-
# The breadcrumb item
|
168
|
+
# The breadcrumb item.
|
185
169
|
#
|
186
170
|
# @param [Boolean] bootstrap
|
187
|
-
# If true, render separation (
|
171
|
+
# If true, render separation (useful with Twitter Bootstrap).
|
188
172
|
#
|
189
|
-
# @return [String] List item with
|
173
|
+
# @return [String] List item with breadcrumb
|
190
174
|
#
|
191
|
-
# @api public
|
192
175
|
def render_item(item, bootstrap)
|
193
176
|
content = ""
|
194
177
|
content << link_to(item[:caption], item[:url])
|
195
178
|
content << safe_content_tag(:span, "/", :class => "divider") if bootstrap
|
196
179
|
safe_content_tag(:li, content, item[:options])
|
197
180
|
end
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
end # Padrino
|
181
|
+
end
|
182
|
+
end
|
183
|
+
end
|