From 0f5441b09e48c7207526fb5ad6e22c057b061aa9 Mon Sep 17 00:00:00 2001 From: Florian Weingarten Date: Wed, 26 Jun 2013 19:53:09 -0400 Subject: [PATCH] Convert legacy tab indentation to spaces and remove trailing whitespace from all lines --- MIT-LICENSE | 2 +- example/server/example_servlet.rb | 20 +- example/server/liquid_servlet.rb | 16 +- example/server/templates/index.liquid | 2 +- example/server/templates/products.liquid | 58 ++--- lib/extras/liquid_view.rb | 18 +- lib/liquid/block.rb | 2 +- lib/liquid/file_system.rb | 22 +- lib/liquid/tags/assign.rb | 20 +- lib/liquid/tags/break.rb | 4 +- lib/liquid/tags/case.rb | 66 ++--- lib/liquid/tags/continue.rb | 2 +- lib/liquid/tags/cycle.rb | 42 +-- lib/liquid/tags/decrement.rb | 14 +- lib/liquid/tags/ifchanged.rb | 18 +- lib/liquid/tags/increment.rb | 14 +- performance/shopify/comment_form.rb | 20 +- performance/shopify/database.rb | 30 +-- performance/shopify/json_filter.rb | 6 +- performance/shopify/money_filter.rb | 12 +- performance/shopify/paginate.rb | 46 ++-- performance/shopify/shop_filter.rb | 52 ++-- performance/shopify/tag_filter.rb | 14 +- performance/shopify/vision.database.yml | 194 +++++++------- performance/shopify/weight_filter.rb | 8 +- performance/tests/dropify/article.liquid | 28 +- performance/tests/dropify/blog.liquid | 66 ++--- performance/tests/dropify/cart.liquid | 132 +++++----- performance/tests/dropify/collection.liquid | 44 ++-- performance/tests/dropify/index.liquid | 94 +++---- performance/tests/dropify/page.liquid | 2 +- performance/tests/dropify/product.liquid | 136 +++++----- performance/tests/dropify/theme.liquid | 210 +++++++-------- performance/tests/ripen/article.liquid | 28 +- performance/tests/ripen/blog.liquid | 26 +- performance/tests/ripen/cart.liquid | 22 +- performance/tests/ripen/collection.liquid | 58 ++--- performance/tests/ripen/index.liquid | 64 ++--- performance/tests/ripen/page.liquid | 8 +- performance/tests/ripen/product.liquid | 150 +++++------ performance/tests/ripen/theme.liquid | 170 ++++++------- performance/tests/tribble/404.liquid | 102 ++++---- performance/tests/tribble/article.liquid | 92 +++---- performance/tests/tribble/blog.liquid | 76 +++--- performance/tests/tribble/cart.liquid | 268 ++++++++++---------- performance/tests/tribble/collection.liquid | 140 +++++----- performance/tests/tribble/index.liquid | 188 +++++++------- performance/tests/tribble/page.liquid | 112 ++++---- performance/tests/tribble/product.liquid | 232 ++++++++--------- performance/tests/tribble/search.liquid | 84 +++--- performance/tests/tribble/theme.liquid | 142 +++++------ performance/tests/vogue/article.liquid | 24 +- performance/tests/vogue/blog.liquid | 8 +- performance/tests/vogue/cart.liquid | 86 +++---- performance/tests/vogue/collection.liquid | 36 +-- performance/tests/vogue/index.liquid | 40 +-- performance/tests/vogue/page.liquid | 6 +- performance/tests/vogue/product.liquid | 46 ++-- performance/tests/vogue/theme.liquid | 164 ++++++------ performance/theme_runner.rb | 24 +- test/liquid/assign_test.rb | 2 +- test/liquid/condition_test.rb | 2 +- test/liquid/output_test.rb | 4 +- test/liquid/tags/for_tag_test.rb | 68 ++--- test/liquid/tags/html_tag_test.rb | 4 +- 65 files changed, 1945 insertions(+), 1945 deletions(-) diff --git a/MIT-LICENSE b/MIT-LICENSE index 441ca02..926b04e 100644 --- a/MIT-LICENSE +++ b/MIT-LICENSE @@ -17,4 +17,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/example/server/example_servlet.rb b/example/server/example_servlet.rb index b73be94..16f3bff 100644 --- a/example/server/example_servlet.rb +++ b/example/server/example_servlet.rb @@ -2,40 +2,40 @@ module ProductsFilter def price(integer) sprintf("$%.2d USD", integer / 100.0) end - + def prettyprint(text) text.gsub( /\*(.*)\*/, '\1' ) end - + def count(array) array.size end - + def paragraph(p) "

#{p}

" end end class Servlet < LiquidServlet - + def index { 'date' => Time.now } end - - def products - { 'products' => products_list, 'description' => description, 'section' => 'Snowboards', 'cool_products' => true} + + def products + { 'products' => products_list, 'description' => description, 'section' => 'Snowboards', 'cool_products' => true} end private - + def products_list [{'name' => 'Arbor Draft', 'price' => 39900, 'description' => 'the *arbor draft* is a excellent product' }, {'name' => 'Arbor Element', 'price' => 40000, 'description' => 'the *arbor element* rocks for freestyling'}, {'name' => 'Arbor Diamond', 'price' => 59900, 'description' => 'the *arbor diamond* is a made up product because im obsessed with arbor and have no creativity'}] end - + def description "List of Products ~ This is a list of products with price and description." end - + end diff --git a/example/server/liquid_servlet.rb b/example/server/liquid_servlet.rb index 8f24f00..d6b25e4 100644 --- a/example/server/liquid_servlet.rb +++ b/example/server/liquid_servlet.rb @@ -7,22 +7,22 @@ class LiquidServlet < WEBrick::HTTPServlet::AbstractServlet def do_POST(req, res) handle(:post, req, res) end - + private - + def handle(type, req, res) @request, @response = req, res - + @request.path_info =~ /(\w+)$/ - @action = $1 || 'index' - @assigns = send(@action) if respond_to?(@action) + @action = $1 || 'index' + @assigns = send(@action) if respond_to?(@action) @response['Content-Type'] = "text/html" @response.status = 200 - @response.body = Liquid::Template.parse(read_template).render(@assigns, :filters => [ProductsFilter]) + @response.body = Liquid::Template.parse(read_template).render(@assigns, :filters => [ProductsFilter]) end - + def read_template(filename = @action) File.read( File.dirname(__FILE__) + "/templates/#{filename}.liquid" ) end -end \ No newline at end of file +end diff --git a/example/server/templates/index.liquid b/example/server/templates/index.liquid index 79a52b4..e56b606 100644 --- a/example/server/templates/index.liquid +++ b/example/server/templates/index.liquid @@ -3,4 +3,4 @@

It is {{date}}

-

Check out the Products screen

\ No newline at end of file +

Check out the Products screen

diff --git a/example/server/templates/products.liquid b/example/server/templates/products.liquid index 191d99a..374b029 100644 --- a/example/server/templates/products.liquid +++ b/example/server/templates/products.liquid @@ -1,49 +1,49 @@ - + - - - - - products - - - - - - - - - + + + -

{{ description | split: '~' | first }}

+ products -

{{ description | split: '~' | last }}

+ + + + + + -

There are currently {{products | count}} products in the {{section}} catalog

+ + +

{{ description | split: '~' | first }}

+ +

{{ description | split: '~' | last }}

+ +

There are currently {{products | count}} products in the {{section}} catalog

