shoperb_liquid 0.0.1

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.
Files changed (102) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +23 -0
  3. data/.rubocop.yml +131 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +143 -0
  7. data/Rakefile +4 -0
  8. data/lib/shoperb_liquid/configuration.rb +169 -0
  9. data/lib/shoperb_liquid/drops/account_drop.rb +9 -0
  10. data/lib/shoperb_liquid/drops/address_drop.rb +121 -0
  11. data/lib/shoperb_liquid/drops/array_drop.rb +18 -0
  12. data/lib/shoperb_liquid/drops/attribute_drop.rb +21 -0
  13. data/lib/shoperb_liquid/drops/base.rb +65 -0
  14. data/lib/shoperb_liquid/drops/blog_category_drop.rb +56 -0
  15. data/lib/shoperb_liquid/drops/blog_post_drop.rb +46 -0
  16. data/lib/shoperb_liquid/drops/cart_drop.rb +42 -0
  17. data/lib/shoperb_liquid/drops/cart_item_drop.rb +111 -0
  18. data/lib/shoperb_liquid/drops/categories_drop.rb +13 -0
  19. data/lib/shoperb_liquid/drops/category_drop.rb +110 -0
  20. data/lib/shoperb_liquid/drops/collection_drop.rb +117 -0
  21. data/lib/shoperb_liquid/drops/country_drop.rb +37 -0
  22. data/lib/shoperb_liquid/drops/currency_drop.rb +17 -0
  23. data/lib/shoperb_liquid/drops/customer_credit_drop.rb +23 -0
  24. data/lib/shoperb_liquid/drops/customer_credits_drop.rb +18 -0
  25. data/lib/shoperb_liquid/drops/customer_drop.rb +108 -0
  26. data/lib/shoperb_liquid/drops/customer_group_drop.rb +17 -0
  27. data/lib/shoperb_liquid/drops/gift_card_drop.rb +34 -0
  28. data/lib/shoperb_liquid/drops/image_drop.rb +27 -0
  29. data/lib/shoperb_liquid/drops/integration_drop.rb +25 -0
  30. data/lib/shoperb_liquid/drops/integrations_drop.rb +17 -0
  31. data/lib/shoperb_liquid/drops/language_drop.rb +17 -0
  32. data/lib/shoperb_liquid/drops/link_drop.rb +53 -0
  33. data/lib/shoperb_liquid/drops/media_file_drop.rb +29 -0
  34. data/lib/shoperb_liquid/drops/menu_drop.rb +25 -0
  35. data/lib/shoperb_liquid/drops/menus_drop.rb +16 -0
  36. data/lib/shoperb_liquid/drops/meta_drop.rb +21 -0
  37. data/lib/shoperb_liquid/drops/order_drop.rb +148 -0
  38. data/lib/shoperb_liquid/drops/order_item_attribute_drop.rb +8 -0
  39. data/lib/shoperb_liquid/drops/order_item_attributes_drop.rb +19 -0
  40. data/lib/shoperb_liquid/drops/order_item_drop.rb +159 -0
  41. data/lib/shoperb_liquid/drops/order_return_drop.rb +43 -0
  42. data/lib/shoperb_liquid/drops/order_return_item_drop.rb +30 -0
  43. data/lib/shoperb_liquid/drops/order_return_item_entity_drop.rb +13 -0
  44. data/lib/shoperb_liquid/drops/order_return_parcel_drop.rb +29 -0
  45. data/lib/shoperb_liquid/drops/order_returns_drop.rb +13 -0
  46. data/lib/shoperb_liquid/drops/orders_drop.rb +14 -0
  47. data/lib/shoperb_liquid/drops/page_drop.rb +26 -0
  48. data/lib/shoperb_liquid/drops/pages_drop.rb +12 -0
  49. data/lib/shoperb_liquid/drops/payment_card_drop.rb +29 -0
  50. data/lib/shoperb_liquid/drops/payment_method_drop.rb +41 -0
  51. data/lib/shoperb_liquid/drops/payment_provider_drop.rb +23 -0
  52. data/lib/shoperb_liquid/drops/product_attribute_drop.rb +14 -0
  53. data/lib/shoperb_liquid/drops/product_collection_drop.rb +41 -0
  54. data/lib/shoperb_liquid/drops/product_collections_drop.rb +12 -0
  55. data/lib/shoperb_liquid/drops/product_drop.rb +195 -0
  56. data/lib/shoperb_liquid/drops/product_type_drop.rb +25 -0
  57. data/lib/shoperb_liquid/drops/product_types_drop.rb +15 -0
  58. data/lib/shoperb_liquid/drops/products_drop.rb +44 -0
  59. data/lib/shoperb_liquid/drops/refund_drop.rb +22 -0
  60. data/lib/shoperb_liquid/drops/refund_item_drop.rb +18 -0
  61. data/lib/shoperb_liquid/drops/review_drop.rb +37 -0
  62. data/lib/shoperb_liquid/drops/search_drop.rb +45 -0
  63. data/lib/shoperb_liquid/drops/shipping_item_drop.rb +29 -0
  64. data/lib/shoperb_liquid/drops/shipping_method_drop.rb +25 -0
  65. data/lib/shoperb_liquid/drops/shipping_parcel_drop.rb +25 -0
  66. data/lib/shoperb_liquid/drops/shop_drop.rb +81 -0
  67. data/lib/shoperb_liquid/drops/subscription_drop.rb +51 -0
  68. data/lib/shoperb_liquid/drops/subscription_plan_drop.rb +63 -0
  69. data/lib/shoperb_liquid/drops/theme_section_blocks_drop.rb +19 -0
  70. data/lib/shoperb_liquid/drops/theme_section_drop.rb +30 -0
  71. data/lib/shoperb_liquid/drops/theme_section_image_drop.rb +11 -0
  72. data/lib/shoperb_liquid/drops/theme_section_settings_drop.rb +40 -0
  73. data/lib/shoperb_liquid/drops/theme_settings_drop.rb +60 -0
  74. data/lib/shoperb_liquid/drops/url_drop.rb +218 -0
  75. data/lib/shoperb_liquid/drops/variant_attribute_drop.rb +8 -0
  76. data/lib/shoperb_liquid/drops/variant_drop.rb +206 -0
  77. data/lib/shoperb_liquid/drops/variants_drop.rb +13 -0
  78. data/lib/shoperb_liquid/drops/vendor_drop.rb +77 -0
  79. data/lib/shoperb_liquid/drops/vendors_drop.rb +13 -0
  80. data/lib/shoperb_liquid/errors.rb +6 -0
  81. data/lib/shoperb_liquid/ext/array.rb +7 -0
  82. data/lib/shoperb_liquid/ext/context.rb +12 -0
  83. data/lib/shoperb_liquid/ext/models.rb +55 -0
  84. data/lib/shoperb_liquid/ext/template.rb +13 -0
  85. data/lib/shoperb_liquid/filters/asset_filters.rb +57 -0
  86. data/lib/shoperb_liquid/filters/collection_filters.rb +26 -0
  87. data/lib/shoperb_liquid/filters/datum_filters.rb +150 -0
  88. data/lib/shoperb_liquid/filters/extension_filters.rb +35 -0
  89. data/lib/shoperb_liquid/filters/html_filters.rb +46 -0
  90. data/lib/shoperb_liquid/filters/theme_filters.rb +22 -0
  91. data/lib/shoperb_liquid/filters/translate_filters.rb +16 -0
  92. data/lib/shoperb_liquid/filters/url_filters.rb +60 -0
  93. data/lib/shoperb_liquid/registers.rb +76 -0
  94. data/lib/shoperb_liquid/tags/cache_tag.rb +45 -0
  95. data/lib/shoperb_liquid/tags/form_tag.rb +47 -0
  96. data/lib/shoperb_liquid/tags/layout_tag.rb +21 -0
  97. data/lib/shoperb_liquid/tags/paginate_tag.rb +134 -0
  98. data/lib/shoperb_liquid/tags/products_filter_tag.rb +106 -0
  99. data/lib/shoperb_liquid/tags/section_tag.rb +113 -0
  100. data/lib/shoperb_liquid.rb +46 -0
  101. data/shoperb_liquid.gemspec +24 -0
  102. metadata +223 -0
