Sha256: 33057feb2a2225edc728f79e417c1ae8eba1cb9e82f9e5830070ae381f2702f5
Contents?: true
Size: 803 Bytes
Versions: 24
Compression:
Stored size: 803 Bytes
Contents
module RedmineExtensions module RenderingHelper def render_with_fallback(*attrs) raise 'Missing an options argument' unless attrs.last.is_a?(Hash) options = attrs.last raise 'Missing an fallback prefixes' unless options[:prefixes] partial = options[:partial] || attrs.first prefixes = options.delete(:prefixes) prefixes = prefixes.model if prefixes.is_a?(BasePresenter) prefixes = prefixes.hiearchy.map{|klass| klass.underscore.pluralize } if prefixes.is_a?(ActiveRecord::Base) prefixes.each do |prefix| if lookup_context.template_exists?(partial, prefix, true) partial.prepend("#{prefix}/") return render(*attrs) end end partial.prepend("#{prefixes.last}/") render(*attrs) end end end
Version data entries
24 entries across 24 versions & 1 rubygems