Module: Liquidbook::Filters::ShopifyFilters

Defined in:
lib/liquidbook/filters/shopify_filters.rb

Overview

Common Shopify Liquid filters for local preview

Instance Method Summary collapse

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

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 metafield_tag(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