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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f4cd07c5d69526e5a313ac66077c95232f9897c4
4
- data.tar.gz: 2d729f064bd09f49fcd7d580a9c0d0efb0a71bf3
3
+ metadata.gz: fae667093f9d16b75e8d85e0285d3c312aecb800
4
+ data.tar.gz: 989e8e9811af48ac97cab76747c9eb367ad91a8f
5
5
  SHA512:
6
- metadata.gz: 6a811845a52c9d07a6d3344ded444856705e35ee1460e257b9cbe3e1d95698556677709e504ca96c2bf2f18313b32edfd06b9df4c11b1430f74eefafaf19cddc
7
- data.tar.gz: 5686b30bbbf57ea22e28bdfc7afc8fba531a4658a1426dae8d4774afde8181bc43c558ffa6b1de595d1794815ccbef1c8a3ae7198f208d7969681c9c3c96bc11
6
+ metadata.gz: de540aac4ac602e597a8f86f15a5517fc078fa93a6ad85d392c7e8a4106e4d365ce46b9159cead733851e87df240a956a92c9fa3543797f6324546424ece56c1
7
+ data.tar.gz: c26cff77011c615f9b81662ffa2e4215e864e915a454093fc693bebf23d57fda2cad5dcafa8cbcbe5b3c539385b430679f2f55607d51ce13113b05b7914dc057
@@ -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.extract_options!
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('click me', :class => 'blocky') do; end
79
- # # Generates <a class="blocky" href="#">click me</a>
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 = args.extract_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 || '#' }.update(options)
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.slice!(:cc, :bcc, :subject, :body)
147
- mail_query = Rack::Utils.build_query(mail_options).gsub(/\+/, '%20').gsub('%40', '@')
148
- mail_href = "mailto:#{email}"; mail_href << "?#{mail_query}" if mail_query.present?
149
- link_to((caption || email), mail_href, html_options)
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.extract_options!.symbolize_keys)
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.extract_options!.symbolize_keys)
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, URI.escape(source.to_s))
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.extract_options!
147
- legend_text = args.first
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.extract_options!
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 = args.extract_options!.dup
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.extract_options!.symbolize_keys
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.extract_options!
181
- unless args.blank?
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.extract_options!)
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.extract_options!
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.extract_options!
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.extract_options!
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 {}
@@ -80,7 +80,7 @@ module Padrino
80
80
  #
81
81
  def concat_content(text="")
82
82
  if handler = find_proper_handler
83
- handler.concat_to_template(text)
83
+ handler.concat_to_template(text, binding)
84
84
  else
85
85
  text
86
86
  end
@@ -46,7 +46,7 @@ module Padrino
46
46
  # @example
47
47
  # @handler.concat_to_template("This will be output to the template buffer")
48
48
  #
49
- def concat_to_template(text="")
49
+ def concat_to_template(text="", context=nil)
50
50
  text
51
51
  end
52
52
 
@@ -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,_,name = template.to_s.rpartition(File::SEPARATOR)
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
@@ -7,6 +7,7 @@ require 'rack/test'
7
7
  require 'webrat'
8
8
  require 'builder'
9
9
  require 'padrino-helpers'
10
+ require 'padrino/rendering'
10
11
  require 'tilt/liquid'
11
12
  require 'tilt/builder'
12
13
 
@@ -71,6 +71,11 @@ describe "AssetTagHelpers" do
71
71
  assert_match "&lt;&amp;&gt;", 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", :subject => 'Hi there', :bcc => 'bcc@test.com')
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{&amp;}, actual_html
152
157
  refute_match %r{&amp;amp;}, actual_html
@@ -213,13 +213,45 @@ describe "RenderHelpers" do
213
213
  end
214
214
  end
215
215
 
216
- describe 'rendering with helpers that use render' do
217
- %W{erb haml slim}.each do |engine|
218
- it "should work with #{engine}" do
219
- skip
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
@@ -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
@@ -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.2
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-05-09 00:00:00.000000000 Z
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.2
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.2
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.8
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: []