{% if cool_products %} - Cool products :) + Cool products :) {% else %} - Uncool products :( + Uncool products :( {% endif %} - - + + diff --git a/lib/extras/liquid_view.rb b/lib/extras/liquid_view.rb index 6b983be..843a539 100644 --- a/lib/extras/liquid_view.rb +++ b/lib/extras/liquid_view.rb @@ -2,15 +2,15 @@ # and use liquid as an template system for .liquid files # # Example -# +# # ActionView::Base::register_template_handler :liquid, LiquidView class LiquidView PROTECTED_ASSIGNS = %w( template_root response _session template_class action_name request_origin session template _response url _request _cookies variables_added _flash params _headers request cookies ignore_missing_templates flash _params logger before_filter_chain_aborted headers ) - PROTECTED_INSTANCE_VARIABLES = %w( @_request @controller @_first_render @_memoized__pick_template @view_paths + PROTECTED_INSTANCE_VARIABLES = %w( @_request @controller @_first_render @_memoized__pick_template @view_paths @helpers @assigns_added @template @_render_stack @template_format @assigns ) - + def self.call(template) "LiquidView.new(self).render(template, local_assigns)" end @@ -18,10 +18,10 @@ class LiquidView def initialize(view) @view = view end - + def render(template, local_assigns = nil) @view.controller.headers["Content-Type"] ||= 'text/html; charset=utf-8' - + # Rails 2.2 Template has source, but not locals if template.respond_to?(:source) && !template.respond_to?(:locals) assigns = (@view.instance_variables - PROTECTED_INSTANCE_VARIABLES).inject({}) do |hash, ivar| @@ -31,15 +31,15 @@ class LiquidView else assigns = @view.assigns.reject{ |k,v| PROTECTED_ASSIGNS.include?(k) } end - + source = template.respond_to?(:source) ? template.source : template local_assigns = (template.respond_to?(:locals) ? template.locals : local_assigns) || {} - + if content_for_layout = @view.instance_variable_get("@content_for_layout") assigns['content_for_layout'] = content_for_layout end assigns.merge!(local_assigns.stringify_keys) - + liquid = Liquid::Template.parse(source) liquid.render(assigns, :filters => [@view.controller.master_helper_module], :registers => {:action_view => @view, :controller => @view.controller}) end @@ -48,4 +48,4 @@ class LiquidView false end -end \ No newline at end of file +end diff --git a/lib/liquid/block.rb b/lib/liquid/block.rb index a0a07e4..ada7e8a 100644 --- a/lib/liquid/block.rb +++ b/lib/liquid/block.rb @@ -99,7 +99,7 @@ module Liquid begin # If we get an Interrupt that means the block must stop processing. An - # Interrupt is any command that stops block execution such as {% break %} + # Interrupt is any command that stops block execution such as {% break %} # or {% continue %} if token.is_a? Continue or token.is_a? Break context.push_interrupt(token.interrupt) diff --git a/lib/liquid/file_system.rb b/lib/liquid/file_system.rb index 57363c3..fe2b9aa 100644 --- a/lib/liquid/file_system.rb +++ b/lib/liquid/file_system.rb @@ -1,7 +1,7 @@ module Liquid # A Liquid file system is way to let your templates retrieve other templates for use with the include tag. # - # You can implement subclasses that retrieve templates from the database, from the file system using a different + # You can implement subclasses that retrieve templates from the database, from the file system using a different # path structure, you can provide them as hard-coded inline strings, or any manner that you see fit. # # You can add additional instance variables, arguments, or methods as needed. @@ -18,7 +18,7 @@ module Liquid raise FileSystemError, "This liquid context does not allow includes." end end - + # This implements an abstract file system which retrieves template files named in a manner similar to Rails partials, # ie. with the template name prefixed with an underscore. The extension ".liquid" is also added. # @@ -27,36 +27,36 @@ module Liquid # Example: # # file_system = Liquid::LocalFileSystem.new("/some/path") - # + # # file_system.full_path("mypartial") # => "/some/path/_mypartial.liquid" # file_system.full_path("dir/mypartial") # => "/some/path/dir/_mypartial.liquid" # class LocalFileSystem attr_accessor :root - + def initialize(root) @root = root end - + def read_template_file(template_path, context) full_path = full_path(template_path) raise FileSystemError, "No such template '#{template_path}'" unless File.exists?(full_path) - + File.read(full_path) end - + def full_path(template_path) raise FileSystemError, "Illegal template name '#{template_path}'" unless template_path =~ /^[^.\/][a-zA-Z0-9_\/]+$/ - + full_path = if template_path.include?('/') File.join(root, File.dirname(template_path), "_#{File.basename(template_path)}.liquid") else File.join(root, "_#{template_path}.liquid") end - + raise FileSystemError, "Illegal template path '#{File.expand_path(full_path)}'" unless File.expand_path(full_path) =~ /^#{File.expand_path(root)}/ - + full_path end end -end \ No newline at end of file +end diff --git a/lib/liquid/tags/assign.rb b/lib/liquid/tags/assign.rb index 70b49ce..34fdf19 100644 --- a/lib/liquid/tags/assign.rb +++ b/lib/liquid/tags/assign.rb @@ -10,26 +10,26 @@ module Liquid # class Assign < Tag Syntax = /(#{VariableSignature}+)\s*=\s*(.*)\s*/o - - def initialize(tag_name, markup, tokens) + + def initialize(tag_name, markup, tokens) if markup =~ Syntax @to = $1 @from = Variable.new($2) else raise SyntaxError.new("Syntax Error in 'assign' - Valid syntax: assign [var] = [source]") end - - super + + super end - + def render(context) val = @from.render(context) context.scopes.last[@to] = val context.resource_limits[:assign_score_current] += (val.respond_to?(:length) ? val.length : 1) '' - end - - end - - Template.register_tag('assign', Assign) + end + + end + + Template.register_tag('assign', Assign) end diff --git a/lib/liquid/tags/break.rb b/lib/liquid/tags/break.rb index d297612..0626338 100644 --- a/lib/liquid/tags/break.rb +++ b/lib/liquid/tags/break.rb @@ -8,8 +8,8 @@ module Liquid # {% break %} # {% endif %} # {% endfor %} - # - class Break < Tag + # + class Break < Tag def interrupt BreakInterrupt.new diff --git a/lib/liquid/tags/case.rb b/lib/liquid/tags/case.rb index 4e2fb2c..9150b15 100644 --- a/lib/liquid/tags/case.rb +++ b/lib/liquid/tags/case.rb @@ -3,15 +3,15 @@ module Liquid Syntax = /(#{QuotedFragment})/o WhenSyntax = /(#{QuotedFragment})(?:(?:\s+or\s+|\s*\,\s*)(#{QuotedFragment}.*))?/o - def initialize(tag_name, markup, tokens) + def initialize(tag_name, markup, tokens) @blocks = [] - + if markup =~ Syntax @left = $1 else raise SyntaxError.new("Syntax Error in tag 'case' - Valid syntax: case [condition]") end - + super end @@ -27,53 +27,53 @@ module Liquid end end - def render(context) - context.stack do + def render(context) + context.stack do execute_else_block = true - + output = '' @blocks.each do |block| - if block.else? + if block.else? return render_all(block.attachment, context) if execute_else_block elsif block.evaluate(context) - execute_else_block = false + execute_else_block = false output << render_all(block.attachment, context) - end + end end output - end - end - - private - - def record_when_condition(markup) - while markup - # Create a new nodelist and assign it to the new block - if not markup =~ WhenSyntax - raise SyntaxError.new("Syntax Error in tag 'case' - Valid when condition: {% when [condition] [or condition2...] %} ") - end - - markup = $2 - - block = Condition.new(@left, '==', $1) - block.attach(@nodelist) - @blocks.push(block) end end - def record_else_condition(markup) + private + + def record_when_condition(markup) + while markup + # Create a new nodelist and assign it to the new block + if not markup =~ WhenSyntax + raise SyntaxError.new("Syntax Error in tag 'case' - Valid when condition: {% when [condition] [or condition2...] %} ") + end + + markup = $2 + + block = Condition.new(@left, '==', $1) + block.attach(@nodelist) + @blocks.push(block) + end + end + + def record_else_condition(markup) if not markup.strip.empty? raise SyntaxError.new("Syntax Error in tag 'case' - Valid else condition: {% else %} (no parameters) ") end - - block = ElseCondition.new + + block = ElseCondition.new block.attach(@nodelist) @blocks << block end - - - end - + + + end + Template.register_tag('case', Case) end diff --git a/lib/liquid/tags/continue.rb b/lib/liquid/tags/continue.rb index 267ed9f..0512a7d 100644 --- a/lib/liquid/tags/continue.rb +++ b/lib/liquid/tags/continue.rb @@ -8,7 +8,7 @@ module Liquid # {% continue %} # {% endif %} # {% endfor %} - # + # class Continue < Tag def interrupt diff --git a/lib/liquid/tags/cycle.rb b/lib/liquid/tags/cycle.rb index 9b3f342..276f9f5 100644 --- a/lib/liquid/tags/cycle.rb +++ b/lib/liquid/tags/cycle.rb @@ -1,5 +1,5 @@ module Liquid - + # Cycle is usually used within a loop to alternate between values, like colors or DOM classes. # # {% for item in items %} @@ -15,45 +15,45 @@ module Liquid class Cycle < Tag SimpleSyntax = /^#{QuotedFragment}+/o NamedSyntax = /^(#{QuotedFragment})\s*\:\s*(.*)/o - - def initialize(tag_name, markup, tokens) + + def initialize(tag_name, markup, tokens) case markup when NamedSyntax - @variables = variables_from_string($2) - @name = $1 + @variables = variables_from_string($2) + @name = $1 when SimpleSyntax @variables = variables_from_string(markup) - @name = "'#{@variables.to_s}'" + @name = "'#{@variables.to_s}'" else raise SyntaxError.new("Syntax Error in 'cycle' - Valid syntax: cycle [name :] var [, var2, var3 ...]") end - super - end - + super + end + def render(context) context.registers[:cycle] ||= Hash.new(0) - + context.stack do - key = context[@name] + key = context[@name] iteration = context.registers[:cycle][key] result = context[@variables[iteration]] - iteration += 1 - iteration = 0 if iteration >= @variables.size + iteration += 1 + iteration = 0 if iteration >= @variables.size context.registers[:cycle][key] = iteration - result + result end end - + private - + def variables_from_string(markup) markup.split(',').collect do |var| - var =~ /\s*(#{QuotedFragment})\s*/o - $1 ? $1 : nil - end.compact + var =~ /\s*(#{QuotedFragment})\s*/o + $1 ? $1 : nil + end.compact end - + end - + Template.register_tag('cycle', Cycle) end diff --git a/lib/liquid/tags/decrement.rb b/lib/liquid/tags/decrement.rb index c22318e..217d96d 100644 --- a/lib/liquid/tags/decrement.rb +++ b/lib/liquid/tags/decrement.rb @@ -1,5 +1,5 @@ module Liquid - + # decrement is used in a place where one needs to insert a counter # into a template, and needs the counter to survive across # multiple instantiations of the template. @@ -19,21 +19,21 @@ module Liquid # Hello: -3 # class Decrement < Tag - def initialize(tag_name, markup, tokens) + def initialize(tag_name, markup, tokens) @variable = markup.strip - super - end - + super + end + def render(context) value = context.environments.first[@variable] ||= 0 value = value - 1 context.environments.first[@variable] = value value.to_s end - + private end - + Template.register_tag('decrement', Decrement) end diff --git a/lib/liquid/tags/ifchanged.rb b/lib/liquid/tags/ifchanged.rb index a4406c6..c18a5c5 100644 --- a/lib/liquid/tags/ifchanged.rb +++ b/lib/liquid/tags/ifchanged.rb @@ -1,20 +1,20 @@ module Liquid class Ifchanged < Block - + def render(context) - context.stack do - + context.stack do + output = render_all(@nodelist, context) - + if output != context.registers[:ifchanged] context.registers[:ifchanged] = output output else '' - end + end end end - end - - Template.register_tag('ifchanged', Ifchanged) -end \ No newline at end of file + end + + Template.register_tag('ifchanged', Ifchanged) +end diff --git a/lib/liquid/tags/increment.rb b/lib/liquid/tags/increment.rb index e6a30ca..8626114 100644 --- a/lib/liquid/tags/increment.rb +++ b/lib/liquid/tags/increment.rb @@ -1,5 +1,5 @@ module Liquid - + # increment is used in a place where one needs to insert a counter # into a template, and needs the counter to survive across # multiple instantiations of the template. @@ -16,20 +16,20 @@ module Liquid # Hello: 2 # class Increment < Tag - def initialize(tag_name, markup, tokens) + def initialize(tag_name, markup, tokens) @variable = markup.strip - super - end - + super + end + def render(context) value = context.environments.first[@variable] ||= 0 context.environments.first[@variable] = value + 1 value.to_s end - + private end - + Template.register_tag('increment', Increment) end diff --git a/performance/shopify/comment_form.rb b/performance/shopify/comment_form.rb index 52c2538..2a62f66 100644 --- a/performance/shopify/comment_form.rb +++ b/performance/shopify/comment_form.rb @@ -1,5 +1,5 @@ -class CommentForm < Liquid::Block - Syntax = /(#{Liquid::VariableSignature}+)/ +class CommentForm < Liquid::Block + Syntax = /(#{Liquid::VariableSignature}+)/ def initialize(tag_name, markup, tokens) if markup =~ Syntax @@ -8,14 +8,14 @@ class CommentForm < Liquid::Block else raise SyntaxError.new("Syntax Error in 'comment_form' - Valid syntax: comment_form [article]") end - + super end - def render(context) + def render(context) article = context[@variable_name] - - context.stack do + + context.stack do context['form'] = { 'posted_successfully?' => context.registers[:posted_successfully], 'errors' => context['comment.errors'], @@ -25,9 +25,9 @@ class CommentForm < Liquid::Block } wrap_in_form(article, render_all(@nodelist, context)) end - end - - def wrap_in_form(article, input) - %Q{
\n#{input}\n
} + end + + def wrap_in_form(article, input) + %Q{
\n#{input}\n
} end end diff --git a/performance/shopify/database.rb b/performance/shopify/database.rb index a4db6f6..22413be 100644 --- a/performance/shopify/database.rb +++ b/performance/shopify/database.rb @@ -1,45 +1,45 @@ require 'yaml' module Database - - # Load the standard vision toolkit database and re-arrage it to be simply exportable + + # Load the standard vision toolkit database and re-arrage it to be simply exportable # to liquid as assigns. All this is based on Shopify def self.tables - @tables ||= begin + @tables ||= begin db = YAML.load_file(File.dirname(__FILE__) + '/vision.database.yml') - # From vision source + # From vision source db['products'].each do |product| collections = db['collections'].find_all do |collection| collection['products'].any? { |p| p['id'].to_i == product['id'].to_i } - end - product['collections'] = collections + end + product['collections'] = collections end - # key the tables by handles, as this is how liquid expects it. + # key the tables by handles, as this is how liquid expects it. db = db.inject({}) do |assigns, (key, values)| assigns[key] = values.inject({}) { |h, v| h[v['handle']] = v; h; } assigns - end - - # Some standard direct accessors so that the specialized templates + end + + # Some standard direct accessors so that the specialized templates # render correctly db['collection'] = db['collections'].values.first db['product'] = db['products'].values.first db['blog'] = db['blogs'].values.first db['article'] = db['blog']['articles'].first - - db['cart'] = { + + db['cart'] = { 'total_price' => db['line_items'].values.inject(0) { |sum, item| sum += item['line_price'] * item['quantity'] }, 'item_count' => db['line_items'].values.inject(0) { |sum, item| sum += item['quantity'] }, 'items' => db['line_items'].values } - + db - end + end end end if __FILE__ == $0 p Database.tables['collections']['frontpage'].keys #p Database.tables['blog']['articles'] -end \ No newline at end of file +end diff --git a/performance/shopify/json_filter.rb b/performance/shopify/json_filter.rb index 76ff3d2..1ce7328 100644 --- a/performance/shopify/json_filter.rb +++ b/performance/shopify/json_filter.rb @@ -1,7 +1,7 @@ module JsonFilter - + def json(object) object.reject {|k,v| k == "collections" }.to_json end - -end \ No newline at end of file + +end diff --git a/performance/shopify/money_filter.rb b/performance/shopify/money_filter.rb index 8f1f00e..b200831 100644 --- a/performance/shopify/money_filter.rb +++ b/performance/shopify/money_filter.rb @@ -1,5 +1,5 @@ module MoneyFilter - + def money_with_currency(money) return '' if money.nil? sprintf("$ %.2f USD", money/100.0) @@ -9,10 +9,10 @@ module MoneyFilter return '' if money.nil? sprintf("$ %.2f", money/100.0) end - - private - + + private + def currency ShopDrop.new.currency - end -end \ No newline at end of file + end +end diff --git a/performance/shopify/paginate.rb b/performance/shopify/paginate.rb index b340623..a5b5c9f 100644 --- a/performance/shopify/paginate.rb +++ b/performance/shopify/paginate.rb @@ -3,7 +3,7 @@ class Paginate < Liquid::Block def initialize(tag_name, markup, tokens) @nodelist = [] - + if markup =~ Syntax @collection_name = $1 @page_size = if $2 @@ -11,22 +11,22 @@ class Paginate < Liquid::Block else 20 end - + @attributes = { 'window_size' => 3 } markup.scan(Liquid::TagAttributes) do |key, value| @attributes[key] = value - end + end else raise SyntaxError.new("Syntax Error in tag 'paginate' - Valid syntax: paginate [collection] by number") end - + super end def render(context) @context = context - context.stack do + context.stack do current_page = context['current_page'].to_i pagination = { @@ -34,29 +34,29 @@ class Paginate < Liquid::Block 'current_page' => 5, 'current_offset' => @page_size * 5 } - - context['paginate'] = pagination - - collection_size = context[@collection_name].size + + context['paginate'] = pagination + + collection_size = context[@collection_name].size raise ArgumentError.new("Cannot paginate array '#{@collection_name}'. Not found.") if collection_size.nil? - - page_count = (collection_size.to_f / @page_size.to_f).to_f.ceil + 1 + + page_count = (collection_size.to_f / @page_size.to_f).to_f.ceil + 1 pagination['items'] = collection_size pagination['pages'] = page_count -1 pagination['previous'] = link('« Previous', current_page-1 ) unless 1 >= current_page pagination['next'] = link('Next »', current_page+1 ) unless page_count <= current_page+1 pagination['parts'] = [] - + hellip_break = false - + if page_count > 2 1.upto(page_count-1) do |page| - + if current_page == page pagination['parts'] << no_link(page) - elsif page == 1 + elsif page == 1 pagination['parts'] << link(page, page) elsif page == page_count -1 pagination['parts'] << link(page, page) @@ -68,26 +68,26 @@ class Paginate < Liquid::Block else pagination['parts'] << link(page, page) end - + hellip_break = false - end + end end - + render_all(@nodelist, context) end end - + private - + def no_link(title) { 'title' => title, 'is_link' => false} end - + def link(title, page) { 'title' => title, 'url' => current_url + "?page=#{page}", 'is_link' => true} end - + def current_url "/collections/frontpage" end -end \ No newline at end of file +end diff --git a/performance/shopify/shop_filter.rb b/performance/shopify/shop_filter.rb index c62070a..dccabc9 100644 --- a/performance/shopify/shop_filter.rb +++ b/performance/shopify/shop_filter.rb @@ -1,5 +1,5 @@ module ShopFilter - + def asset_url(input) "/files/1/[shop_id]/[shop_id]/assets/#{input}" end @@ -7,11 +7,11 @@ module ShopFilter def global_asset_url(input) "/global/#{input}" end - + def shopify_asset_url(input) "/shopify/#{input}" end - + def script_tag(url) %() end @@ -19,15 +19,15 @@ module ShopFilter def stylesheet_tag(url, media="all") %() end - + def link_to(link, url, title="") %|#{link}| end - + def img_tag(url, alt="") - %|#{alt}| - end - + %|#{alt}| + end + def link_to_vendor(vendor) if vendor link_to vendor, url_for_vendor(vendor), vendor @@ -35,7 +35,7 @@ module ShopFilter 'Unknown Vendor' end end - + def link_to_type(type) if type link_to type, url_for_type(type), type @@ -43,56 +43,56 @@ module ShopFilter 'Unknown Vendor' end end - + def url_for_vendor(vendor_title) "/collections/#{vendor_title.to_handle}" end - + def url_for_type(type_title) "/collections/#{type_title.to_handle}" end - + def product_img_url(url, style = 'small') - + unless url =~ /^products\/([\w\-\_]+)\.(\w{2,4})/ raise ArgumentError, 'filter "size" can only be called on product images' end - + case style when 'original' - return '/files/shops/random_number/' + url + return '/files/shops/random_number/' + url when 'grande', 'large', 'medium', 'compact', 'small', 'thumb', 'icon' - "/files/shops/random_number/products/#{$1}_#{style}.#{$2}" + "/files/shops/random_number/products/#{$1}_#{style}.#{$2}" else - raise ArgumentError, 'valid parameters for filter "size" are: original, grande, large, medium, compact, small, thumb and icon ' + raise ArgumentError, 'valid parameters for filter "size" are: original, grande, large, medium, compact, small, thumb and icon ' end end - + def default_pagination(paginate) - - html = [] + + html = [] html << %(#{link_to(paginate['previous']['title'], paginate['previous']['url'])}) if paginate['previous'] for part in paginate['parts'] if part['is_link'] - html << %(#{link_to(part['title'], part['url'])}) + html << %(#{link_to(part['title'], part['url'])}) elsif part['title'].to_i == paginate['current_page'].to_i - html << %(#{part['title']}) + html << %(#{part['title']}) else - html << %(#{part['title']}) + html << %(#{part['title']}) end - + end html << %(#{link_to(paginate['next']['title'], paginate['next']['url'])}) if paginate['next'] html.join(' ') end - + # Accepts a number, and two words - one for singular, one for plural # Returns the singular word if input equals 1, otherwise plural def pluralize(input, singular, plural) input == 1 ? singular : plural end - + end diff --git a/performance/shopify/tag_filter.rb b/performance/shopify/tag_filter.rb index 93de0a5..ed6f8b4 100644 --- a/performance/shopify/tag_filter.rb +++ b/performance/shopify/tag_filter.rb @@ -1,9 +1,9 @@ module TagFilter - - def link_to_tag(label, tag) + + def link_to_tag(label, tag) "#{label}" end - + def highlight_active_tag(tag, css_class='active') if @context['current_tags'].include?(tag) "#{tag}" @@ -12,14 +12,14 @@ module TagFilter end end - def link_to_add_tag(label, tag) + def link_to_add_tag(label, tag) tags = (@context['current_tags'] + [tag]).uniq "#{label}" end - - def link_to_remove_tag(label, tag) + + def link_to_remove_tag(label, tag) tags = (@context['current_tags'] - [tag]).uniq "#{label}" end - + end diff --git a/performance/shopify/vision.database.yml b/performance/shopify/vision.database.yml index 199d257..9f38c30 100644 --- a/performance/shopify/vision.database.yml +++ b/performance/shopify/vision.database.yml @@ -2,7 +2,7 @@ # Variants # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -product_variants: +product_variants: - &product-1-var-1 id: 1 title: 151cm / Normal @@ -13,7 +13,7 @@ product_variants: inventory_quantity: 5 option1: 151cm option2: Normal - option3: + option3: - &product-1-var-2 id: 2 title: 155cm / Normal @@ -24,7 +24,7 @@ product_variants: inventory_quantity: 2 option1: 155cm option2: Normal - option3: + option3: - &product-2-var-1 id: 3 title: 162cm @@ -34,19 +34,19 @@ product_variants: available: true inventory_quantity: 3 option1: 162cm - option2: - option3: + option2: + option3: - &product-3-var-1 id: 4 title: 159cm price: 19900 weight: 1000 - compare_at_price: + compare_at_price: available: true inventory_quantity: 4 option1: 159cm - option2: - option3: + option2: + option3: - &product-4-var-1 id: 5 title: 159cm @@ -56,8 +56,8 @@ product_variants: available: true inventory_quantity: 6 option1: 159cm - option2: - option3: + option2: + option3: - &product-1-var-3 id: 6 title: 158cm / Wide @@ -74,12 +74,12 @@ product_variants: title: 162cm price: 19900 weight: 1000 - compare_at_price: + compare_at_price: available: false inventory_quantity: 0 option1: 162cm - option2: - option3: + option2: + option3: - &product-3-var-3 id: 8 title: 165cm @@ -89,8 +89,8 @@ product_variants: available: true inventory_quantity: 4 option1: 165cm - option2: - option3: + option2: + option3: - &product-5-var-1 id: 9 title: black / 42 @@ -233,7 +233,7 @@ product_variants: inventory_quantity: 0 option1: brown option2: medium - option3: + option3: - &product-8-var-3 id: 22 title: brown / large @@ -315,7 +315,7 @@ product_variants: # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Products # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - + products: - &product-1 id: 1 @@ -327,27 +327,27 @@ products: price_max: 31900 price_min: 23900 price_varies: true - available: true - tags: + available: true + tags: - season2005 - pro - intermediate - - wooden + - wooden - freestyle - options: + options: - Length - - Style + - Style compare_at_price: 49900 compare_at_price_max: 50900 compare_at_price_min: 49900 compare_at_price_varies: true url: /products/arbor-draft featured_image: products/arbor_draft.jpg - images: + images: - products/arbor_draft.jpg - description: + description: The Arbor Draft snowboard wouldn't exist if Polynesians hadn't figured out how to surf hundreds of years ago. But the Draft does exist, and it's here to bring your urban and park riding to a new level. The board's freaky Tiki design pays homage to culture that inspired snowboarding. It's designed to spin with ease, land smoothly, lock hook-free onto rails, and take the abuse of a pavement pounding or twelve. The Draft will pop off kickers with authority and carve solidly across the pipe. The Draft features targeted Koa wood die cuts inlayed into the deck that enhance the flex pattern. Now bow down to riding's ancestors. - variants: + variants: - *product-1-var-1 - *product-1-var-2 - *product-1-var-3 @@ -361,14 +361,14 @@ products: price_max: 29900 price_min: 29900 price_varies: false - available: true - tags: + available: true + tags: - season2005 - pro - - wooden + - wooden - freestyle options: - - Length + - Length compare_at_price: 52900 compare_at_price_max: 52900 compare_at_price_min: 52900 @@ -379,29 +379,29 @@ products: - products/element58.jpg description: The Element is a technically advanced all-mountain board for riders who readily transition from one terrain, snow condition, or riding style to another. Its balanced design provides the versatility needed for the true ride-it-all experience. The Element is exceedingly lively, freely initiates, and holds a tight edge at speed. Its structural real-wood topsheet is made with book-matched Koa. - variants: + variants: - *product-2-var-1 - + - &product-3 id: 3 - title: Comic ~ Pastel + title: Comic ~ Pastel handle: comic-pastel type: Snowboards vendor: Technine price: 19900 price_max: 22900 price_min: 19900 - tags: + tags: - season2006 - beginner - intermediate - - freestyle + - freestyle - purple options: - Length price_varies: true - available: true - compare_at_price: + available: true + compare_at_price: compare_at_price_max: 0 compare_at_price_min: 0 compare_at_price_varies: false @@ -413,7 +413,7 @@ products: - products/technine_detail.jpg description: 2005 Technine Comic Series Description The Comic series was developed to be the ultimate progressive freestyle board in the Technine line. Dependable edge control and a perfect flex pattern for jumping in the park or out of bounds. Landins and progression will come easy with this board and it will help your riding progress to the next level. Street rails, park jibs, backcountry booters and park jumps, this board will do it all. - variants: + variants: - *product-3-var-1 - *product-3-var-2 - *product-3-var-3 @@ -428,12 +428,12 @@ products: price_max: 19900 price_min: 19900 price_varies: false - available: true - tags: + available: true + tags: - season2006 - beginner - intermediate - - freestyle + - freestyle - orange options: - Length @@ -448,9 +448,9 @@ products: - products/technine4.jpg description: 2005 Technine Comic Series Description The Comic series was developed to be the ultimate progressive freestyle board in the Technine line. Dependable edge control and a perfect flex pattern for jumping in the park or out of bounds. Landins and progression will come easy with this board and it will help your riding progress to the next level. Street rails, park jibs, backcountry booters and park jumps, this board will do it all. - variants: + variants: - *product-4-var-1 - + - &product-5 id: 5 title: Burton Boots @@ -461,11 +461,11 @@ products: price_max: 11900 price_min: 11900 price_varies: false - available: true - tags: + available: true + tags: - season2006 - beginner - - intermediate + - intermediate - boots options: - Color @@ -480,13 +480,13 @@ products: - products/burton.jpg description: The Burton boots are particularly well on snowboards. The very best thing about them is that the according picture is cubic. This makes testing in a Vision testing environment very easy. - variants: + variants: - *product-5-var-1 - *product-5-var-2 - *product-5-var-3 - *product-5-var-4 - *product-5-var-5 - - *product-5-var-6 + - *product-5-var-6 - &product-6 id: 6 @@ -498,17 +498,17 @@ products: price_max: 2179500 price_min: 2179500 price_varies: false - available: true - tags: + available: true + tags: - ducati - superbike - - bike + - bike - street - racing - - performance + - performance options: - Color - compare_at_price: + compare_at_price: compare_at_price_max: 0 compare_at_price_min: 0 compare_at_price_varies: false @@ -520,7 +520,7 @@ products:

‘S’ PERFORMANCE

Producing 170hp (125kW) and with a dry weight of just 169kg (372.6lb), the new 1198 S now incorporates more World Superbike technology than ever before by taking the 1198 motor and adding top-of-the-range suspension, lightweight chassis components and a true racing-style traction control system designed for road use.

The high performance, fully adjustable 43mm Öhlins forks, which sport low friction titanium nitride-treated fork sliders, respond effortlessly to every imperfection in the tarmac. Beyond their advanced engineering solutions, one of the most important characteristics of Öhlins forks is their ability to communicate the condition and quality of the tyre-to-road contact patch, a feature that puts every rider in superior control. The suspension set-up at the rear is complemented with a fully adjustable Öhlins rear shock equipped with a ride enhancing top-out spring and mounted to a single-sided swingarm for outstanding drive and traction. The front-to-rear Öhlins package is completed with a control-enhancing adjustable steering damper.

- variants: + variants: - *product-6-var-1 - &product-7 @@ -533,17 +533,17 @@ products: price_max: 1900 price_min: 1900 price_varies: false - available: true - tags: + available: true + tags: - shopify - shirt - - apparel + - apparel - tshirt - clothing options: - Color - Size - compare_at_price: + compare_at_price: compare_at_price_max: 0 compare_at_price_min: 0 compare_at_price_varies: false @@ -554,11 +554,11 @@ products: description:

High Quality Shopify Shirt. Wear your e-commerce solution with pride and attract attention anywhere you go.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

- variants: + variants: - *product-7-var-1 - *product-7-var-2 - *product-7-var-3 - - *product-7-var-4 + - *product-7-var-4 - &product-8 id: 8 @@ -570,11 +570,11 @@ products: price_max: 5900 price_min: 5900 price_varies: false - available: true - tags: + available: true + tags: - sweater - hooded - - apparel + - apparel - clothing options: - Color @@ -591,11 +591,11 @@ products: description:

Extra comfortable zip up sweater. Durable quality, ideal for any outdoor activities.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

- variants: + variants: - *product-8-var-1 - *product-8-var-2 - *product-8-var-3 - - *product-8-var-4 + - *product-8-var-4 - *product-8-var-5 - *product-8-var-6 @@ -609,11 +609,11 @@ products: price_max: 552500 price_min: 499995 price_varies: true - available: true - tags: + available: true + tags: - camera - slr - - nikon + - nikon - professional options: - Bundle @@ -626,21 +626,21 @@ products: images: - products/d3.jpg - products/d3_2.jpg - - products/d3_3.jpg + - products/d3_3.jpg description:

Flagship pro D-SLR with a 12.1-MP FX-format CMOS sensor, blazing 9 fps shooting at full FX resolution and low-noise performance up to 6400 ISO.

Nikon's original 12.1-megapixel FX-format (23.9 x 36mm) CMOS sensor: Couple Nikon's exclusive digital image processing system with the 12.1-megapixel FX-format and you'll get breathtakingly rich images while also reducing noise to unprecedented levels with even higher ISOs.

Continuous shooting at up to 9 frames per second: At full FX resolution and up to 11fps in the DX crop mode, the D3 offers uncompromised shooting speeds for fast-action and sports photography.

- variants: + variants: - *product-9-var-1 - *product-9-var-2 - *product-9-var-3 - + # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Line Items # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - + line_items: - &line_item-1 id: 1 @@ -661,7 +661,7 @@ line_items: quantity: 2 variant: *product-4-var-1 product: *product-4 - + # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Link Lists # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- @@ -715,7 +715,7 @@ links: title: Catalog url: /collections/all - + # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Link Lists @@ -727,7 +727,7 @@ link_lists: title: 'Main Menu' handle: 'main-menu' links: - - *link-12 + - *link-12 - *link-5 - *link-7 - *link-8 @@ -738,7 +738,7 @@ link_lists: links: - *link-5 - *link-6 - + # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Collections # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- @@ -759,7 +759,7 @@ collections: title: Arbor handle: arbor url: /collections/arbor - products: + products: - *product-1 - *product-2 @@ -770,26 +770,26 @@ collections: url: /collections/snowboards description:

This is a description for my Snowboards collection.

- products: + products: - *product-1 - *product-2 - *product-3 - *product-4 - + - &collection-4 id: 4 title: Items On Sale handle: sale url: /collections/sale - products: + products: - *product-1 - + - &collection-5 id: 5 title: Paginated Sale handle: 'paginated-sale' url: '/collections/paginated-sale' - products: + products: - *product-1 - *product-2 - *product-3 @@ -801,7 +801,7 @@ collections: title: All products handle: 'all' url: '/collections/all' - products: + products: - *product-7 - *product-8 - *product-9 @@ -812,7 +812,7 @@ collections: - *product-4 - *product-5 - + # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Pages and Blogs # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- @@ -828,12 +828,12 @@ pages:

Our retail store is located at Rue d'Avignon 32, Avignon (Provence).

Opening Hours:
Monday through Friday: 9am - 6pm
Saturday: 10am - 3pm
Sunday: closed

" created_at: 2005-04-04 12:00 - + - &page-3 id: 2 title: About Us handle: about-us - url: /pages/about-us + url: /pages/about-us author: Tobi content: "

Our company was founded in 1894 and we are since operating out of Avignon from the beautiful Provence.

@@ -848,12 +848,12 @@ pages: author: Tobi content: "" created_at: 2005-04-04 12:00 - + - &page-5 id: 4 title: Shipping and Handling handle: shipping - url: /pages/shipping + url: /pages/shipping author: Tobi content:

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

created_at: 2005-04-04 12:00 @@ -862,7 +862,7 @@ pages: id: 5 title: Frontpage handle: frontpage - url: /pages/frontpage + url: /pages/frontpage author: Tobi content:

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

created_at: 2005-04-04 12:00 @@ -872,11 +872,11 @@ blogs: handle: news title: News url: /blogs/news - articles: + articles: - id: 3 title: 'Welcome to the new Foo Shop' author: Daniel - content:

Welcome to your Shopify store! The jaded Pixel crew is really glad you decided to take Shopify for a spin.

To help you get you started with Shopify, here are a couple of tips regarding what you see on this page.

The text you see here is an article. To edit this article, create new articles or create new pages you can go to the Blogs & Pages tab of the administration menu.

The Shopify t-shirt above is a product and selling products is what Shopify is all about. To edit this product, or create new products you can go to the Products Tab in of the administration menu.

While you're looking around be sure to check out the Collections and Navigations tabs and soon you will be well on your way to populating your site.

And of course don't forget to browse the theme gallery to pick a new look for your shop!

Shopify is in beta
If you would like to make comments or suggestions please visit us in the Shopify Forums or drop us an email.

+ content:

Welcome to your Shopify store! The jaded Pixel crew is really glad you decided to take Shopify for a spin.

To help you get you started with Shopify, here are a couple of tips regarding what you see on this page.

The text you see here is an article. To edit this article, create new articles or create new pages you can go to the Blogs & Pages tab of the administration menu.

The Shopify t-shirt above is a product and selling products is what Shopify is all about. To edit this product, or create new products you can go to the Products Tab in of the administration menu.

While you're looking around be sure to check out the Collections and Navigations tabs and soon you will be well on your way to populating your site.

And of course don't forget to browse the theme gallery to pick a new look for your shop!

Shopify is in beta
If you would like to make comments or suggestions please visit us in the Shopify Forums or drop us an email.

created_at: 2005-04-04 16:00 - id: 4 title: 'Breaking News: Restock on all sales products' @@ -884,7 +884,7 @@ blogs: content: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. created_at: 2005-04-04 12:00 articles_count: 2 - + - id: 2 handle: bigcheese-blog title: Bigcheese blog @@ -896,7 +896,7 @@ blogs: content: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. created_at: 2005-04-04 16:00 comments: - - + - id: 1 author: John Smith email: john@smith.com @@ -905,7 +905,7 @@ blogs: created_at: 2009-01-01 12:00 updated_at: 2009-02-01 12:00 url: "" - - + - id: 2 author: John Jones email: john@jones.com @@ -921,22 +921,22 @@ blogs: created_at: 2005-04-06 12:00 comments: articles_count: 2 - comments_enabled?: true + comments_enabled?: true comment_post_url: "" comments_count: 2 - moderated?: true + moderated?: true - id: 3 handle: paginated-blog title: Paginated blog url: /blogs/paginated-blog - articles: + articles: - id: 6 title: 'One thing you probably did not know yet...' author: Justin content: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. created_at: 2005-04-04 16:00 - + - id: 7 title: Fascinating author: Tobi diff --git a/performance/shopify/weight_filter.rb b/performance/shopify/weight_filter.rb index cf5c8bc..3ff7c2c 100644 --- a/performance/shopify/weight_filter.rb +++ b/performance/shopify/weight_filter.rb @@ -3,9 +3,9 @@ module WeightFilter def weight(grams) sprintf("%.2f", grams / 1000) end - + def weight_with_unit(grams) "#{weight(grams)} kg" - end - -end \ No newline at end of file + end + +end diff --git a/performance/tests/dropify/article.liquid b/performance/tests/dropify/article.liquid index 504eb39..dca6caa 100644 --- a/performance/tests/dropify/article.liquid +++ b/performance/tests/dropify/article.liquid @@ -4,7 +4,7 @@
{{ article.content }} -
+ @@ -12,27 +12,27 @@ {% if blog.comments_enabled? %}

Comments

- +
+ {% endfor %} - +
{% form article %}

Leave a comment

- + {% if form.posted_successfully? %} {% if blog.moderated? %} @@ -44,11 +44,11 @@
Successfully posted your comment.
{% endif %} {% endif %} - + {% if form.errors %}
Not all the fields have been filled out correctly!
{% endif %} - +
@@ -59,16 +59,16 @@
- + {% if blog.moderated? %}

comments have to be approved before showing up

- {% endif %} + {% endif %} {% endform %}
- + {% endif %} - \ No newline at end of file + diff --git a/performance/tests/dropify/blog.liquid b/performance/tests/dropify/blog.liquid index 3c36a32..5a800c4 100644 --- a/performance/tests/dropify/blog.liquid +++ b/performance/tests/dropify/blog.liquid @@ -1,33 +1,33 @@ -
-

{{page.title}}

- - {% paginate blog.articles by 20 %} - - {% for article in blog.articles %} - -
-
-

- {{ article.title }} -

-

Posted on {{ article.created_at | date: "%B %d, '%y" }} by {{ article.author }}.

-
- -
- {{ article.content | strip_html | truncate: 250 }} -
- - {% if blog.comments_enabled? %} -

{{ article.comments_count }} comments

- {% endif %} -
- - {% endfor %} - - - - {% endpaginate %} - -
\ No newline at end of file +
+

{{page.title}}

+ + {% paginate blog.articles by 20 %} + + {% for article in blog.articles %} + +
+
+

+ {{ article.title }} +

+

Posted on {{ article.created_at | date: "%B %d, '%y" }} by {{ article.author }}.

+
+ +
+ {{ article.content | strip_html | truncate: 250 }} +
+ + {% if blog.comments_enabled? %} +

{{ article.comments_count }} comments

+ {% endif %} +
+ + {% endfor %} + + + + {% endpaginate %} + +
diff --git a/performance/tests/dropify/cart.liquid b/performance/tests/dropify/cart.liquid index f206ee5..8fe26ab 100644 --- a/performance/tests/dropify/cart.liquid +++ b/performance/tests/dropify/cart.liquid @@ -1,66 +1,66 @@ - - -
- - {% if cart.item_count == 0 %} -

Your shopping cart is looking rather empty...

- {% else %} -
- -
- -

You have {{ cart.item_count }} {{ cart.item_count | pluralize: 'product', 'products' }} in here!

- - - -
- -
- -
- - {% if additional_checkout_buttons %} -
-

- or -

- {{ content_for_additional_checkout_buttons }} -
- {% endif %} - -
- - {% endif %} - -
\ No newline at end of file + + +
+ + {% if cart.item_count == 0 %} +

Your shopping cart is looking rather empty...

+ {% else %} +
+ +
+ +

You have {{ cart.item_count }} {{ cart.item_count | pluralize: 'product', 'products' }} in here!

+ + + +
+ +
+ +
+ + {% if additional_checkout_buttons %} +
+

- or -

+ {{ content_for_additional_checkout_buttons }} +
+ {% endif %} + +
+ + {% endif %} + +
diff --git a/performance/tests/dropify/collection.liquid b/performance/tests/dropify/collection.liquid index 0679d1e..ad1427c 100644 --- a/performance/tests/dropify/collection.liquid +++ b/performance/tests/dropify/collection.liquid @@ -1,22 +1,22 @@ -{% paginate collection.products by 20 %} - - - - - -{% endpaginate %} \ No newline at end of file +{% paginate collection.products by 20 %} + + + + + +{% endpaginate %} diff --git a/performance/tests/dropify/index.liquid b/performance/tests/dropify/index.liquid index 569896d..cbc12bb 100644 --- a/performance/tests/dropify/index.liquid +++ b/performance/tests/dropify/index.liquid @@ -1,47 +1,47 @@ -
-

Featured Items

-{% for product in collections.frontpage.products limit:1 offset:0 %} -
- {{ product.title | escape }} -

{{ product.title }}

-
{{ product.description | strip_html | truncatewords: 18 }}
-

{{ product.price_min | money }}

-
-{% endfor %} -{% for product in collections.frontpage.products offset:1 %} -
- {{ product.title | escape }} -

{{ product.title }}

-

{{ product.price_min | money }}

-
-{% endfor %} -
- -
- {% assign article = pages.frontpage %} - - {% if article.content != "" %} -

{{ article.title }}

-
- {{ article.content }} -
- {% else %} -
- In Admin > Blogs & Pages, create a page with the handle frontpage and it will show up here.
- {{ "Learn more about handles" | link_to "http://wiki.shopify.com/Handle" }} -
- {% endif %} - -
-
-
- {% for article in blogs.news.articles offset:1 %} -
-

{{ article.title }}

-
- {{ article.content }} -
-
- {% endfor %} -
- +
+

Featured Items

+{% for product in collections.frontpage.products limit:1 offset:0 %} +
+ {{ product.title | escape }} +

{{ product.title }}

+
{{ product.description | strip_html | truncatewords: 18 }}
+

{{ product.price_min | money }}

+
+{% endfor %} +{% for product in collections.frontpage.products offset:1 %} +
+ {{ product.title | escape }} +

{{ product.title }}

+

{{ product.price_min | money }}

+
+{% endfor %} +
+ +
+ {% assign article = pages.frontpage %} + + {% if article.content != "" %} +

{{ article.title }}

+
+ {{ article.content }} +
+ {% else %} +
+ In Admin > Blogs & Pages, create a page with the handle frontpage and it will show up here.
+ {{ "Learn more about handles" | link_to "http://wiki.shopify.com/Handle" }} +
+ {% endif %} + +
+
+
+ {% for article in blogs.news.articles offset:1 %} +
+

{{ article.title }}

+
+ {{ article.content }} +
+
+ {% endfor %} +
+ diff --git a/performance/tests/dropify/page.liquid b/performance/tests/dropify/page.liquid index dcd6399..2ccbc63 100644 --- a/performance/tests/dropify/page.liquid +++ b/performance/tests/dropify/page.liquid @@ -5,4 +5,4 @@ {{page.content}} - \ No newline at end of file + diff --git a/performance/tests/dropify/product.liquid b/performance/tests/dropify/product.liquid index 12d8ea0..8870389 100644 --- a/performance/tests/dropify/product.liquid +++ b/performance/tests/dropify/product.liquid @@ -1,68 +1,68 @@ -
- -
- {% for image in product.images %} - {% if forloop.first %} - - {{product.title | escape }} - - {% else %} - - {{product.title | escape }} - - {% endif %} - {% endfor %} -
- -

{{ product.title }}

- - - - {{ product.price_min | money }}{% if product.price_varies %} - {{ product.price_max | money }}{% endif %} - -
-
- - - -
- -
-
-
- -
- {{ product.description }} -
-
- - +
+ +
+ {% for image in product.images %} + {% if forloop.first %} + + {{product.title | escape }} + + {% else %} + + {{product.title | escape }} + + {% endif %} + {% endfor %} +
+ +

{{ product.title }}

+ + + + {{ product.price_min | money }}{% if product.price_varies %} - {{ product.price_max | money }}{% endif %} + +
+
+ + + +
+ +
+
+
+ +
+ {{ product.description }} +
+
+ + diff --git a/performance/tests/dropify/theme.liquid b/performance/tests/dropify/theme.liquid index 4c127cf..aca9206 100644 --- a/performance/tests/dropify/theme.liquid +++ b/performance/tests/dropify/theme.liquid @@ -1,105 +1,105 @@ - - - - - - {{shop.name}} - {{page_title}} - - {{ 'textile.css' | global_asset_url | stylesheet_tag }} - {{ 'lightbox/v204/lightbox.css' | global_asset_url | stylesheet_tag }} - - {{ 'prototype/1.6/prototype.js' | global_asset_url | script_tag }} - {{ 'scriptaculous/1.8.2/scriptaculous.js' | global_asset_url | script_tag }} - {{ 'lightbox/v204/lightbox.js' | global_asset_url | script_tag }} - {{ 'option_selection.js' | shopify_asset_url | script_tag }} - - {{ 'layout.css' | asset_url | stylesheet_tag }} - {{ 'shop.js' | asset_url | script_tag }} - - {{ content_for_header }} - - - - -

Skip to navigation.

- - {% if cart.item_count > 0 %} - - {% endif %} - -
- -
-
- -
-
- {{ content_for_layout }} -
-
- -
-
- - - - {% if tags %} - - {% endif %} - - - -
- -

- - - -
-
- -
- - - - - + + + + + + {{shop.name}} - {{page_title}} + + {{ 'textile.css' | global_asset_url | stylesheet_tag }} + {{ 'lightbox/v204/lightbox.css' | global_asset_url | stylesheet_tag }} + + {{ 'prototype/1.6/prototype.js' | global_asset_url | script_tag }} + {{ 'scriptaculous/1.8.2/scriptaculous.js' | global_asset_url | script_tag }} + {{ 'lightbox/v204/lightbox.js' | global_asset_url | script_tag }} + {{ 'option_selection.js' | shopify_asset_url | script_tag }} + + {{ 'layout.css' | asset_url | stylesheet_tag }} + {{ 'shop.js' | asset_url | script_tag }} + + {{ content_for_header }} + + + + +

Skip to navigation.

+ + {% if cart.item_count > 0 %} + + {% endif %} + +
+ +
+
+ +
+
+ {{ content_for_layout }} +
+
+ +
+
+ + + + {% if tags %} + + {% endif %} + + + +
+ +

+ + + +
+
+ +
+ + + + + diff --git a/performance/tests/ripen/article.liquid b/performance/tests/ripen/article.liquid index 3efc26b..e1b7e71 100644 --- a/performance/tests/ripen/article.liquid +++ b/performance/tests/ripen/article.liquid @@ -4,7 +4,7 @@
{{ article.content }} -
+ @@ -12,7 +12,7 @@ {% if blog.comments_enabled? %}

Comments

- + - +
{% form article %}

Leave a comment

- + {% if form.posted_successfully? %} {% if blog.moderated? %} @@ -44,11 +44,11 @@
Successfully posted your comment.
{% endif %} {% endif %} - + {% if form.errors %}
Not all the fields have been filled out correctly!
{% endif %} - +
@@ -59,16 +59,16 @@
- + {% if blog.moderated? %}

comments have to be approved before showing up

- {% endif %} + {% endif %} {% endform %}
- +
{% endif %} - \ No newline at end of file + diff --git a/performance/tests/ripen/blog.liquid b/performance/tests/ripen/blog.liquid index aee318a..91b71ba 100644 --- a/performance/tests/ripen/blog.liquid +++ b/performance/tests/ripen/blog.liquid @@ -1,13 +1,13 @@ -
-

{{page.title}}

- {% for article in blog.articles %} -

- {{ article.created_at | date: '%d %b' }} - {{ article.title }} -

- {{ article.content }} - {% if blog.comments_enabled? %} -

{{ article.comments_count }} comments

- {% endif %} - {% endfor %} -
\ No newline at end of file +
+

{{page.title}}

+ {% for article in blog.articles %} +

+ {{ article.created_at | date: '%d %b' }} + {{ article.title }} +

+ {{ article.content }} + {% if blog.comments_enabled? %} +

{{ article.comments_count }} comments

+ {% endif %} + {% endfor %} +
diff --git a/performance/tests/ripen/cart.liquid b/performance/tests/ripen/cart.liquid index 560358e..db7a221 100644 --- a/performance/tests/ripen/cart.liquid +++ b/performance/tests/ripen/cart.liquid @@ -7,9 +7,9 @@
- {% if cart.item_count == 0 %} + {% if cart.item_count == 0 %}

Your shopping cart is empty...

-

Continue shopping

+

Continue shopping

{% else %}

@@ -26,21 +26,21 @@ {% for item in cart.items %} {{ item.product.featured_image | product_img_url: 'thumb' | img_tag }} - {{ item.title }} + {{ item.title }} {{ item.price | money }} {{item.line_price | money }} Remove {% endfor %} - -

-

- Subtotal: {{cart.total_price | money_with_currency }} -

+ +

+

+ Subtotal: {{cart.total_price | money_with_currency }} +

- {% if additional_checkout_buttons %} + {% if additional_checkout_buttons %}

- or -

{{ content_for_additional_checkout_buttons }} @@ -48,7 +48,7 @@ {% endif %} - + {% endif %} -
\ No newline at end of file +
diff --git a/performance/tests/ripen/collection.liquid b/performance/tests/ripen/collection.liquid index 7ebbbfd..31151f3 100644 --- a/performance/tests/ripen/collection.liquid +++ b/performance/tests/ripen/collection.liquid @@ -1,29 +1,29 @@ -
- -{% if collection.description %} -
{{ collection.description }}
-{% endif %} - -{% paginate collection.products by 20 %} - - - - - -{% endpaginate %} -
\ No newline at end of file +
+ +{% if collection.description %} +
{{ collection.description }}
+{% endif %} + +{% paginate collection.products by 20 %} + + + + + +{% endpaginate %} +
diff --git a/performance/tests/ripen/index.liquid b/performance/tests/ripen/index.liquid index 61eaa67..1eb1729 100644 --- a/performance/tests/ripen/index.liquid +++ b/performance/tests/ripen/index.liquid @@ -1,32 +1,32 @@ -
-

Featured products...

- - -
- {% assign article = pages.frontpage %} - {% if article.content != "" %} -

{{ article.title }}

- {{ article.content }} - {% else %} - In Admin > Blogs & Pages, create a page with the handle frontpage and it will show up here.
- {{ "Learn more about handles" | link_to "http://wiki.shopify.com/Handle" }} - {% endif %} -
-
\ No newline at end of file +
+

Featured products...

+ + +
+ {% assign article = pages.frontpage %} + {% if article.content != "" %} +

{{ article.title }}

+ {{ article.content }} + {% else %} + In Admin > Blogs & Pages, create a page with the handle frontpage and it will show up here.
+ {{ "Learn more about handles" | link_to "http://wiki.shopify.com/Handle" }} + {% endif %} +
+
diff --git a/performance/tests/ripen/page.liquid b/performance/tests/ripen/page.liquid index 6f1147a..b3e9702 100644 --- a/performance/tests/ripen/page.liquid +++ b/performance/tests/ripen/page.liquid @@ -1,4 +1,4 @@ -
-

{{page.title}}

- {{ page.content }} -
\ No newline at end of file +
+

{{page.title}}

+ {{ page.content }} +
diff --git a/performance/tests/ripen/product.liquid b/performance/tests/ripen/product.liquid index 53c775a..9a97045 100644 --- a/performance/tests/ripen/product.liquid +++ b/performance/tests/ripen/product.liquid @@ -1,75 +1,75 @@ -
-

{{ product.title }}

-
-
- {% for image in product.images %} - {% if forloop.first %} - - {{product.title | escape }} - - {% else %} - - {{product.title | escape }} - - {% endif %} - {% endfor %} -
- -
    -
  • Vendor: {{ product.vendor | link_to_vendor }}
  • -
  • Type: {{ product.type | link_to_type }}
  • -
- - {{ product.price_min | money }}{% if product.price_varies %} - {{ product.price_max | money }}{% endif %} - -
- {% if product.available %} - -
- - - -
- -
-
- {% else %} - Sold Out! - {% endif %} -
- -
- {{ product.description }} -
-
-
- - - - +
+

{{ product.title }}

+
+
+ {% for image in product.images %} + {% if forloop.first %} + + {{product.title | escape }} + + {% else %} + + {{product.title | escape }} + + {% endif %} + {% endfor %} +
+ +
    +
  • Vendor: {{ product.vendor | link_to_vendor }}
  • +
  • Type: {{ product.type | link_to_type }}
  • +
+ + {{ product.price_min | money }}{% if product.price_varies %} - {{ product.price_max | money }}{% endif %} + +
+ {% if product.available %} + +
+ + + +
+ +
+
+ {% else %} + Sold Out! + {% endif %} +
+ +
+ {{ product.description }} +
+
+
+ + + + diff --git a/performance/tests/ripen/theme.liquid b/performance/tests/ripen/theme.liquid index 6861c22..72c2992 100644 --- a/performance/tests/ripen/theme.liquid +++ b/performance/tests/ripen/theme.liquid @@ -1,85 +1,85 @@ - - - - {{shop.name}} - {{page_title}} - - - {{ 'main.css' | asset_url | stylesheet_tag }} - {{ 'shop.js' | asset_url | script_tag }} - - {{ 'mootools.js' | asset_url | script_tag }} - {{ 'slimbox.js' | asset_url | script_tag }} - {{ 'option_selection.js' | shopify_asset_url | script_tag }} - {{ 'slimbox.css' | asset_url | stylesheet_tag }} - - {{ content_for_header }} - - - -

Skip to navigation.

-
-
- -
- {{ content_for_layout }} -
-
- {% if template != 'cart' %} -
-
-
Shopping Cart
-
- {% if cart.item_count != 0 %} - {{ cart.item_count }} {{ cart.item_count | pluralize: 'item', 'items' }} in your cart - {% else %} - Your cart is empty - {% endif %} -
-
-
- {% endif %} - - -
- -
-
-
- - - - - \ No newline at end of file + + + + {{shop.name}} - {{page_title}} + + + {{ 'main.css' | asset_url | stylesheet_tag }} + {{ 'shop.js' | asset_url | script_tag }} + + {{ 'mootools.js' | asset_url | script_tag }} + {{ 'slimbox.js' | asset_url | script_tag }} + {{ 'option_selection.js' | shopify_asset_url | script_tag }} + {{ 'slimbox.css' | asset_url | stylesheet_tag }} + + {{ content_for_header }} + + + +

Skip to navigation.

+
+
+ +
+ {{ content_for_layout }} +
+
+ {% if template != 'cart' %} +
+
+
Shopping Cart
+
+ {% if cart.item_count != 0 %} + {{ cart.item_count }} {{ cart.item_count | pluralize: 'item', 'items' }} in your cart + {% else %} + Your cart is empty + {% endif %} +
+
+
+ {% endif %} + + +
+ +
+
+
+ + + + + diff --git a/performance/tests/tribble/404.liquid b/performance/tests/tribble/404.liquid index 0fd3f8b..acf184c 100644 --- a/performance/tests/tribble/404.liquid +++ b/performance/tests/tribble/404.liquid @@ -1,56 +1,56 @@ -
- -
-
-

Oh no!

-
- Seems like you are looking for something that just isn't here. Try heading back to our main page. Or you can checkout some of our featured products below. -
-
-
+
- -

Featured Products

-
    - - {% for product in collections.frontpage.products %} -
  • -
    -
    -
    -
    -

    {{product.title}}

    -

    {{ product.description | truncatewords: 15 }}

    -
    - {{ product.title | escape }} -
    - -
    - - -

    - View Details - - - {% if product.compare_at_price %} - {% if product.price_min != product.compare_at_price %} - {{product.compare_at_price | money}} - - {% endif %} - {% endif %} - - {{product.price_min | money}} - - -

    -
    -
    -
    -
  • - {% endfor %} +
    +
    +

    Oh no!

    +
    + Seems like you are looking for something that just isn't here. Try heading back to our main page. Or you can checkout some of our featured products below. +
    +
    +
    -
-
- + +

Featured Products

+ +
+ diff --git a/performance/tests/tribble/article.liquid b/performance/tests/tribble/article.liquid index 86df4a7..cb2453a 100644 --- a/performance/tests/tribble/article.liquid +++ b/performance/tests/tribble/article.liquid @@ -1,19 +1,19 @@ -
-
+
+
-
-

{{article.title}}

-
-
{{ article.created_at | date: "%b %d" }}
- {{ article.content }} -
- - +
+

{{article.title}}

+
+
{{ article.created_at | date: "%b %d" }}
+ {{ article.content }} +
+ + {% if blog.comments_enabled? %}

Comments

- +
    {% for comment in article.comments %} @@ -21,19 +21,19 @@
    {{ comment.content }}
    - -
    - Posted by {{ comment.author }} on {{ comment.created_at | date: "%B %d, %Y" }} + +
    + Posted by {{ comment.author }} on {{ comment.created_at | date: "%B %d, %Y" }}
    - + {% endfor %}
- +
{% form article %}

Leave a comment

- + {% if form.posted_successfully? %} {% if blog.moderated? %} @@ -45,11 +45,11 @@
Successfully posted your comment.
{% endif %} {% endif %} - + {% if form.errors %}
Not all the fields have been filled out correctly!
{% endif %} - +
@@ -60,39 +60,39 @@
- + {% if blog.moderated? %}

comments have to be approved before showing up

- {% endif %} + {% endif %} {% endform %}
- +
{% endif %} - - - -
-
- -
-

Why Shop With Us?

-
    -
  • -

    24 Hours

    -

    We're always here to help.

    -
  • -
  • -

    No Spam

    -

    We'll never share your info.

    -
  • -
  • -

    Secure Servers

    -

    Checkout is 256bit encrypted.

    -
  • -
-
-
\ No newline at end of file + + + +
+
+ +
+

Why Shop With Us?

+
    +
  • +

    24 Hours

    +

    We're always here to help.

    +
  • +
  • +

    No Spam

    +

    We'll never share your info.

    +
  • +
  • +

    Secure Servers

    +

    Checkout is 256bit encrypted.

    +
  • +
+
+
diff --git a/performance/tests/tribble/blog.liquid b/performance/tests/tribble/blog.liquid index 5277df6..ba9f52a 100644 --- a/performance/tests/tribble/blog.liquid +++ b/performance/tests/tribble/blog.liquid @@ -1,41 +1,41 @@ -
-
-

Post from our blog...

- {% paginate blog.articles by 20 %} - {% for article in blog.articles %} - -
-

{{ article.title }}

-
-
{{ article.created_at | date: "%b %d" }}
- {{ article.content }} -
-
+
+
+

Post from our blog...

+ {% paginate blog.articles by 20 %} + {% for article in blog.articles %} - {% endfor %} +
+

{{ article.title }}

+
+
{{ article.created_at | date: "%b %d" }}
+ {{ article.content }} +
+
-
- {{ paginate | default_pagination }} -
+ {% endfor %} - {% endpaginate %} -
- -
-

Why Shop With Us?

-
    -
  • -

    24 Hours

    -

    We're always here to help.

    -
  • -
  • -

    No Spam

    -

    We'll never share your info.

    -
  • -
  • -

    Secure Servers

    -

    Checkout is 256bit encrypted.

    -
  • -
-
-
\ No newline at end of file +
+ {{ paginate | default_pagination }} +
+ + {% endpaginate %} +
+ +
+

Why Shop With Us?

+
    +
  • +

    24 Hours

    +

    We're always here to help.

    +
  • +
  • +

    No Spam

    +

    We'll never share your info.

    +
  • +
  • +

    Secure Servers

    +

    Checkout is 256bit encrypted.

    +
  • +
+
+
diff --git a/performance/tests/tribble/cart.liquid b/performance/tests/tribble/cart.liquid index fb46fab..bdc5e83 100644 --- a/performance/tests/tribble/cart.liquid +++ b/performance/tests/tribble/cart.liquid @@ -1,134 +1,134 @@ - - -
. - {% if cart.item_count == 0 %} -

Your cart is currently empty.

- {% else %} - -

Your Cart ({{ cart.item_count }} {{ cart.item_count | pluralize: 'item', 'items' }}, {{cart.total_price | money_with_currency }} total)

- -
- -
- - - - - - - - - - {% for item in cart.items %} - - - - {% endfor %} -
- - - - - - - - -
{{ item.product.featured_image | product_img_url: 'thumb' | img_tag }}

{{ item.title }}

{{item.line_price | money }}Remove
-
- -
- -
- {{ pages.shopping-cart.content }} -
- -

- Order Total: {{cart.total_price | money_with_currency }} -

- -

- -

- - {% if additional_checkout_buttons %} -
-

- or -

- {{ content_for_additional_checkout_buttons }} -
- {% endif %} - -
- -
- -
- - {% endif %} - - - -

Other Products You Might Enjoy

- - -
-

Why Shop With Us?

-
    -
  • -

    24 Hours

    -

    We're always here to help.

    -
  • -
  • -

    No Spam

    -

    We'll never share your info.

    -
  • -
  • -

    Secure Servers

    -

    Checkout is 256bit encrypted.

    -
  • -
-
- -
- + + +
. + {% if cart.item_count == 0 %} +

Your cart is currently empty.

+ {% else %} + +

Your Cart ({{ cart.item_count }} {{ cart.item_count | pluralize: 'item', 'items' }}, {{cart.total_price | money_with_currency }} total)

+ +
+ +
+ + + + + + + + + + {% for item in cart.items %} + + + + {% endfor %} +
+ + + + + + + + +
{{ item.product.featured_image | product_img_url: 'thumb' | img_tag }}

{{ item.title }}

{{item.line_price | money }}Remove
+
+ +
+ +
+ {{ pages.shopping-cart.content }} +
+ +

+ Order Total: {{cart.total_price | money_with_currency }} +

+ +

+ +

+ + {% if additional_checkout_buttons %} +
+

- or -

+ {{ content_for_additional_checkout_buttons }} +
+ {% endif %} + +
+ +
+ +
+ + {% endif %} + + + +

Other Products You Might Enjoy

+ + +
+

Why Shop With Us?

+
    +
  • +

    24 Hours

    +

    We're always here to help.

    +
  • +
  • +

    No Spam

    +

    We'll never share your info.

    +
  • +
  • +

    Secure Servers

    +

    Checkout is 256bit encrypted.

    +
  • +
+
+ +
+ diff --git a/performance/tests/tribble/collection.liquid b/performance/tests/tribble/collection.liquid index defdf20..fd2fd01 100644 --- a/performance/tests/tribble/collection.liquid +++ b/performance/tests/tribble/collection.liquid @@ -1,70 +1,70 @@ -
-

{{ collection.title }}

- {% if collection.description.size > 0 %} -
{{ collection.description }}
- {% endif %} - - {% paginate collection.products by 8 %} - - - -
- {{ paginate | default_pagination }} -
- - -
-

Why Shop With Us?

-
    -
  • -

    24 Hours

    -

    We're always here to help.

    -
  • -
  • -

    No Spam

    -

    We'll never share your info.

    -
  • -
  • -

    Secure Servers

    -

    Checkout is 256bit encrypted.

    -
  • -
-
-
- -{% endpaginate %} +
+

{{ collection.title }}

+ {% if collection.description.size > 0 %} +
{{ collection.description }}
+ {% endif %} + + {% paginate collection.products by 8 %} + + + +
+ {{ paginate | default_pagination }} +
+ + +
+

Why Shop With Us?

+
    +
  • +

    24 Hours

    +

    We're always here to help.

    +
  • +
  • +

    No Spam

    +

    We'll never share your info.

    +
  • +
  • +

    Secure Servers

    +

    Checkout is 256bit encrypted.

    +
  • +
+
+
+ +{% endpaginate %} diff --git a/performance/tests/tribble/index.liquid b/performance/tests/tribble/index.liquid index 04594bd..551cf7c 100644 --- a/performance/tests/tribble/index.liquid +++ b/performance/tests/tribble/index.liquid @@ -1,94 +1,94 @@ -
-
-

Three Great Reasons You Should Shop With Us...

-
    -
  • -

    Free Shipping

    -

    On all orders over $25

    -
  • -
  • -

    Top Quality

    -

    Hand made in our shop

    -
  • -
  • -

    100% Guarantee

    -

    Any time, any reason

    -
  • -
-
-
- -
- -
{{pages.alert.content}}
- - - -
-
-

Why Shop With Us?

-
    -
  • -

    24 Hours

    -

    We're always here to help.

    -
  • -
  • -

    No Spam

    -

    We'll never share your info.

    -
  • -
  • -

    Save Energy

    -

    We're green, all the way.

    -
  • -
  • -

    Secure Servers

    -

    Checkout is 256bits encrypted.

    -
  • -
-
- -
-

Our Company

- {{pages.about-us.content | truncatewords: 49}} read more

-
-
- -
- +
+
+

Three Great Reasons You Should Shop With Us...

+
    +
  • +

    Free Shipping

    +

    On all orders over $25

    +
  • +
  • +

    Top Quality

    +

    Hand made in our shop

    +
  • +
  • +

    100% Guarantee

    +

    Any time, any reason

    +
  • +
+
+
+ +
+ +
{{pages.alert.content}}
+ + + +
+
+

Why Shop With Us?

+
    +
  • +

    24 Hours

    +

    We're always here to help.

    +
  • +
  • +

    No Spam

    +

    We'll never share your info.

    +
  • +
  • +

    Save Energy

    +

    We're green, all the way.

    +
  • +
  • +

    Secure Servers

    +

    Checkout is 256bits encrypted.

    +
  • +
+
+ +
+

Our Company

+ {{pages.about-us.content | truncatewords: 49}} read more

+
+
+ +
+ diff --git a/performance/tests/tribble/page.liquid b/performance/tests/tribble/page.liquid index 402e1fc..fa01097 100644 --- a/performance/tests/tribble/page.liquid +++ b/performance/tests/tribble/page.liquid @@ -1,56 +1,56 @@ -
- -
-
-

{{page.title}}

-
- {{page.content}} -
-
-
- - -

Featured Products

- -
- - - - +
+ +
+
+

{{page.title}}

+
+ {{page.content}} +
+
+
+ + +

Featured Products

+ +
+ + + + diff --git a/performance/tests/tribble/product.liquid b/performance/tests/tribble/product.liquid index 0a94bc5..f0a1bf6 100644 --- a/performance/tests/tribble/product.liquid +++ b/performance/tests/tribble/product.liquid @@ -1,116 +1,116 @@ -
-

{{ collection.title }} {{ product.title }}

- - -

Product Tags: - {% for tag in product.tags %} - {{ tag }} | - {% endfor %} -

- -
-
-

{{ product.title }}

-
-

{{ product.description }}

-
- - {% if product.available %} -
- -

Product Options:

- - - -
- -
- -
- -
- {% else %} -

Sold out!

-

Sorry, we're all out of this product. Check back often and order when it returns

- {% endif %} -
- -
- {% for image in product.images %} - - {% if forloop.first %} -
- {{product.title | escape }} -
- {% else %} - {% endif %} - {% endfor %} - -
    - {% for image in product.images %} - {% if forloop.first %} - {% else %} - -
  • - - {{product.title | escape }} - -
  • - {% endif %} - {% endfor %} -
-
-
- - - -
-

Why Shop With Us?

-
    -
  • -

    24 Hours

    -

    We're always here to help.

    -
  • -
  • -

    No Spam

    -

    We'll never share your info.

    -
  • -
  • -

    Secure Servers

    -

    Checkout is 256bit encrypted.

    -
  • -
-
- -
- - - - - \ No newline at end of file +
+

{{ collection.title }} {{ product.title }}

+ + +

Product Tags: + {% for tag in product.tags %} + {{ tag }} | + {% endfor %} +

+ +
+
+

{{ product.title }}

+
+

{{ product.description }}

+
+ + {% if product.available %} +
+ +

Product Options:

+ + + +
+ +
+ +
+ +
+ {% else %} +

Sold out!

+

Sorry, we're all out of this product. Check back often and order when it returns

+ {% endif %} +
+ +
+ {% for image in product.images %} + + {% if forloop.first %} +
+ {{product.title | escape }} +
+ {% else %} + {% endif %} + {% endfor %} + +
    + {% for image in product.images %} + {% if forloop.first %} + {% else %} + +
  • + + {{product.title | escape }} + +
  • + {% endif %} + {% endfor %} +
+
+
+ + + +
+

Why Shop With Us?

+
    +
  • +

    24 Hours

    +

    We're always here to help.

    +
  • +
  • +

    No Spam

    +

    We'll never share your info.

    +
  • +
  • +

    Secure Servers

    +

    Checkout is 256bit encrypted.

    +
  • +
+
+ +
+ + + + + diff --git a/performance/tests/tribble/search.liquid b/performance/tests/tribble/search.liquid index cda6d96..f509c74 100644 --- a/performance/tests/tribble/search.liquid +++ b/performance/tests/tribble/search.liquid @@ -2,50 +2,50 @@ -
-

Search Results

- {% if search.performed %} - - {% paginate search.results by 10 %} - - {% if search.results == empty %} -
Your search for "{{search.terms | escape}}" did not yield any results
- {% else %} +
+

Search Results

+ {% if search.performed %} + + {% paginate search.results by 10 %} + + {% if search.results == empty %} +
Your search for "{{search.terms | escape}}" did not yield any results
+ {% else %} -
    - {% for item in search.results %} -
  • -

    {{ item.title | link_to: item.url }}

    -

    {{ item.content | strip_html | truncatewords: 65 | highlight: search.terms }} ... view this item

    -
  • - {% endfor %} -
- {% endif %} - -
- {{ paginate | default_pagination }} -
+
    + {% for item in search.results %} +
  • +

    {{ item.title | link_to: item.url }}

    +

    {{ item.content | strip_html | truncatewords: 65 | highlight: search.terms }} ... view this item

    +
  • + {% endfor %} +
+ {% endif %} - -
-

Why Shop With Us?

-
    -
  • -

    24 Hours

    -

    We're always here to help.

    -
  • -
  • -

    No Spam

    -

    We'll never share your info.

    -
  • -
  • -

    Secure Servers

    -

    Checkout is 256bit encrypted.

    -
  • -
-
-
+
+ {{ paginate | default_pagination }} +
+ + +
+

Why Shop With Us?

+
    +
  • +

    24 Hours

    +

    We're always here to help.

    +
  • +
  • +

    No Spam

    +

    We'll never share your info.

    +
  • +
  • +

    Secure Servers

    +

    Checkout is 256bit encrypted.

    +
  • +
+
+
{% endpaginate %} -{% endif %} \ No newline at end of file +{% endif %} diff --git a/performance/tests/tribble/theme.liquid b/performance/tests/tribble/theme.liquid index 5176db4..c353c86 100644 --- a/performance/tests/tribble/theme.liquid +++ b/performance/tests/tribble/theme.liquid @@ -2,15 +2,15 @@ {{shop.name}} - {{page_title}} - + - {{ 'reset.css' | asset_url | stylesheet_tag }} - {{ 'style.css' | asset_url | stylesheet_tag }} - - {{ 'lightbox.css' | asset_url | stylesheet_tag }} + {{ 'reset.css' | asset_url | stylesheet_tag }} + {{ 'style.css' | asset_url | stylesheet_tag }} + + {{ 'lightbox.css' | asset_url | stylesheet_tag }} {{ 'prototype/1.6/prototype.js' | global_asset_url | script_tag }} {{ 'scriptaculous/1.8.2/scriptaculous.js' | global_asset_url | script_tag }} - {{ 'lightbox.js' | asset_url | script_tag }} + {{ 'lightbox.js' | asset_url | script_tag }} {{ 'option_selection.js' | shopify_asset_url | script_tag }} {{ content_for_header }} @@ -18,73 +18,73 @@
- -
-
-

Shopping Cart

-

- {% if cart.item_count == 0 %} - Your cart is currently empty - {% else %} - {{ cart.item_count }} {{ cart.item_count | pluralize: 'item', 'items' }} - Total: {{cart.total_price | money_with_currency }} - View Cart - {% endif %} -

-
- -
-

{{shop.name}}

-

Tribble: A Shopify Theme

- -
-
- - - - {{ content_for_layout }} - -
- \ No newline at end of file + diff --git a/performance/tests/vogue/article.liquid b/performance/tests/vogue/article.liquid index a2dea57..a7196fd 100644 --- a/performance/tests/vogue/article.liquid +++ b/performance/tests/vogue/article.liquid @@ -3,7 +3,7 @@

posted {{ article.created_at | date: "%Y %h" }} by {{ article.author }}

{{ article.content }} -
+ {% if blog.comments_enabled? %} @@ -17,18 +17,18 @@
{{ comment.content }}
- -
- Posted by {{ comment.author }} on {{ comment.created_at | date: "%B %d, %Y" }} + +
+ Posted by {{ comment.author }} on {{ comment.created_at | date: "%B %d, %Y" }}
- + {% endfor %} - + {% form article %}

Leave a comment

- + {% if form.posted_successfully? %} {% if blog.moderated? %} @@ -40,11 +40,11 @@
Successfully posted your comment.
{% endif %} {% endif %} - + {% if form.errors %}
Not all the fields have been filled out correctly!
{% endif %} - +
@@ -55,12 +55,12 @@
- + {% if blog.moderated? %}

comments have to be approved before showing up

- {% endif %} + {% endif %} {% endform %}
-{% endif %} \ No newline at end of file +{% endif %} diff --git a/performance/tests/vogue/blog.liquid b/performance/tests/vogue/blog.liquid index 63eee80..8ce5583 100644 --- a/performance/tests/vogue/blog.liquid +++ b/performance/tests/vogue/blog.liquid @@ -8,16 +8,16 @@

{{ article.title }}

- +

{% if blog.comments_enabled? %} {{ article.comments_count }} comments - — + — {% endif %} posted {{ article.created_at | date: "%Y %h" }} by {{ article.author }}

{{ article.content }} -
+ {% endfor %} @@ -29,4 +29,4 @@ -
\ No newline at end of file +
diff --git a/performance/tests/vogue/cart.liquid b/performance/tests/vogue/cart.liquid index c6a5e17..b997bd8 100644 --- a/performance/tests/vogue/cart.liquid +++ b/performance/tests/vogue/cart.liquid @@ -1,17 +1,17 @@

Shopping Cart

{% if cart.item_count == 0 %} -

Your shopping basket is empty. Perhaps a featured item below is of interest...

- - {% tablerow product in collections.frontpage.products cols: 3 limit: 12 %} - - - {% endtablerow %} - +

Your shopping basket is empty. Perhaps a featured item below is of interest...

+ + {% tablerow product in collections.frontpage.products cols: 3 limit: 12 %} + + + {% endtablerow %} + {% else %}
- - - - - - - - {% for item in cart.items %} - - - - - - - {% endfor %} -
Item DescriptionPriceQtyDeleteTotal
-
- {{ item.title | escape }} -
-
-

{{ item.title }}

- {{ item.product.description | strip_html | truncate: 120 }} -
-
{{ item.price | money }}{% if item.variant.compare_at_price > item.price %}
{{ item.variant.compare_at_price | money }}{% endif %}
Remove{{ item.line_price | money }}
-
-

Subtotal {{ cart.total_price | money }}

- - - {% if additional_checkout_buttons %} + + + + + + + + {% for item in cart.items %} + + + + + + + {% endfor %} +
Item DescriptionPriceQtyDeleteTotal
+
+ {{ item.title | escape }} +
+
+

{{ item.title }}

+ {{ item.product.description | strip_html | truncate: 120 }} +
+
{{ item.price | money }}{% if item.variant.compare_at_price > item.price %}
{{ item.variant.compare_at_price | money }}{% endif %}
Remove{{ item.line_price | money }}
+
+

Subtotal {{ cart.total_price | money }}

+ + + {% if additional_checkout_buttons %}

- or -

{{ content_for_additional_checkout_buttons }}
{% endif %} -
-{% endif %} \ No newline at end of file +
+{% endif %} diff --git a/performance/tests/vogue/collection.liquid b/performance/tests/vogue/collection.liquid index f17a3b9..e1fa4c0 100644 --- a/performance/tests/vogue/collection.liquid +++ b/performance/tests/vogue/collection.liquid @@ -1,19 +1,19 @@ {% paginate collection.products by 12 %}{% if collection.products.size == 0 %} - No products found in this collection.{% else %} -

{{ collection.title }}

- {{ collection.description }} - - {% tablerow product in collection.products cols: 3 %} - - - {% endtablerow %} - {% if paginate.pages > 1 %} -
- {{ paginate | default_pagination }} -
{% endif %}{% endif %} -{% endpaginate %} \ No newline at end of file + No products found in this collection.{% else %} +

{{ collection.title }}

+ {{ collection.description }} + + {% tablerow product in collection.products cols: 3 %} + + + {% endtablerow %} + {% if paginate.pages > 1 %} +
+ {{ paginate | default_pagination }} +
{% endif %}{% endif %} +{% endpaginate %} diff --git a/performance/tests/vogue/index.liquid b/performance/tests/vogue/index.liquid index d94fb95..34f5cf5 100644 --- a/performance/tests/vogue/index.liquid +++ b/performance/tests/vogue/index.liquid @@ -1,22 +1,22 @@ -
- {% assign article = pages.frontpage %} +
+ {% assign article = pages.frontpage %} {% if article.content != "" %} -

{{ article.title }}

- {{ article.content }} - {% else %} - In Admin > Blogs & Pages, create a page with the handle frontpage and it will show up here.
- {{ "Learn more about handles" | link_to "http://wiki.shopify.com/Handle" }} - {% endif %} -
+

{{ article.title }}

+ {{ article.content }} + {% else %} + In Admin > Blogs & Pages, create a page with the handle frontpage and it will show up here.
+ {{ "Learn more about handles" | link_to "http://wiki.shopify.com/Handle" }} + {% endif %} +
- - {% tablerow product in collections.frontpage.products cols: 3 limit: 12 %} - - - {% endtablerow %} - \ No newline at end of file + + {% tablerow product in collections.frontpage.products cols: 3 limit: 12 %} + + + {% endtablerow %} + diff --git a/performance/tests/vogue/page.liquid b/performance/tests/vogue/page.liquid index 95084e0..1ea6661 100644 --- a/performance/tests/vogue/page.liquid +++ b/performance/tests/vogue/page.liquid @@ -1,3 +1,3 @@ -

{{ page.title }}

- {{ page.content }} - \ No newline at end of file +

{{ page.title }}

+ {{ page.content }} + diff --git a/performance/tests/vogue/product.liquid b/performance/tests/vogue/product.liquid index 3019bdb..a9a0ddc 100644 --- a/performance/tests/vogue/product.liquid +++ b/performance/tests/vogue/product.liquid @@ -1,19 +1,19 @@
- {% for image in product.images %}{% if forloop.first %}
- {{ product.title | escape }} -
{% else %} -
- {{ product.title | escape }} -
{% endif %}{% endfor %} + {% for image in product.images %}{% if forloop.first %}
+ {{ product.title | escape }} +
{% else %} +
+ {{ product.title | escape }} +
{% endif %}{% endfor %}
-

{{ product.title }}

- {{ product.description }} - - {% if product.available %} -
+

{{ product.title }}

+ {{ product.description }} -
+ {% if product.available %} + + +
-
+
-
- {% else %} -

This product is temporarily unavailable

- {% endif %} + + {% else %} +

This product is temporarily unavailable

+ {% endif %} -
- Continue Shopping
- Browse more {{ product.type | link_to_type }} or additional {{ product.vendor | link_to_vendor }} products. -
+
+ Continue Shopping
+ Browse more {{ product.type | link_to_type }} or additional {{ product.vendor | link_to_vendor }} products. +
@@ -48,14 +48,14 @@ } else { // variant doesn't exist $('purchase').addClass('disabled'); // set add-to-cart button to unavailable class - $('purchase').disabled = true; // disable add-to-cart button + $('purchase').disabled = true; // disable add-to-cart button $('price-field').innerHTML = (variant) ? "Sold Out" : "Unavailable"; // update price-field message } }; // initialize multi selector for product window.addEvent('domready', function() { - new Shopify.OptionSelectors("product-select", { product: {{ product | json }}, onVariantSelected: selectCallback }); + new Shopify.OptionSelectors("product-select", { product: {{ product | json }}, onVariantSelected: selectCallback }); }); --> diff --git a/performance/tests/vogue/theme.liquid b/performance/tests/vogue/theme.liquid index 4d21c1d..914c03f 100644 --- a/performance/tests/vogue/theme.liquid +++ b/performance/tests/vogue/theme.liquid @@ -22,101 +22,101 @@
- +
-
-
{% if template == "search" %} -

Search Results

{% endif %} - {{ content_for_layout }} -
{% if template != "cart" %}{% if template != "product" %} +
+
{% if template == "search" %} +

Search Results

{% endif %} + {{ content_for_layout }} +
{% if template != "cart" %}{% if template != "product" %} -
- {% if template == "index" %} - {% if blogs.news.articles.size > 1 %} - Subscribe -

More news

- - {% endif %} - {% endif %} - - {% if template == "collection" %} -

Collection Tags

-
{% if collection.tags.size == 0 %} - No tags found.{% else %} - {% for tag in collection.tags %}{% if current_tags contains tag %} {{ tag | highlight_active_tag | link_to_remove_tag: tag }}{% else %} {{ tag | highlight_active_tag | link_to_add_tag: tag }}{% endif %}{% unless forloop.last %}, {% endunless %}{% endfor %}{% endif %} -
- {% endif %} +
+ {% if template == "index" %} + {% if blogs.news.articles.size > 1 %} + Subscribe +

More news

+ + {% endif %} + {% endif %} + + {% if template == "collection" %} +

Collection Tags

+
{% if collection.tags.size == 0 %} + No tags found.{% else %} + {% for tag in collection.tags %}{% if current_tags contains tag %} {{ tag | highlight_active_tag | link_to_remove_tag: tag }}{% else %} {{ tag | highlight_active_tag | link_to_add_tag: tag }}{% endif %}{% unless forloop.last %}, {% endunless %}{% endfor %}{% endif %} +
+ {% endif %}

Navigation

- - {% if template != "page" %} -

Featured Products

- - {% endif %} -
{% endif %}{% endif %} -
+
  • {{ link.title }}
  • + {% endfor %} + + + {% if template != "page" %} +

    Featured Products

    + + {% endif %} +
    {% endif %}{% endif %} +
    - + - \ No newline at end of file + diff --git a/performance/theme_runner.rb b/performance/theme_runner.rb index 802411a..9c15a3d 100644 --- a/performance/theme_runner.rb +++ b/performance/theme_runner.rb @@ -1,10 +1,10 @@ # This profiler run simulates Shopify. # We are looking in the tests directory for liquid files and render them within the designated layout file. -# We will also export a substantial database to liquid which the templates can render values of. +# We will also export a substantial database to liquid which the templates can render values of. # All this is to make the benchmark as non syntetic as possible. All templates and tests are lifted from -# direct real-world usage and the profiler measures code that looks very similar to the way it looks in -# Shopify which is likely the biggest user of liquid in the world which something to the tune of several -# million Template#render calls a day. +# direct real-world usage and the profiler measures code that looks very similar to the way it looks in +# Shopify which is likely the biggest user of liquid in the world which something to the tune of several +# million Template#render calls a day. require 'rubygems' require 'active_support' @@ -26,8 +26,8 @@ class ThemeRunner end end - # Load all templates into memory, do this now so that - # we don't profile IO. + # Load all templates into memory, do this now so that + # we don't profile IO. def initialize @tests = Dir[File.dirname(__FILE__) + '/tests/**/*.liquid'].collect do |test| next if File.basename(test) == 'theme.liquid' @@ -36,7 +36,7 @@ class ThemeRunner [File.read(test), (File.file?(theme_path) ? File.read(theme_path) : nil), test] end.compact - end + end def compile # Dup assigns because will make some changes to them @@ -59,7 +59,7 @@ class ThemeRunner # Compute page_tempalte outside of profiler run, uninteresting to profiler page_template = File.basename(template_name, File.extname(template_name)) compile_and_render(liquid, layout, assigns, page_template, template_name) - + end end @@ -87,11 +87,11 @@ class ThemeRunner RubyProf.resume html = compile_and_render(liquid, layout, assigns, page_template, template_name) RubyProf.pause - + # return the result and the MD5 of the content, this can be used to detect regressions between liquid version $stdout.puts "* rendered template %s, content: %s" % [template_name, Digest::MD5.hexdigest(html)] - + # Uncomment to dump html files to /tmp so that you can inspect for errors # File.open("/tmp/#{File.basename(template_name)}.html", "w+") { |fp| fp < %w{foo bar baz}) end - + def test_assign_with_filter assert_template_result('.bar.', '{% assign foo = values | split: "," %}.{{ foo[1] }}.', diff --git a/test/liquid/condition_test.rb b/test/liquid/condition_test.rb index 52a0e03..3e57897 100644 --- a/test/liquid/condition_test.rb +++ b/test/liquid/condition_test.rb @@ -124,4 +124,4 @@ class ConditionTest < Test::Unit::TestCase assert !Condition.new(left, op, right).evaluate(@context || Liquid::Context.new), "Evaluated true: #{left} #{op} #{right}" end -end # ConditionTest \ No newline at end of file +end # ConditionTest diff --git a/test/liquid/output_test.rb b/test/liquid/output_test.rb index c849c9d..e545a41 100644 --- a/test/liquid/output_test.rb +++ b/test/liquid/output_test.rb @@ -49,7 +49,7 @@ class OutputTest < Test::Unit::TestCase expected = %| good bad good | assert_equal expected, Template.parse(text).render(@assigns) - end + end def test_variable_piping text = %( {{ car.gm | make_funny }} ) @@ -113,4 +113,4 @@ class OutputTest < Test::Unit::TestCase assert_equal expected, Template.parse(text).render(@assigns, :filters => [FunnyFilter]) end -end # OutputTest \ No newline at end of file +end # OutputTest diff --git a/test/liquid/tags/for_tag_test.rb b/test/liquid/tags/for_tag_test.rb index 75b71a6..9186d3f 100644 --- a/test/liquid/tags/for_tag_test.rb +++ b/test/liquid/tags/for_tag_test.rb @@ -187,16 +187,16 @@ HERE expected = "1234" assert_template_result(expected,markup,assigns) - # tests to ensure it only breaks out of the local for loop + # tests to ensure it only breaks out of the local for loop # and not all of them. assigns = {'array' => [[1,2],[3,4],[5,6]] } - markup = '{% for item in array %}' + - '{% for i in item %}' + - '{% if i == 1 %}' + - '{% break %}' + - '{% endif %}' + - '{{ i }}' + - '{% endfor %}' + + markup = '{% for item in array %}' + + '{% for i in item %}' + + '{% if i == 1 %}' + + '{% break %}' + + '{% endif %}' + + '{{ i }}' + + '{% endfor %}' + '{% endfor %}' expected = '3456' assert_template_result(expected, markup, assigns) @@ -213,15 +213,15 @@ HERE markup = '{% for i in array.items %}{% continue %}{% endfor %}' expected = "" - assert_template_result(expected,markup,assigns) + assert_template_result(expected,markup,assigns) markup = '{% for i in array.items %}{{ i }}{% continue %}{% endfor %}' expected = "12345" - assert_template_result(expected,markup,assigns) + assert_template_result(expected,markup,assigns) markup = '{% for i in array.items %}{% continue %}{{ i }}{% endfor %}' expected = "" - assert_template_result(expected,markup,assigns) + assert_template_result(expected,markup,assigns) markup = '{% for i in array.items %}{% if i > 3 %}{% continue %}{% endif %}{{ i }}{% endfor %}' expected = "123" @@ -233,13 +233,13 @@ HERE # tests to ensure it only continues the local for loop and not all of them. assigns = {'array' => [[1,2],[3,4],[5,6]] } - markup = '{% for item in array %}' + - '{% for i in item %}' + - '{% if i == 1 %}' + - '{% continue %}' + - '{% endif %}' + - '{{ i }}' + - '{% endfor %}' + + markup = '{% for item in array %}' + + '{% for i in item %}' + + '{% if i == 1 %}' + + '{% continue %}' + + '{% endif %}' + + '{{ i }}' + + '{% endfor %}' + '{% endfor %}' expected = '23456' assert_template_result(expected, markup, assigns) @@ -253,28 +253,28 @@ HERE def test_for_tag_string # ruby 1.8.7 "String".each => Enumerator with single "String" element. - # ruby 1.9.3 no longer supports .each on String though we mimic + # ruby 1.9.3 no longer supports .each on String though we mimic # the functionality for backwards compatibility - assert_template_result('test string', - '{%for val in string%}{{val}}{%endfor%}', + assert_template_result('test string', + '{%for val in string%}{{val}}{%endfor%}', 'string' => "test string") - assert_template_result('test string', - '{%for val in string limit:1%}{{val}}{%endfor%}', + assert_template_result('test string', + '{%for val in string limit:1%}{{val}}{%endfor%}', 'string' => "test string") - assert_template_result('val-string-1-1-0-1-0-true-true-test string', - '{%for val in string%}' + - '{{forloop.name}}-' + - '{{forloop.index}}-' + - '{{forloop.length}}-' + - '{{forloop.index0}}-' + - '{{forloop.rindex}}-' + - '{{forloop.rindex0}}-' + - '{{forloop.first}}-' + - '{{forloop.last}}-' + - '{{val}}{%endfor%}', + assert_template_result('val-string-1-1-0-1-0-true-true-test string', + '{%for val in string%}' + + '{{forloop.name}}-' + + '{{forloop.index}}-' + + '{{forloop.length}}-' + + '{{forloop.index0}}-' + + '{{forloop.rindex}}-' + + '{{forloop.rindex0}}-' + + '{{forloop.first}}-' + + '{{forloop.last}}-' + + '{{val}}{%endfor%}', 'string' => "test string") end diff --git a/test/liquid/tags/html_tag_test.rb b/test/liquid/tags/html_tag_test.rb index 0815ba1..d7252a1 100644 --- a/test/liquid/tags/html_tag_test.rb +++ b/test/liquid/tags/html_tag_test.rb @@ -42,11 +42,11 @@ class HtmlTagTest < Test::Unit::TestCase def test_quoted_fragment assert_template_result("\n 1 2 3 \n 4 5 6 \n", "{% tablerow n in collections.frontpage cols:3%} {{n}} {% endtablerow %}", - 'collections' => {'frontpage' => [1,2,3,4,5,6]}) + 'collections' => {'frontpage' => [1,2,3,4,5,6]}) assert_template_result("\n 1 2 3 \n 4 5 6 \n", "{% tablerow n in collections['frontpage'] cols:3%} {{n}} {% endtablerow %}", 'collections' => {'frontpage' => [1,2,3,4,5,6]}) - + end def test_enumerable_drop