Module: Liquidbook::Filters::ShopifyFilters
- Defined in:
- lib/liquidbook/filters/shopify_filters.rb
Overview
Common Shopify Liquid filters for local preview
Instance Method Summary collapse
- #asset_img_url(input, size = nil) ⇒ Object
-
#asset_url(input) ⇒ Object
Asset URL filters.
- #color_brightness(input) ⇒ Object
- #color_modify(input, _attr, _value) ⇒ Object
- #color_to_hex(input) ⇒ Object
-
#color_to_rgb(input) ⇒ Object
Color filters.
- #default_pagination(_input) ⇒ Object
-
#external_video_url(input, **_opts) ⇒ Object
Media filters.
- #font_face(input) ⇒ Object
-
#font_modify(input, _attr, _value) ⇒ Object
Font filters.
- #font_url(input) ⇒ Object
-
#handle(input) ⇒ Object
String filters (Shopify extensions).
- #handleize(input) ⇒ Object
- #image_url(input, width: nil, height: nil, **_opts) ⇒ Object
- #img_tag(input, alt: "") ⇒ Object
-
#json(input) ⇒ Object
JSON / data.
-
#link_to(input, url, title = "") ⇒ Object
URL filters.
- #media_tag(input, **_opts) ⇒ Object
-
#metafield_tag(input) ⇒ Object
Metafield.
-
#money(input) ⇒ Object
Money filters.
- #money_with_currency(input) ⇒ Object
-
#paginate(input, page_size) ⇒ Object
Collection / pagination helpers.
-
#placeholder_svg_tag(type) ⇒ Object
Placeholder image.
- #pluralize(input, singular, plural) ⇒ Object
- #script_tag(url) ⇒ Object
- #stylesheet_tag(url) ⇒ Object
-
#t(input) ⇒ Object
Translation stub.
- #within(url, collection_url) ⇒ Object
Instance Method Details
#asset_img_url(input, size = nil) ⇒ Object
12 13 14 15 16 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 12 def asset_img_url(input, size = nil) return input unless input.is_a?(String) "/assets/#{input}" end |
#asset_url(input) ⇒ Object
Asset URL filters
8 9 10 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 8 def asset_url(input) "/assets/#{input}" end |
#color_brightness(input) ⇒ Object
114 115 116 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 114 def color_brightness(input) 128 end |
#color_modify(input, _attr, _value) ⇒ Object
106 107 108 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 106 def color_modify(input, _attr, _value) input.to_s end |
#color_to_hex(input) ⇒ Object
110 111 112 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 110 def color_to_hex(input) input.to_s end |
#color_to_rgb(input) ⇒ Object
Color filters
102 103 104 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 102 def color_to_rgb(input) input.to_s end |
#default_pagination(_input) ⇒ Object
81 82 83 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 81 def default_pagination(_input) "" end |
#external_video_url(input, **_opts) ⇒ Object
Media filters
132 133 134 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 132 def external_video_url(input, **_opts) input.to_s end |
#font_face(input) ⇒ Object
127 128 129 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 127 def font_face(input) "" end |
#font_modify(input, _attr, _value) ⇒ Object
Font filters
119 120 121 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 119 def font_modify(input, _attr, _value) input end |
#font_url(input) ⇒ Object
123 124 125 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 123 def font_url(input) "" end |
#handle(input) ⇒ Object
String filters (Shopify extensions)
44 45 46 47 48 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 44 def handle(input) return "" unless input input.to_s.downcase.gsub(/[^a-z0-9]+/, "-").gsub(/^-|-$/, "") end |
#handleize(input) ⇒ Object
50 51 52 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 50 def handleize(input) handle(input) end |
#image_url(input, width: nil, height: nil, **_opts) ⇒ Object
18 19 20 21 22 23 24 25 26 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 18 def image_url(input, width: nil, height: nil, **_opts) return "" unless input src = input.is_a?(Hash) ? input["src"] : input.to_s params = [] params << "width=#{width}" if width params << "height=#{height}" if height params.empty? ? src : "#{src}?#{params.join("&")}" end |
#img_tag(input, alt: "") ⇒ Object
28 29 30 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 28 def img_tag(input, alt: "") %(<img src="#{input}" alt="#{alt}" loading="lazy">) end |
#json(input) ⇒ Object
JSON / data
86 87 88 89 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 86 def json(input) require "json" input.to_json end |
#link_to(input, url, title = "") ⇒ Object
URL filters
59 60 61 62 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 59 def link_to(input, url, title = "") title_attr = title.to_s.empty? ? "" : %( title="#{title}") %(<a href="#{url}"#{title_attr}>#{input}</a>) end |
#media_tag(input, **_opts) ⇒ Object
136 137 138 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 136 def media_tag(input, **_opts) %(<div class="media-placeholder">#{input}</div>) end |
#metafield_tag(input) ⇒ Object
Metafield
141 142 143 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 141 def (input) input.to_s end |
#money(input) ⇒ Object
Money filters
33 34 35 36 37 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 33 def money(input) return "" unless input "¥#{format("%d", input.to_i)}" end |
#money_with_currency(input) ⇒ Object
39 40 41 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 39 def money_with_currency(input) "#{money(input)} JPY" end |
#paginate(input, page_size) ⇒ Object
Collection / pagination helpers
77 78 79 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 77 def paginate(input, page_size) input end |
#placeholder_svg_tag(type) ⇒ Object
Placeholder image
97 98 99 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 97 def placeholder_svg_tag(type) %(<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><rect width="100" height="100" fill="#eee"/><text x="50" y="50" text-anchor="middle" dy=".3em" fill="#999">#{type}</text></svg>) end |
#pluralize(input, singular, plural) ⇒ Object
54 55 56 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 54 def pluralize(input, singular, plural) input.to_i == 1 ? singular : plural end |
#script_tag(url) ⇒ Object
72 73 74 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 72 def script_tag(url) %(<script src="#{url}"></script>) end |
#stylesheet_tag(url) ⇒ Object
68 69 70 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 68 def stylesheet_tag(url) %(<link rel="stylesheet" href="#{url}" type="text/css">) end |
#t(input) ⇒ Object
Translation stub
92 93 94 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 92 def t(input) input.to_s end |
#within(url, collection_url) ⇒ Object
64 65 66 |
# File 'lib/liquidbook/filters/shopify_filters.rb', line 64 def within(url, collection_url) "#{collection_url}#{url}" end |