25 lines
647 B
Ruby
25 lines
647 B
Ruby
![]() |
module LazyImageTagHelper
|
||
|
def placeholder_image
|
||
|
"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="
|
||
|
end
|
||
|
|
||
|
# Override the default ActionView `image_tag` helper to support lazy-loading
|
||
|
def image_tag(source, options = {})
|
||
|
options = options.symbolize_keys
|
||
|
|
||
|
unless options.delete(:lazy) == false
|
||
|
options[:data] ||= {}
|
||
|
options[:data][:src] = path_to_image(source)
|
||
|
options[:class] ||= ""
|
||
|
options[:class] << " lazy"
|
||
|
|
||
|
source = placeholder_image
|
||
|
end
|
||
|
|
||
|
super(source, options)
|
||
|
end
|
||
|
|
||
|
# Required for Banzai::Filter::ImageLazyLoadFilter
|
||
|
module_function :placeholder_image
|
||
|
end
|