@@ -0,0 +1,106 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ShoperbLiquid
4
+ # Generates faceted/aggregated
5
+ # search markup data
6
+ #
7
+ # Usage:
8
+ #
9
+ # {% products_filter %}
10
+ # {% for search_group in groups %}
11
+ # {%assign param_name=search_group[0]%}
12
+ # {%assign param_conf=search_group[1]%}
13
+ # <span class="title">{{param_conf.name}}</span>
14
+ # <select name="{{param_name}}" class="values" multiple>
15
+ # {% for value in param_conf.values %}
16
+ # <option value="{{value}}">{{value}}</option>
17
+ # {% endfor %}
18
+ # </select>
19
+ # {% endfor %}
20
+ # {% products_filter %}
21
+ #
22
+ # you can also use next variables like `products_filter, what: 'full'`:
23
+ # * what - one of ['full', 'labels'], default: 'full'
24
+ class ProductsFilterTag < ::Liquid::Block
25
+ FULL = 'full'
26
+ LABELS = 'labels'
27
+ def initialize(tag_name, markup, options)
28
+ @parse_context = options # mark for parser
29
+ @attributes = {}
30
+ markup.scan(Liquid::TagAttributes) do |key, value|
31
+ # define liquid 4 or 5. parse_expression is for 5
32
+ @attributes[key] = defined?(parse_expression) ? parse_expression(value) : Liquid::Expression.parse(value)
33
+ end
34
+
35
+ @attributes["what"] ||= FULL
36
+
37
+ super
38
+ end
39
+
40
+ def facets(context)
41
+ json = {}
42
+ row = {}
43
+ pr_idxs = {}
44
+ context["products"].to_a.each_with_index do |pr, product_idx|
45
+ pr.variants.each do |v|
46
+ v.attributes.each do |va|
47
+ pr_idxs["#{va.handle}:#{va.value}"] ||= Set.new
48
+ pr_idxs["#{va.handle}:#{va.value}"].add(product_idx)
49
+ json[va.handle] ||= { "name" => va.name, "values" => {}}
50
+ json[va.handle]["values"][va.value] ||= { "label" => va.value, "count" => 1 }
51
+ json[va.handle]["values"][va.value]["count"] = pr_idxs["#{va.handle}:#{va.value}"].size
52
+ end
53
+
54
+ row[:min] = v.price.to_d if row[:min].nil? || row[:min] > v.price.to_d
55
+ row[:max] = v.price.to_d if row[:max].nil? || row[:max] < v.price.to_d
56
+ end
57
+ end
58
+
59
+ set_prices(json, row)
60
+ json
61
+ end
62
+
63
+ def labels(context)
64
+ json = {}
65
+ row = {}
66
+ context["products"].to_a.each_with_index do |pr, product_idx|
67
+ pr.variants.each do |v|
68
+ v.attributes.each do |va|
69
+ json[va.handle] ||= { "name" => va.name, "values" => {}}
70
+ end
71
+
72
+ row[:min] = v.price.to_d if row[:min].nil? || row[:min] > v.price.to_d
73
+ row[:max] = v.price.to_d if row[:max].nil? || row[:max] < v.price.to_d
74
+ end
75
+ end
76
+
77
+ set_prices(json, row)
78
+ json
79
+ end
80
+
81
+ def set_prices(json, row)
82
+ json["price"] = {
83
+ "name" => "Price",
84
+ "values" => {
85
+ "min" => {"label"=>"Minimum", "count"=>row[:min]},
86
+ "max" => {"label"=>"Maximum", "count"=>row[:max]}
87
+ }
88
+ }
89
+ end
90
+
91
+
92
+ # liquid < 5.0
93
+ def render(context)
94
+ context.stack do
95
+ nodelist = []
96
+ context["groups"] = case @attributes["what"]
97
+ when FULL then facets(context).stringify_keys!
98
+ when LABELS then labels(context).stringify_keys!
99
+ else {}
100
+ end
101
+ nodelist << super # other part of html
102
+ nodelist.join("<br />")
103
+ end
104
+ end
105
+ end
106
+ end
@@ -0,0 +1,113 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ShoperbLiquid
4
+ class SectionTag < ::Liquid::Include
5
+ # liquid >=5
6
+ class PartialCache
7
+ def self.load(template_name, context:, parse_context:)
8
+ cached_partials = (context.registers[:cached_partials] ||= {})
9
+ cached = cached_partials[template_name]
10
+ return cached if cached
11
+
12
+ file_system = (context.registers[:file_system] ||= Liquid::Template.file_system)
13
+ # source = file_system.read_template_file(template_name) # original
14
+ source = file_system.read_section_file(template_name) # new
15
+
16
+ parse_context.partial = true
17
+
18
+ template_factory = (context.registers[:template_factory] ||= Liquid::TemplateFactory.new)
19
+ template = template_factory.for(template_name)
20
+
21
+ partial = template.parse(source, parse_context)
22
+ cached_partials[template_name] = partial
23
+ ensure
24
+ parse_context.partial = false
25
+ end
26
+ end
27
+
28
+ # liquid >= 5.0
29
+ # taken from "include" tag, changed a call to file system
30
+ def render_to_output_buffer(context, output)
31
+ template_name = context.evaluate(@template_name_expr)
32
+ raise ArgumentError, options[:locale].t("errors.argument.include") unless template_name
33
+
34
+ # new code
35
+ unless settings = context.registers[:theme].settings_data
36
+ raise ShoperbLiquid::Error, "No settings data for theme"
37
+ end
38
+
39
+ section_id = context.evaluate(@template_name_expr)
40
+ section_data = settings.data["sections"][section_id]
41
+ section_data["updated_at"] = context.registers[:theme].updated_at.to_f
42
+ context["section"] = ThemeSectionDrop.new(section_id, section_data)
43
+ # end of new code
44
+
45
+ partial = PartialCache.load( # need this line here
46
+ template_name,
47
+ context: context,
48
+ parse_context: parse_context
49
+ )
50
+
51
+ context_variable_name = @alias_name || template_name.split('/').last
52
+
53
+ variable = if @variable_name_expr
54
+ context.evaluate(@variable_name_expr)
55
+ else
56
+ context.find_variable(template_name, raise_on_not_found: false)
57
+ end
58
+
59
+ old_template_name = context.template_name
60
+ old_partial = context.partial
61
+ begin
62
+ context.template_name = template_name
63
+ context.partial = true
64
+ context.stack do
65
+ @attributes.each do |key, value|
66
+ context[key] = context.evaluate(value)
67
+ end
68
+
69
+ if variable.is_a?(Array)
70
+ variable.each do |var|
71
+ context[context_variable_name] = var
72
+ partial.render_to_output_buffer(context, output)
73
+ end
74
+ else
75
+ context[context_variable_name] = variable
76
+ partial.render_to_output_buffer(context, output)
77
+ end
78
+ end
79
+ ensure
80
+ context.template_name = old_template_name
81
+ context.partial = old_partial
82
+ end
83
+
84
+ output
85
+ end
86
+
87
+ # liquid < 5.0
88
+ def render(context)
89
+ context.stack do
90
+ unless settings = context.registers[:theme].settings_data
91
+ raise ShoperbLiquid::Error, "No settings data for theme"
92
+ end
93
+
94
+ section_id = context.evaluate(@template_name_expr)
95
+ section_data = settings.data["sections"][section_id]
96
+ section_data["updated_at"] = context.registers[:theme].updated_at.to_f
97
+ context["section"] = ThemeSectionDrop.new(section_id, section_data)
98
+
99
+ super
100
+ end
101
+ end
102
+
103
+ private
104
+
105
+ # liquid < 5.0
106
+ # taken from "include" tag, changed a call to file system
107
+ def read_template_from_file_system(context)
108
+ Liquid::Environment.default.file_system.read_section_file(
109
+ context.evaluate(@template_name_expr)
110
+ )
111
+ end
112
+ end
113
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "liquid"
4
+ require "pagy"
5
+ require "active_support/all"
6
+ require "shoperb_liquid/configuration"
7
+ require "shoperb_liquid/registers"
8
+ require "shoperb_liquid/errors"
9
+ autoload :ActionView, "action_view"
10
+
11
+ module ShoperbLiquid
12
+ def self.configure
13
+ yield(config)
14
+ end
15
+
16
+ def self.config
17
+ @config ||= ShoperbLiquid::Configuration.new
18
+ end
19
+
20
+ def self.env
21
+ config.environment
22
+ end
23
+
24
+ def self.autoload_all(mod, folder)
25
+ Gem.find_files("#{folder}/*.rb").each { |path| require path }
26
+ end
27
+
28
+ def self.options(context, **options)
29
+ Registers.options(context, **options)
30
+ end
31
+
32
+ ShoperbLiquid.autoload_all self, "shoperb_liquid/ext"
33
+ ShoperbLiquid.autoload_all self, "shoperb_liquid/filters"
34
+ ShoperbLiquid.autoload_all self, "shoperb_liquid/tags"
35
+
36
+ require "shoperb_liquid/drops/base"
37
+ require "shoperb_liquid/drops/collection_drop"
38
+
39
+ ShoperbLiquid.autoload_all self, "shoperb_liquid/drops"
40
+
41
+ Registers.register_filters
42
+ Registers.register_tags
43
+
44
+ class Template < Liquid::Template; end
45
+
46
+ end
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # frozen_string_literal: true
3
+ Gem::Specification.new do |gem|
4
+ gem.name = "shoperb_liquid"
5
+ gem.version = "0.0.1"
6
+ gem.required_ruby_version = ">= 3.2.0"
7
+
8
+ gem.authors = ["Shoperb"]
9
+ gem.email = ["engineering@shoperb.com"]
10
+ gem.summary = "shoperb_liquid is a liquid drops, tags and filters for Shoperb"
11
+ gem.homepage = "https://shoperb.dev"
12
+
13
+ gem.files = `git ls-files`.split($/)
14
+ gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
15
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
16
+ gem.require_paths = ["lib", "liquid/lib"]
17
+
18
+ gem.add_dependency "liquid", "~> 4.0.0"
19
+ gem.add_dependency "activesupport", "~> 7.1.2"
20
+ gem.add_dependency "actionpack", "~> 7.1.2"
21
+ gem.add_dependency "pagy", "~> 9.3.5"
22
+ gem.add_dependency "i18n", "~> 1.9.0"
23
+ gem.add_dependency "request_store", "~> 1.7.0"
24
+ end
metadata ADDED
@@ -0,0 +1,223 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: shoperb_liquid
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Shoperb
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: liquid
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: 4.0.0
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: 4.0.0
26
+ - !ruby/object:Gem::Dependency
27
+ name: activesupport
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: 7.1.2
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 7.1.2
40
+ - !ruby/object:Gem::Dependency
41
+ name: actionpack
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 7.1.2
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: 7.1.2
54
+ - !ruby/object:Gem::Dependency
55
+ name: pagy
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: 9.3.5
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: 9.3.5
68
+ - !ruby/object:Gem::Dependency
69
+ name: i18n
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: 1.9.0
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: 1.9.0
82
+ - !ruby/object:Gem::Dependency
83
+ name: request_store
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: 1.7.0
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: 1.7.0
96
+ email:
97
+ - engineering@shoperb.com
98
+ executables: []
99
+ extensions: []
100
+ extra_rdoc_files: []
101
+ files:
102
+ - ".gitignore"
103
+ - ".rubocop.yml"
104
+ - Gemfile
105
+ - LICENSE.txt
106
+ - README.md
107
+ - Rakefile
108
+ - lib/shoperb_liquid.rb
109
+ - lib/shoperb_liquid/configuration.rb
110
+ - lib/shoperb_liquid/drops/account_drop.rb
111
+ - lib/shoperb_liquid/drops/address_drop.rb
112
+ - lib/shoperb_liquid/drops/array_drop.rb
113
+ - lib/shoperb_liquid/drops/attribute_drop.rb
114
+ - lib/shoperb_liquid/drops/base.rb
115
+ - lib/shoperb_liquid/drops/blog_category_drop.rb
116
+ - lib/shoperb_liquid/drops/blog_post_drop.rb
117
+ - lib/shoperb_liquid/drops/cart_drop.rb
118
+ - lib/shoperb_liquid/drops/cart_item_drop.rb
119
+ - lib/shoperb_liquid/drops/categories_drop.rb
120
+ - lib/shoperb_liquid/drops/category_drop.rb
121
+ - lib/shoperb_liquid/drops/collection_drop.rb
122
+ - lib/shoperb_liquid/drops/country_drop.rb
123
+ - lib/shoperb_liquid/drops/currency_drop.rb
124
+ - lib/shoperb_liquid/drops/customer_credit_drop.rb
125
+ - lib/shoperb_liquid/drops/customer_credits_drop.rb
126
+ - lib/shoperb_liquid/drops/customer_drop.rb
127
+ - lib/shoperb_liquid/drops/customer_group_drop.rb
128
+ - lib/shoperb_liquid/drops/gift_card_drop.rb
129
+ - lib/shoperb_liquid/drops/image_drop.rb
130
+ - lib/shoperb_liquid/drops/integration_drop.rb
131
+ - lib/shoperb_liquid/drops/integrations_drop.rb
132
+ - lib/shoperb_liquid/drops/language_drop.rb
133
+ - lib/shoperb_liquid/drops/link_drop.rb
134
+ - lib/shoperb_liquid/drops/media_file_drop.rb
135
+ - lib/shoperb_liquid/drops/menu_drop.rb
136
+ - lib/shoperb_liquid/drops/menus_drop.rb
137
+ - lib/shoperb_liquid/drops/meta_drop.rb
138
+ - lib/shoperb_liquid/drops/order_drop.rb
139
+ - lib/shoperb_liquid/drops/order_item_attribute_drop.rb
140
+ - lib/shoperb_liquid/drops/order_item_attributes_drop.rb
141
+ - lib/shoperb_liquid/drops/order_item_drop.rb
142
+ - lib/shoperb_liquid/drops/order_return_drop.rb
143
+ - lib/shoperb_liquid/drops/order_return_item_drop.rb
144
+ - lib/shoperb_liquid/drops/order_return_item_entity_drop.rb
145
+ - lib/shoperb_liquid/drops/order_return_parcel_drop.rb
146
+ - lib/shoperb_liquid/drops/order_returns_drop.rb
147
+ - lib/shoperb_liquid/drops/orders_drop.rb
148
+ - lib/shoperb_liquid/drops/page_drop.rb
149
+ - lib/shoperb_liquid/drops/pages_drop.rb
150
+ - lib/shoperb_liquid/drops/payment_card_drop.rb
151
+ - lib/shoperb_liquid/drops/payment_method_drop.rb
152
+ - lib/shoperb_liquid/drops/payment_provider_drop.rb
153
+ - lib/shoperb_liquid/drops/product_attribute_drop.rb
154
+ - lib/shoperb_liquid/drops/product_collection_drop.rb
155
+ - lib/shoperb_liquid/drops/product_collections_drop.rb
156
+ - lib/shoperb_liquid/drops/product_drop.rb
157
+ - lib/shoperb_liquid/drops/product_type_drop.rb
158
+ - lib/shoperb_liquid/drops/product_types_drop.rb
159
+ - lib/shoperb_liquid/drops/products_drop.rb
160
+ - lib/shoperb_liquid/drops/refund_drop.rb
161
+ - lib/shoperb_liquid/drops/refund_item_drop.rb
162
+ - lib/shoperb_liquid/drops/review_drop.rb
163
+ - lib/shoperb_liquid/drops/search_drop.rb
164
+ - lib/shoperb_liquid/drops/shipping_item_drop.rb
165
+ - lib/shoperb_liquid/drops/shipping_method_drop.rb
166
+ - lib/shoperb_liquid/drops/shipping_parcel_drop.rb
167
+ - lib/shoperb_liquid/drops/shop_drop.rb
168
+ - lib/shoperb_liquid/drops/subscription_drop.rb
169
+ - lib/shoperb_liquid/drops/subscription_plan_drop.rb
170
+ - lib/shoperb_liquid/drops/theme_section_blocks_drop.rb
171
+ - lib/shoperb_liquid/drops/theme_section_drop.rb
172
+ - lib/shoperb_liquid/drops/theme_section_image_drop.rb
173
+ - lib/shoperb_liquid/drops/theme_section_settings_drop.rb
174
+ - lib/shoperb_liquid/drops/theme_settings_drop.rb
175
+ - lib/shoperb_liquid/drops/url_drop.rb
176
+ - lib/shoperb_liquid/drops/variant_attribute_drop.rb
177
+ - lib/shoperb_liquid/drops/variant_drop.rb
178
+ - lib/shoperb_liquid/drops/variants_drop.rb
179
+ - lib/shoperb_liquid/drops/vendor_drop.rb
180
+ - lib/shoperb_liquid/drops/vendors_drop.rb
181
+ - lib/shoperb_liquid/errors.rb
182
+ - lib/shoperb_liquid/ext/array.rb
183
+ - lib/shoperb_liquid/ext/context.rb
184
+ - lib/shoperb_liquid/ext/models.rb
185
+ - lib/shoperb_liquid/ext/template.rb
186
+ - lib/shoperb_liquid/filters/asset_filters.rb
187
+ - lib/shoperb_liquid/filters/collection_filters.rb
188
+ - lib/shoperb_liquid/filters/datum_filters.rb
189
+ - lib/shoperb_liquid/filters/extension_filters.rb
190
+ - lib/shoperb_liquid/filters/html_filters.rb
191
+ - lib/shoperb_liquid/filters/theme_filters.rb
192
+ - lib/shoperb_liquid/filters/translate_filters.rb
193
+ - lib/shoperb_liquid/filters/url_filters.rb
194
+ - lib/shoperb_liquid/registers.rb
195
+ - lib/shoperb_liquid/tags/cache_tag.rb
196
+ - lib/shoperb_liquid/tags/form_tag.rb
197
+ - lib/shoperb_liquid/tags/layout_tag.rb
198
+ - lib/shoperb_liquid/tags/paginate_tag.rb
199
+ - lib/shoperb_liquid/tags/products_filter_tag.rb
200
+ - lib/shoperb_liquid/tags/section_tag.rb
201
+ - shoperb_liquid.gemspec
202
+ homepage: https://shoperb.dev
203
+ licenses: []
204
+ metadata: {}
205
+ rdoc_options: []
206
+ require_paths:
207
+ - lib
208
+ - liquid/lib
209
+ required_ruby_version: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - ">="
212
+ - !ruby/object:Gem::Version
213
+ version: 3.2.0
214
+ required_rubygems_version: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - ">="
217
+ - !ruby/object:Gem::Version
218
+ version: '0'
219
+ requirements: []
220
+ rubygems_version: 3.6.7
221
+ specification_version: 4
222
+ summary: shoperb_liquid is a liquid drops, tags and filters for Shoperb
223
+ test_files: []