padrino-helpers 0.13.2 → 0.13.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.
- checksums.yaml +4 -4
- data/lib/padrino-helpers.rb +3 -0
- data/lib/padrino-helpers/asset_tag_helpers.rb +13 -12
- data/lib/padrino-helpers/form_helpers.rb +5 -6
- data/lib/padrino-helpers/form_helpers/errors.rb +1 -1
- data/lib/padrino-helpers/format_helpers.rb +3 -3
- data/lib/padrino-helpers/number_helpers.rb +3 -3
- data/lib/padrino-helpers/output_helpers.rb +1 -1
- data/lib/padrino-helpers/output_helpers/abstract_handler.rb +1 -1
- data/lib/padrino-helpers/output_helpers/erb_handler.rb +2 -1
- data/lib/padrino-helpers/render_helpers.rb +22 -1
- data/lib/padrino-helpers/tag_helpers.rb +13 -0
- data/lib/padrino/rendering/erb_template.rb +12 -0
- data/lib/padrino/rendering/erubis_template.rb +1 -1
- data/test/helper.rb +1 -0
- data/test/test_asset_tag_helpers.rb +6 -1
- data/test/test_render_helpers.rb +38 -6
- data/test/test_rendering.rb +10 -0
- data/test/test_tag_helpers.rb +2 -0
- metadata +6 -105
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fae667093f9d16b75e8d85e0285d3c312aecb800
|
4
|
+
data.tar.gz: 989e8e9811af48ac97cab76747c9eb367ad91a8f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de540aac4ac602e597a8f86f15a5517fc078fa93a6ad85d392c7e8a4106e4d365ce46b9159cead733851e87df240a956a92c9fa3543797f6324546424ece56c1
|
7
|
+
data.tar.gz: c26cff77011c615f9b81662ffa2e4215e864e915a454093fc693bebf23d57fda2cad5dcafa8cbcbe5b3c539385b430679f2f55607d51ce13113b05b7914dc057
|
data/lib/padrino-helpers.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'padrino-support'
|
2
2
|
require 'i18n'
|
3
3
|
require 'enumerator'
|
4
|
+
|
5
|
+
# remove at 0.14
|
4
6
|
require 'padrino/rendering'
|
5
7
|
|
6
8
|
FileSet.glob_require('padrino-helpers/**/*.rb', __FILE__)
|
@@ -36,6 +38,7 @@ module Padrino
|
|
36
38
|
# end
|
37
39
|
#
|
38
40
|
def registered(app)
|
41
|
+
require 'padrino/rendering'
|
39
42
|
app.register Padrino::Rendering
|
40
43
|
app.set :default_builder, 'StandardFormBuilder' unless app.respond_to?(:default_builder)
|
41
44
|
included(app)
|
@@ -30,7 +30,7 @@ module Padrino
|
|
30
30
|
# # <div class="success">flash-success</div>
|
31
31
|
#
|
32
32
|
def flash_tag(*args)
|
33
|
-
options = args.
|
33
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
34
34
|
bootstrap = options.delete(:bootstrap) if options[:bootstrap]
|
35
35
|
args.inject(ActiveSupport::SafeBuffer.new) do |html,kind|
|
36
36
|
flash_text = ActiveSupport::SafeBuffer.new << flash[kind]
|
@@ -75,17 +75,17 @@ module Padrino
|
|
75
75
|
# link_to('click me', '/dashboard', :method => :delete)
|
76
76
|
# # Generates <a href="/dashboard" data-method="delete" rel="nofollow">click me</a>
|
77
77
|
#
|
78
|
-
# link_to('
|
79
|
-
# # Generates <a class="blocky" href="
|
78
|
+
# link_to('/dashboard', :class => 'blocky') { 'click me' }
|
79
|
+
# # Generates <a class="blocky" href="/dashboard">click me</a>
|
80
80
|
#
|
81
81
|
# Note that you can pass :+if+ or :+unless+ conditions, but if you provide :current as
|
82
82
|
# condition padrino return true/false if the request.path_info match the given url.
|
83
83
|
#
|
84
84
|
def link_to(*args, &block)
|
85
|
-
options
|
85
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
86
86
|
name = block_given? ? '' : args.shift
|
87
87
|
href = args.first
|
88
|
-
options = { :href => href
|
88
|
+
options = { :href => href ? escape_link(href) : '#' }.update(options)
|
89
89
|
return name unless parse_conditions(href, options)
|
90
90
|
block_given? ? content_tag(:a, options, &block) : content_tag(:a, name, options)
|
91
91
|
end
|
@@ -143,10 +143,11 @@ module Padrino
|
|
143
143
|
# # Generates: <a href="mailto:me@demo.com">My Email</a>
|
144
144
|
#
|
145
145
|
def mail_to(email, caption=nil, mail_options={})
|
146
|
-
html_options = mail_options.
|
147
|
-
mail_query = Rack::Utils.build_query(mail_options).gsub(/\+/, '%20').gsub('%40', '@')
|
148
|
-
mail_href = "mailto:#{email}"
|
149
|
-
|
146
|
+
mail_options, html_options = mail_options.partition{ |key,_| [:cc, :bcc, :subject, :body].include?(key) }
|
147
|
+
mail_query = Rack::Utils.build_query(Hash[mail_options]).gsub(/\+/, '%20').gsub('%40', '@')
|
148
|
+
mail_href = "mailto:#{email}"
|
149
|
+
mail_href << "?#{mail_query}" unless mail_query.empty?
|
150
|
+
link_to((caption || email), mail_href, Hash[html_options])
|
150
151
|
end
|
151
152
|
|
152
153
|
##
|
@@ -242,7 +243,7 @@ module Padrino
|
|
242
243
|
options = {
|
243
244
|
:rel => 'stylesheet',
|
244
245
|
:type => 'text/css'
|
245
|
-
}.update(sources.
|
246
|
+
}.update(sources.last.is_a?(Hash) ? sources.pop.symbolize_keys : {})
|
246
247
|
sources.flatten.inject(ActiveSupport::SafeBuffer.new) do |all,source|
|
247
248
|
all << tag(:link, { :href => asset_path(:css, source) }.update(options))
|
248
249
|
end
|
@@ -265,7 +266,7 @@ module Padrino
|
|
265
266
|
def javascript_include_tag(*sources)
|
266
267
|
options = {
|
267
268
|
:type => 'text/javascript'
|
268
|
-
}.update(sources.
|
269
|
+
}.update(sources.last.is_a?(Hash) ? sources.pop.symbolize_keys : {})
|
269
270
|
sources.flatten.inject(ActiveSupport::SafeBuffer.new) do |all,source|
|
270
271
|
all << content_tag(:script, nil, { :src => asset_path(:js, source) }.update(options))
|
271
272
|
end
|
@@ -314,7 +315,7 @@ module Padrino
|
|
314
315
|
#
|
315
316
|
def asset_path(kind, source = nil)
|
316
317
|
kind, source = source, kind if source.nil?
|
317
|
-
source = asset_normalize_extension(kind,
|
318
|
+
source = asset_normalize_extension(kind, escape_link(source.to_s))
|
318
319
|
return source if source =~ ABSOLUTE_URL_PATTERN || source =~ /^\//
|
319
320
|
source = File.join(asset_folder_name(kind), source)
|
320
321
|
timestamp = asset_timestamp(source)
|
@@ -90,7 +90,7 @@ module Padrino
|
|
90
90
|
#
|
91
91
|
def form_tag(url, options={}, &block)
|
92
92
|
options = {
|
93
|
-
:action => url,
|
93
|
+
:action => escape_link(url),
|
94
94
|
:protect_from_csrf => is_protected_from_csrf?,
|
95
95
|
'accept-charset' => 'UTF-8'
|
96
96
|
}.update(options)
|
@@ -143,9 +143,8 @@ module Padrino
|
|
143
143
|
# field_set_tag("Office", :class => 'office-set') { }
|
144
144
|
#
|
145
145
|
def field_set_tag(*args, &block)
|
146
|
-
options = args.
|
147
|
-
|
148
|
-
legend_html = legend_text.blank? ? ActiveSupport::SafeBuffer.new : content_tag(:legend, legend_text)
|
146
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
147
|
+
legend_html = args.empty? ? ActiveSupport::SafeBuffer.new : content_tag(:legend, args.first)
|
149
148
|
concat_content content_tag(:fieldset, legend_html << capture_html(&block), options)
|
150
149
|
end
|
151
150
|
|
@@ -525,7 +524,7 @@ module Padrino
|
|
525
524
|
# submit_tag :class => 'btn'
|
526
525
|
#
|
527
526
|
def submit_tag(*args)
|
528
|
-
options = args.
|
527
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
529
528
|
caption = args.length >= 1 ? args.first : "Submit"
|
530
529
|
input_tag(:submit, { :value => caption }.merge(options))
|
531
530
|
end
|
@@ -579,7 +578,7 @@ module Padrino
|
|
579
578
|
# # </form>
|
580
579
|
#
|
581
580
|
def button_to(*args, &block)
|
582
|
-
options
|
581
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
583
582
|
name, url = *args
|
584
583
|
options['data-remote'] = 'true' if options.delete(:remote)
|
585
584
|
submit_options = options.delete(:submit_options) || {}
|
@@ -37,7 +37,7 @@ module Padrino
|
|
37
37
|
# error_messages_for :user
|
38
38
|
#
|
39
39
|
def error_messages_for(*objects)
|
40
|
-
options = objects.
|
40
|
+
options = objects.last.is_a?(Hash) ? objects.pop.symbolize_keys : {}
|
41
41
|
objects = objects.map{ |obj| resolve_object(obj) }.compact
|
42
42
|
count = objects.inject(0){ |sum, object| sum + object.errors.count }
|
43
43
|
return ActiveSupport::SafeBuffer.new if count.zero?
|
@@ -177,8 +177,8 @@ module Padrino
|
|
177
177
|
# word_wrap('Once upon a time', :line_width => 8) => "Once upon\na time"
|
178
178
|
#
|
179
179
|
def word_wrap(text, *args)
|
180
|
-
options = args.
|
181
|
-
unless args.
|
180
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
181
|
+
unless args.empty?
|
182
182
|
options[:line_width] = args[0] || 80
|
183
183
|
end
|
184
184
|
options = { :line_width => 80 }.update(options)
|
@@ -214,7 +214,7 @@ module Padrino
|
|
214
214
|
# # => Lorem ipsum <strong class="custom">dolor</strong> sit amet
|
215
215
|
#
|
216
216
|
def highlight(text, words, *args)
|
217
|
-
options = { :highlighter => '<strong class="highlight">\1</strong>' }.update(args.
|
217
|
+
options = { :highlighter => '<strong class="highlight">\1</strong>' }.update(args.last.is_a?(Hash) ? args.pop : {})
|
218
218
|
|
219
219
|
if text.blank? || words.blank?
|
220
220
|
text
|
@@ -134,7 +134,7 @@ module Padrino
|
|
134
134
|
# # => 98 765 432,98
|
135
135
|
#
|
136
136
|
def number_with_delimiter(number, *args)
|
137
|
-
options = args.
|
137
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
138
138
|
options.symbolize_keys!
|
139
139
|
|
140
140
|
defaults = I18n.translate(:'number.format', :locale => options[:locale], :raise => true) rescue {}
|
@@ -178,7 +178,7 @@ module Padrino
|
|
178
178
|
# # => 1.111,23
|
179
179
|
#
|
180
180
|
def number_with_precision(number, *args)
|
181
|
-
options = args.
|
181
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
182
182
|
options.symbolize_keys!
|
183
183
|
|
184
184
|
defaults = I18n.translate(:'number.format', :locale => options[:locale], :raise => true) rescue {}
|
@@ -239,7 +239,7 @@ module Padrino
|
|
239
239
|
def number_to_human_size(number, *args)
|
240
240
|
return nil if number.nil?
|
241
241
|
|
242
|
-
options = args.
|
242
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
243
243
|
options.symbolize_keys!
|
244
244
|
|
245
245
|
defaults = I18n.translate(:'number.format', :locale => options[:locale], :raise => true) rescue {}
|
@@ -8,7 +8,8 @@ module Padrino
|
|
8
8
|
##
|
9
9
|
# Outputs the given text to the templates buffer directly.
|
10
10
|
#
|
11
|
-
def concat_to_template(text="")
|
11
|
+
def concat_to_template(text="", context=nil)
|
12
|
+
return text if context && context.eval("@__in_ruby_literal")
|
12
13
|
output_buffer << text
|
13
14
|
nil
|
14
15
|
end
|
@@ -34,7 +34,7 @@ module Padrino
|
|
34
34
|
options = { :locals => {}, :layout => false }.update(options)
|
35
35
|
explicit_engine = options.delete(:engine)
|
36
36
|
|
37
|
-
path,
|
37
|
+
path, name = File.split(template.to_s)
|
38
38
|
template_path = File.join(path,"_#{name}").to_sym
|
39
39
|
item_name = name.partition('.').first.to_sym
|
40
40
|
|
@@ -58,6 +58,27 @@ module Padrino
|
|
58
58
|
end
|
59
59
|
end
|
60
60
|
alias :render_partial :partial
|
61
|
+
|
62
|
+
def self.included(base)
|
63
|
+
unless base.instance_methods.include?(:render) || base.private_instance_methods.include?(:render)
|
64
|
+
base.class_eval do
|
65
|
+
fail "gem 'tilt' is required" unless defined?(::Tilt)
|
66
|
+
|
67
|
+
def render(engine, file=nil, options={}, locals=nil, &block)
|
68
|
+
locals ||= options[:locals] || {}
|
69
|
+
engine, file = file, engine if file.nil?
|
70
|
+
template_engine = engine ? ::Tilt[engine] : ::Tilt.default_mapping[file]
|
71
|
+
fail "Engine #{engine.inspect} is not registered with Tilt" unless template_engine
|
72
|
+
unless File.file?(file.to_s)
|
73
|
+
engine_extensions = ::Tilt.default_mapping.extensions_for(template_engine)
|
74
|
+
file = Dir.glob("#{file}.{#{engine_extensions.join(',')}}").first || fail("Template '#{file}' not found")
|
75
|
+
end
|
76
|
+
template = template_engine.new(file.to_s, options)
|
77
|
+
template.render(options[:scope] || self, locals, &block)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
61
82
|
end
|
62
83
|
end
|
63
84
|
end
|
@@ -235,6 +235,19 @@ module Padrino
|
|
235
235
|
"<#{name}#{attributes}#{open ? '>' : ' />'}".html_safe
|
236
236
|
end
|
237
237
|
|
238
|
+
##
|
239
|
+
# Returns an escaped document link.
|
240
|
+
#
|
241
|
+
# @example
|
242
|
+
# escape_link('http://example.com/spaced link')
|
243
|
+
# # => 'http://example.com/spaced%20link'
|
244
|
+
# escape_link('already%20partially escaped')
|
245
|
+
# # => 'already%20partially%20escaped'
|
246
|
+
#
|
247
|
+
def escape_link(link)
|
248
|
+
link.gsub(' ', '%20')
|
249
|
+
end
|
250
|
+
|
238
251
|
private
|
239
252
|
|
240
253
|
##
|
@@ -1,6 +1,18 @@
|
|
1
1
|
module Padrino
|
2
2
|
module Rendering
|
3
3
|
class SafeERB < ::ERB
|
4
|
+
class Compiler < ::ERB::Compiler
|
5
|
+
def add_insert_cmd(out, content)
|
6
|
+
out.push("@__in_ruby_literal = true")
|
7
|
+
super
|
8
|
+
out.push("@__in_ruby_literal = false")
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def make_compiler(trim_mode)
|
13
|
+
Compiler.new(trim_mode)
|
14
|
+
end
|
15
|
+
|
4
16
|
def set_eoutvar(compiler, eoutvar = '_erbout')
|
5
17
|
compiler.put_cmd = "#{eoutvar}.safe_concat"
|
6
18
|
compiler.insert_cmd = "#{eoutvar}.concat"
|
@@ -7,7 +7,7 @@ module Padrino
|
|
7
7
|
# @api private
|
8
8
|
module SafeBufferEnhancer
|
9
9
|
def add_expr_literal(src, code)
|
10
|
-
src << " #{@bufvar}.concat((" << code << ').to_s);'
|
10
|
+
src << " @__in_ruby_literal = true; #{@bufvar}.concat((" << code << ').to_s); @__in_ruby_literal = false;'
|
11
11
|
end
|
12
12
|
|
13
13
|
def add_stmt(src, code)
|
data/test/helper.rb
CHANGED
@@ -71,6 +71,11 @@ describe "AssetTagHelpers" do
|
|
71
71
|
assert_match "<&>", actual_link
|
72
72
|
end
|
73
73
|
|
74
|
+
it 'should escape the link href' do
|
75
|
+
actual_link = link_to('Sign up', '/register new%20user')
|
76
|
+
assert_has_tag('a', :href => '/register%20new%20user') { actual_link }
|
77
|
+
end
|
78
|
+
|
74
79
|
it 'should not escape image_tag' do
|
75
80
|
actual_link = link_to(image_tag("/my/fancy/image.png"), :class => 'first', :id => 'binky')
|
76
81
|
assert_has_tag('img', :src => "/my/fancy/image.png") { actual_link }
|
@@ -146,7 +151,7 @@ describe "AssetTagHelpers" do
|
|
146
151
|
end
|
147
152
|
|
148
153
|
it 'should not double-escape ampersands in query' do
|
149
|
-
actual_html = mail_to('to@demo.com', "Email", :
|
154
|
+
actual_html = mail_to('to@demo.com', "Email", :bcc => 'bcc@test.com', :subject => 'Hi there')
|
150
155
|
assert_has_tag(:a, :href => 'mailto:to@demo.com?bcc=bcc@test.com&subject=Hi%20there', :content => 'Email') { actual_html }
|
151
156
|
assert_match %r{&}, actual_html
|
152
157
|
refute_match %r{&amp;}, actual_html
|
data/test/test_render_helpers.rb
CHANGED
@@ -213,13 +213,45 @@ describe "RenderHelpers" do
|
|
213
213
|
end
|
214
214
|
end
|
215
215
|
|
216
|
-
describe '
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
visit "/double_dive_#{engine}"
|
221
|
-
assert_have_selector '.outer .wrapper form .inner .core'
|
216
|
+
describe 'standalone partial rendering' do
|
217
|
+
it 'should properly render without Sinatra::Base or Padrino::Application' do
|
218
|
+
class Standalone
|
219
|
+
include Padrino::Helpers::RenderHelpers
|
222
220
|
end
|
221
|
+
locals = { :user => OpenStruct.new(:name => 'Joe') }
|
222
|
+
result = Standalone.new.partial(File.join(File.dirname(__FILE__), 'fixtures/render_app/views/template/user'), :engine => :haml, :locals => locals)
|
223
|
+
assert_equal '<h1>User name is Joe</h1>', result.chomp
|
224
|
+
end
|
225
|
+
|
226
|
+
it 'should pass class context to renderer' do
|
227
|
+
class Standalone1
|
228
|
+
include Padrino::Helpers::RenderHelpers
|
229
|
+
def user
|
230
|
+
OpenStruct.new(:name => 'Jane')
|
231
|
+
end
|
232
|
+
end
|
233
|
+
|
234
|
+
result = Standalone1.new.partial(File.join(File.dirname(__FILE__), 'fixtures/render_app/views/template/user.haml'))
|
235
|
+
assert_equal '<h1>User name is Jane</h1>', result.chomp
|
236
|
+
end
|
237
|
+
|
238
|
+
it 'should fail on missing template' do
|
239
|
+
class Standalone2
|
240
|
+
include Padrino::Helpers::RenderHelpers
|
241
|
+
end
|
242
|
+
assert_raises RuntimeError do
|
243
|
+
result = Standalone2.new.partial('none')
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
247
|
+
it 'should not override existing render methods' do
|
248
|
+
class Standalone3
|
249
|
+
def render(*)
|
250
|
+
'existing'
|
251
|
+
end
|
252
|
+
include Padrino::Helpers::RenderHelpers
|
253
|
+
end
|
254
|
+
assert_equal 'existing', Standalone3.new.partial('none')
|
223
255
|
end
|
224
256
|
end
|
225
257
|
end
|
data/test/test_rendering.rb
CHANGED
@@ -750,4 +750,14 @@ describe "Rendering" do
|
|
750
750
|
assert_equal "application/xml;charset=utf-8", response['Content-Type']
|
751
751
|
end
|
752
752
|
end
|
753
|
+
|
754
|
+
describe 'rendering with helpers that use render' do
|
755
|
+
%W{erb haml slim}.each do |engine|
|
756
|
+
it "should work with #{engine}" do
|
757
|
+
@app = RenderDemo
|
758
|
+
visit "/double_dive_#{engine}"
|
759
|
+
assert_have_selector '.outer .wrapper form .inner .core'
|
760
|
+
end
|
761
|
+
end
|
762
|
+
end
|
753
763
|
end
|
data/test/test_tag_helpers.rb
CHANGED
@@ -18,6 +18,8 @@ describe "TagHelpers" do
|
|
18
18
|
|
19
19
|
it 'should support selected attribute by using "selected" if true' do
|
20
20
|
actual_html = tag(:option, :selected => true)
|
21
|
+
# fix nokogiri 1.6.8 on jRuby
|
22
|
+
actual_html = content_tag(:select, actual_html)
|
21
23
|
assert_has_tag('option', :selected => 'selected') { actual_html }
|
22
24
|
end
|
23
25
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: padrino-helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.13.
|
4
|
+
version: 0.13.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Padrino Team
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2016-
|
14
|
+
date: 2016-08-17 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: padrino-support
|
@@ -19,14 +19,14 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - '='
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.13.
|
22
|
+
version: 0.13.3
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - '='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.13.
|
29
|
+
version: 0.13.3
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: tilt
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -245,107 +245,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
245
245
|
version: 1.3.6
|
246
246
|
requirements: []
|
247
247
|
rubyforge_project: padrino-helpers
|
248
|
-
rubygems_version: 2.4
|
248
|
+
rubygems_version: 2.6.4
|
249
249
|
signing_key:
|
250
250
|
specification_version: 4
|
251
251
|
summary: Helpers for padrino
|
252
|
-
test_files:
|
253
|
-
- test/fixtures/apps/.components
|
254
|
-
- test/fixtures/apps/.gitignore
|
255
|
-
- test/fixtures/apps/render.rb
|
256
|
-
- test/fixtures/apps/views/article/comment/show.slim
|
257
|
-
- test/fixtures/apps/views/blog/post.erb
|
258
|
-
- test/fixtures/apps/views/layouts/specific.erb
|
259
|
-
- test/fixtures/apps/views/test/post.erb
|
260
|
-
- test/fixtures/layouts/layout.erb
|
261
|
-
- test/fixtures/markup_app/app.rb
|
262
|
-
- test/fixtures/markup_app/views/button_to.erb
|
263
|
-
- test/fixtures/markup_app/views/button_to.haml
|
264
|
-
- test/fixtures/markup_app/views/button_to.slim
|
265
|
-
- test/fixtures/markup_app/views/capture_concat.erb
|
266
|
-
- test/fixtures/markup_app/views/capture_concat.haml
|
267
|
-
- test/fixtures/markup_app/views/capture_concat.slim
|
268
|
-
- test/fixtures/markup_app/views/content_for.erb
|
269
|
-
- test/fixtures/markup_app/views/content_for.haml
|
270
|
-
- test/fixtures/markup_app/views/content_for.slim
|
271
|
-
- test/fixtures/markup_app/views/content_tag.erb
|
272
|
-
- test/fixtures/markup_app/views/content_tag.haml
|
273
|
-
- test/fixtures/markup_app/views/content_tag.slim
|
274
|
-
- test/fixtures/markup_app/views/current_engine.erb
|
275
|
-
- test/fixtures/markup_app/views/current_engine.haml
|
276
|
-
- test/fixtures/markup_app/views/current_engine.slim
|
277
|
-
- test/fixtures/markup_app/views/fields_for.erb
|
278
|
-
- test/fixtures/markup_app/views/fields_for.haml
|
279
|
-
- test/fixtures/markup_app/views/fields_for.slim
|
280
|
-
- test/fixtures/markup_app/views/form_for.erb
|
281
|
-
- test/fixtures/markup_app/views/form_for.haml
|
282
|
-
- test/fixtures/markup_app/views/form_for.slim
|
283
|
-
- test/fixtures/markup_app/views/form_tag.erb
|
284
|
-
- test/fixtures/markup_app/views/form_tag.haml
|
285
|
-
- test/fixtures/markup_app/views/form_tag.slim
|
286
|
-
- test/fixtures/markup_app/views/link_to.erb
|
287
|
-
- test/fixtures/markup_app/views/link_to.haml
|
288
|
-
- test/fixtures/markup_app/views/link_to.slim
|
289
|
-
- test/fixtures/markup_app/views/mail_to.erb
|
290
|
-
- test/fixtures/markup_app/views/mail_to.haml
|
291
|
-
- test/fixtures/markup_app/views/mail_to.slim
|
292
|
-
- test/fixtures/markup_app/views/meta_tag.erb
|
293
|
-
- test/fixtures/markup_app/views/meta_tag.haml
|
294
|
-
- test/fixtures/markup_app/views/meta_tag.slim
|
295
|
-
- test/fixtures/markup_app/views/partials/_erb.erb
|
296
|
-
- test/fixtures/markup_app/views/partials/_haml.haml
|
297
|
-
- test/fixtures/markup_app/views/partials/_slim.slim
|
298
|
-
- test/fixtures/markup_app/views/simple_partial.erb
|
299
|
-
- test/fixtures/markup_app/views/simple_partial.haml
|
300
|
-
- test/fixtures/markup_app/views/simple_partial.slim
|
301
|
-
- test/fixtures/render_app/app.rb
|
302
|
-
- test/fixtures/render_app/views/_deep.erb
|
303
|
-
- test/fixtures/render_app/views/_deep.haml
|
304
|
-
- test/fixtures/render_app/views/_deep.slim
|
305
|
-
- test/fixtures/render_app/views/_partial_block_erb.erb
|
306
|
-
- test/fixtures/render_app/views/_partial_block_haml.haml
|
307
|
-
- test/fixtures/render_app/views/_partial_block_slim.slim
|
308
|
-
- test/fixtures/render_app/views/_unsafe.html.builder
|
309
|
-
- test/fixtures/render_app/views/_unsafe_object.html.builder
|
310
|
-
- test/fixtures/render_app/views/current_engine.haml
|
311
|
-
- test/fixtures/render_app/views/current_engines/_erb.erb
|
312
|
-
- test/fixtures/render_app/views/current_engines/_haml.haml
|
313
|
-
- test/fixtures/render_app/views/current_engines/_slim.slim
|
314
|
-
- test/fixtures/render_app/views/dive_inner_erb.erb
|
315
|
-
- test/fixtures/render_app/views/dive_inner_haml.haml
|
316
|
-
- test/fixtures/render_app/views/dive_inner_slim.slim
|
317
|
-
- test/fixtures/render_app/views/dive_outer_erb.erb
|
318
|
-
- test/fixtures/render_app/views/dive_outer_haml.haml
|
319
|
-
- test/fixtures/render_app/views/dive_outer_slim.slim
|
320
|
-
- test/fixtures/render_app/views/double_capture_erb.erb
|
321
|
-
- test/fixtures/render_app/views/double_capture_haml.haml
|
322
|
-
- test/fixtures/render_app/views/double_capture_slim.slim
|
323
|
-
- test/fixtures/render_app/views/erb/test.erb
|
324
|
-
- test/fixtures/render_app/views/explicit_engine.haml
|
325
|
-
- test/fixtures/render_app/views/haml/test.haml
|
326
|
-
- test/fixtures/render_app/views/render_block_erb.erb
|
327
|
-
- test/fixtures/render_app/views/render_block_haml.haml
|
328
|
-
- test/fixtures/render_app/views/render_block_slim.slim
|
329
|
-
- test/fixtures/render_app/views/ruby_block_capture_erb.erb
|
330
|
-
- test/fixtures/render_app/views/ruby_block_capture_haml.haml
|
331
|
-
- test/fixtures/render_app/views/ruby_block_capture_slim.slim
|
332
|
-
- test/fixtures/render_app/views/template/_user.haml
|
333
|
-
- test/fixtures/render_app/views/template/haml_template.haml
|
334
|
-
- test/fixtures/render_app/views/template/some_template.haml
|
335
|
-
- test/fixtures/render_app/views/wrong_capture_erb.erb
|
336
|
-
- test/fixtures/render_app/views/wrong_capture_haml.haml
|
337
|
-
- test/fixtures/render_app/views/wrong_capture_slim.slim
|
338
|
-
- test/helper.rb
|
339
|
-
- test/test_asset_tag_helpers.rb
|
340
|
-
- test/test_form_builder.rb
|
341
|
-
- test/test_form_helpers.rb
|
342
|
-
- test/test_format_helpers.rb
|
343
|
-
- test/test_helpers.rb
|
344
|
-
- test/test_locale.rb
|
345
|
-
- test/test_number_helpers.rb
|
346
|
-
- test/test_output_helpers.rb
|
347
|
-
- test/test_render_helpers.rb
|
348
|
-
- test/test_rendering.rb
|
349
|
-
- test/test_rendering_extensions.rb
|
350
|
-
- test/test_tag_helpers.rb
|
351
|
-
has_rdoc:
|
252
|
+
test_files: []
|