diff --git a/.rubocop.yml b/.rubocop.yml
new file mode 100644
index 0000000..2270ee9
--- /dev/null
+++ b/.rubocop.yml
@@ -0,0 +1,92 @@
+inherit_from: ./.rubocop_todo.yml
+
+AllCops:
+ Exclude:
+ - 'performance/shopify/*'
+
+Lint/AssignmentInCondition:
+ Enabled: false
+
+Lint/UnusedBlockArgument:
+ Enabled: false
+
+Lint/EndAlignment:
+ AlignWith: variable
+
+Style/SingleLineBlockParams:
+ Enabled: false
+
+Style/StringLiteralsInInterpolation:
+ Enabled: false
+
+Style/SignalException:
+ Enabled: false
+
+Style/StringLiterals:
+ Enabled: false
+
+Style/BracesAroundHashParameters:
+ Enabled: false
+
+Style/NumericLiterals:
+ Enabled: false
+
+Style/SpaceInsideBrackets:
+ Enabled: false
+
+Style/SpaceBeforeBlockBraces:
+ Enabled: false
+
+Style/Documentation:
+ Enabled: false
+
+Style/ClassAndModuleChildren:
+ Enabled: false
+
+Style/TrailingComma:
+ Enabled: false
+
+Style/IndentHash:
+ EnforcedStyle: consistent
+
+Style/FormatString:
+ Enabled: false
+
+Style/AlignParameters:
+ EnforcedStyle: with_fixed_indentation
+
+Style/MultilineOperationIndentation:
+ EnforcedStyle: indented
+
+Style/IfUnlessModifier:
+ Enabled: false
+
+Style/RaiseArgs:
+ Enabled: false
+
+Style/DeprecatedHashMethods:
+ Enabled: false
+
+Style/RegexpLiteral:
+ Enabled: false
+
+Style/SymbolLiteral:
+ Enabled: false
+
+Performance/Count:
+ Enabled: false
+
+Style/ConstantName:
+ Enabled: false
+
+Style/CaseIndentation:
+ Enabled: false
+
+Style/ClassVars:
+ Enabled: false
+
+Style/PerlBackrefs:
+ Enabled: false
+
+Style/WordArray:
+ Enabled: false
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
new file mode 100644
index 0000000..800c726
--- /dev/null
+++ b/.rubocop_todo.yml
@@ -0,0 +1,142 @@
+# This configuration was generated by `rubocop --auto-gen-config`
+# on 2015-05-13 19:54:01 +0000 using RuboCop version 0.31.0.
+# The point is for the user to remove these configuration records
+# one by one as the offenses are removed from the code base.
+# Note that changes in the inspected code, or installation of new
+# versions of RuboCop, may require this file to be generated again.
+
+# Offense count: 2
+Lint/AmbiguousOperator:
+ Enabled: false
+
+# Offense count: 2
+Lint/AmbiguousRegexpLiteral:
+ Enabled: false
+
+# Offense count: 1
+Lint/Eval:
+ Enabled: false
+
+# Offense count: 4
+Lint/ParenthesesAsGroupedExpression:
+ Enabled: false
+
+# Offense count: 3
+# Cop supports --auto-correct.
+Lint/UnusedMethodArgument:
+ Enabled: false
+
+# Offense count: 1
+Lint/UselessAccessModifier:
+ Enabled: false
+
+# Offense count: 6
+Lint/UselessAssignment:
+ Enabled: false
+
+# Offense count: 51
+Metrics/AbcSize:
+ Max: 59
+
+# Offense count: 2
+Metrics/BlockNesting:
+ Max: 6
+
+# Offense count: 16
+# Configuration parameters: CountComments.
+Metrics/ClassLength:
+ Max: 304
+
+# Offense count: 10
+Metrics/CyclomaticComplexity:
+ Max: 15
+
+# Offense count: 547
+# Configuration parameters: AllowURI, URISchemes.
+Metrics/LineLength:
+ Max: 294
+
+# Offense count: 76
+# Configuration parameters: CountComments.
+Metrics/MethodLength:
+ Max: 46
+
+# Offense count: 1
+# Configuration parameters: CountComments.
+Metrics/ModuleLength:
+ Max: 216
+
+# Offense count: 6
+Metrics/PerceivedComplexity:
+ Max: 13
+
+# Offense count: 1
+Style/AccessorMethodName:
+ Enabled: false
+
+# Offense count: 2
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+Style/AndOr:
+ Enabled: false
+
+# Offense count: 2
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, SupportedStyles, ProceduralMethods, FunctionalMethods, IgnoredMethods.
+Style/BlockDelimiters:
+ Enabled: false
+
+# Offense count: 1
+Style/DoubleNegation:
+ Enabled: false
+
+# Offense count: 1
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+Style/EmptyLinesAroundClassBody:
+ Enabled: false
+
+# Offense count: 2
+# Configuration parameters: MinBodyLength.
+Style/GuardClause:
+ Enabled: false
+
+# Offense count: 1
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, SupportedStyles, UseHashRocketsWithSymbolValues.
+Style/HashSyntax:
+ Enabled: false
+
+# Offense count: 13
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+Style/MethodName:
+ Enabled: false
+
+# Offense count: 1
+Style/MultilineBlockChain:
+ Enabled: false
+
+# Offense count: 3
+# Configuration parameters: EnforcedStyle, MinBodyLength, SupportedStyles.
+Style/Next:
+ Enabled: false
+
+# Offense count: 3
+# Configuration parameters: NamePrefix, NamePrefixBlacklist.
+Style/PredicateName:
+ Enabled: false
+
+# Offense count: 1
+Style/RescueModifier:
+ Enabled: false
+
+# Offense count: 7
+# Cop supports --auto-correct.
+# Configuration parameters: AllowAsExpressionSeparator.
+Style/Semicolon:
+ Enabled: false
+
+# Offense count: 3
+# Cop supports --auto-correct.
+Style/SpecialGlobalVars:
+ Enabled: false
diff --git a/Gemfile b/Gemfile
index 2952419..5f22d02 100644
--- a/Gemfile
+++ b/Gemfile
@@ -6,4 +6,5 @@ gem 'stackprof', platforms: :mri_21
group :test do
gem 'spy', '0.4.1'
gem 'benchmark-ips'
+ gem 'rubocop'
end
diff --git a/Rakefile b/Rakefile
index 6296027..fd86697 100755
--- a/Rakefile
+++ b/Rakefile
@@ -3,7 +3,7 @@ require 'rake/testtask'
$LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
require "liquid/version"
-task :default => 'test'
+task default: [:rubocop, :test]
desc 'run test suite with default parser'
Rake::TestTask.new(:base_test) do |t|
@@ -18,6 +18,11 @@ task :warn_test do
Rake::Task['base_test'].invoke
end
+task :rubocop do
+ require 'rubocop/rake_task'
+ RuboCop::RakeTask.new
+end
+
desc 'runs test suite with both strict and lax parsers'
task :test do
ENV['LIQUID_PARSER_MODE'] = 'lax'
@@ -27,16 +32,16 @@ task :test do
Rake::Task['base_test'].invoke
end
-task :gem => :build
+task gem: :build
task :build do
system "gem build liquid.gemspec"
end
-task :install => :build do
+task install: :build do
system "gem install liquid-#{Liquid::VERSION}.gem"
end
-task :release => :build do
+task release: :build do
system "git tag -a v#{Liquid::VERSION} -m 'Tagging #{Liquid::VERSION}'"
system "git push --tags"
system "gem push liquid-#{Liquid::VERSION}.gem"
@@ -44,7 +49,6 @@ task :release => :build do
end
namespace :benchmark do
-
desc "Run the liquid benchmark with lax parsing"
task :run do
ruby "./performance/benchmark.rb lax"
@@ -56,9 +60,7 @@ namespace :benchmark do
end
end
-
namespace :profile do
-
desc "Run the liquid profile/performance coverage"
task :run do
ruby "./performance/profile.rb"
@@ -68,7 +70,6 @@ namespace :profile do
task :strict do
ruby "./performance/profile.rb strict"
end
-
end
desc "Run example"
diff --git a/example/server/example_servlet.rb b/example/server/example_servlet.rb
index 971e9c5..dbc7a4b 100644
--- a/example/server/example_servlet.rb
+++ b/example/server/example_servlet.rb
@@ -4,7 +4,7 @@ module ProductsFilter
end
def prettyprint(text)
- text.gsub( /\*(.*)\*/, '\1' )
+ text.gsub(/\*(.*)\*/, '\1')
end
def count(array)
@@ -17,30 +17,28 @@ module ProductsFilter
end
class Servlet < LiquidServlet
-
def index
{ 'date' => Time.now }
end
def products
- { 'products' => products_list, 'more_products' => more_products_list, 'description' => description, 'section' => 'Snowboards', 'cool_products' => true}
+ { 'products' => products_list, 'more_products' => more_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'}]
+ [{ '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 more_products_list
- [{'name' => 'Arbor Catalyst', 'price' => 39900, 'description' => 'the *arbor catalyst* is an advanced drop-through for freestyle and flatground performance and versatility' },
- {'name' => 'Arbor Fish', 'price' => 40000, 'description' => 'the *arbor fish* is a compact pin that features an extended wheelbase and time-honored teardrop shape'}]
+ [{ 'name' => 'Arbor Catalyst', 'price' => 39900, 'description' => 'the *arbor catalyst* is an advanced drop-through for freestyle and flatground performance and versatility' },
+ { 'name' => 'Arbor Fish', 'price' => 40000, 'description' => 'the *arbor fish* is a compact pin that features an extended wheelbase and time-honored teardrop shape' }]
end
def description
"List of Products ~ This is a list of products with price and description."
end
-
end
diff --git a/example/server/server.rb b/example/server/server.rb
index e56edbd..703b361 100644
--- a/example/server/server.rb
+++ b/example/server/server.rb
@@ -6,7 +6,7 @@ require_relative 'liquid_servlet'
require_relative 'example_servlet'
# Setup webrick
-server = WEBrick::HTTPServer.new( :Port => ARGV[1] || 3000 )
+server = WEBrick::HTTPServer.new(Port: ARGV[1] || 3000)
server.mount('/', Servlet)
trap("INT"){ server.shutdown }
server.start
diff --git a/lib/liquid/block.rb b/lib/liquid/block.rb
index e6db869..eaccd04 100644
--- a/lib/liquid/block.rb
+++ b/lib/liquid/block.rb
@@ -35,17 +35,17 @@ module Liquid
all_warnings
end
- def unknown_tag(tag, params, tokens)
+ def unknown_tag(tag, _params, _tokens)
case tag
when 'else'.freeze
raise SyntaxError.new(options[:locale].t("errors.syntax.unexpected_else".freeze,
- :block_name => block_name))
+ block_name: block_name))
when 'end'.freeze
raise SyntaxError.new(options[:locale].t("errors.syntax.invalid_delimiter".freeze,
- :block_name => block_name,
- :block_delimiter => block_delimiter))
+ block_name: block_name,
+ block_delimiter: block_delimiter))
else
- raise SyntaxError.new(options[:locale].t("errors.syntax.unknown_tag".freeze, :tag => tag))
+ raise SyntaxError.new(options[:locale].t("errors.syntax.unknown_tag".freeze, tag: tag))
end
end
@@ -65,7 +65,7 @@ module Liquid
return false if end_tag_name == block_delimiter
unless end_tag_name
- raise SyntaxError.new(@options[:locale].t("errors.syntax.tag_never_closed".freeze, :block_name => block_name))
+ raise SyntaxError.new(@options[:locale].t("errors.syntax.tag_never_closed".freeze, block_name: block_name))
end
# this tag is not registered with the system
diff --git a/lib/liquid/block_body.rb b/lib/liquid/block_body.rb
index 371e058..66eaffa 100644
--- a/lib/liquid/block_body.rb
+++ b/lib/liquid/block_body.rb
@@ -79,7 +79,7 @@ module Liquid
# If we get an Interrupt that means the block must stop processing. An
# Interrupt is any command that stops block execution such as {% break %}
# or {% continue %}
- if token.is_a?(Continue) or token.is_a?(Break)
+ if token.is_a?(Continue) || token.is_a?(Break)
context.push_interrupt(token.interrupt)
break
end
@@ -121,11 +121,11 @@ module Liquid
end
def raise_missing_tag_terminator(token, options)
- raise SyntaxError.new(options[:locale].t("errors.syntax.tag_termination".freeze, :token => token, :tag_end => TagEnd.inspect))
+ raise SyntaxError.new(options[:locale].t("errors.syntax.tag_termination".freeze, token: token, tag_end: TagEnd.inspect))
end
def raise_missing_variable_terminator(token, options)
- raise SyntaxError.new(options[:locale].t("errors.syntax.variable_termination".freeze, :token => token, :tag_end => VariableEnd.inspect))
+ raise SyntaxError.new(options[:locale].t("errors.syntax.variable_termination".freeze, token: token, tag_end: VariableEnd.inspect))
end
end
end
diff --git a/lib/liquid/condition.rb b/lib/liquid/condition.rb
index 33e829f..c76376a 100644
--- a/lib/liquid/condition.rb
+++ b/lib/liquid/condition.rb
@@ -8,16 +8,16 @@ module Liquid
#
class Condition #:nodoc:
@@operators = {
- '=='.freeze => lambda { |cond, left, right| cond.send(:equal_variables, left, right) },
- '!='.freeze => lambda { |cond, left, right| !cond.send(:equal_variables, left, right) },
- '<>'.freeze => lambda { |cond, left, right| !cond.send(:equal_variables, left, right) },
+ '=='.freeze => ->(cond, left, right) { cond.send(:equal_variables, left, right) },
+ '!='.freeze => ->(cond, left, right) { !cond.send(:equal_variables, left, right) },
+ '<>'.freeze => ->(cond, left, right) { !cond.send(:equal_variables, left, right) },
'<'.freeze => :<,
'>'.freeze => :>,
'>='.freeze => :>=,
'<='.freeze => :<=,
- 'contains'.freeze => lambda { |cond, left, right|
+ 'contains'.freeze => lambda do |cond, left, right|
left && right && left.respond_to?(:include?) ? left.include?(right) : false
- }
+ end
}
def self.operators
@@ -96,7 +96,7 @@ module Liquid
# If the operator is empty this means that the decision statement is just
# a single variable. We can just poll this variable from the context and
# return this as the result.
- return context.evaluate(left) if op == nil
+ return context.evaluate(left) if op.nil?
left = context.evaluate(left)
right = context.evaluate(right)
@@ -105,27 +105,23 @@ module Liquid
if operation.respond_to?(:call)
operation.call(self, left, right)
- elsif left.respond_to?(operation) and right.respond_to?(operation)
+ elsif left.respond_to?(operation) && right.respond_to?(operation)
begin
left.send(operation, right)
rescue ::ArgumentError => e
raise Liquid::ArgumentError.new(e.message)
end
- else
- nil
end
end
end
-
class ElseCondition < Condition
def else?
true
end
- def evaluate(context)
+ def evaluate(_context)
true
end
end
-
end
diff --git a/lib/liquid/context.rb b/lib/liquid/context.rb
index e93dcba..3314eee 100644
--- a/lib/liquid/context.rb
+++ b/lib/liquid/context.rb
@@ -1,5 +1,4 @@
module Liquid
-
# Context keeps the variable stack and resolves variables, as well as keywords
#
# context['variable'] = 'testing'
@@ -63,8 +62,7 @@ module Liquid
@interrupts.pop
end
-
- def handle_error(e, token=nil)
+ def handle_error(e, token = nil)
if e.is_a?(Liquid::Error)
e.set_line_number_from_token(token)
end
@@ -79,7 +77,7 @@ module Liquid
end
# Push new local scope on the stack. use Context#stack instead
- def push(new_scope={})
+ def push(new_scope = {})
@scopes.unshift(new_scope)
raise StackLevelError, "Nesting too deep".freeze if @scopes.length > 100
end
@@ -103,7 +101,7 @@ module Liquid
# end
#
# context['var] #=> nil
- def stack(new_scope=nil)
+ def stack(new_scope = nil)
old_stack_used = @this_stack_used
if new_scope
push(new_scope)
@@ -153,7 +151,6 @@ module Liquid
# Fetches an object starting at the local scope and then moving up the hierachy
def find_variable(key)
-
# This was changed from find() to find_index() because this is a very hot
# path and find_index() is optimized in MRI to reduce object allocation
index = @scopes.find_index { |s| s.has_key?(key) }
@@ -171,13 +168,13 @@ module Liquid
end
end
- scope ||= @environments.last || @scopes.last
- variable ||= lookup_and_evaluate(scope, key)
+ scope ||= @environments.last || @scopes.last
+ variable ||= lookup_and_evaluate(scope, key)
variable = variable.to_liquid
variable.context = self if variable.respond_to?(:context=)
- return variable
+ variable
end
def lookup_and_evaluate(obj, key)
@@ -189,15 +186,16 @@ module Liquid
end
private
- def squash_instance_assigns_with_environments
- @scopes.last.each_key do |k|
- @environments.each do |env|
- if env.has_key?(k)
- scopes.last[k] = lookup_and_evaluate(env, k)
- break
- end
+
+ def squash_instance_assigns_with_environments
+ @scopes.last.each_key do |k|
+ @environments.each do |env|
+ if env.has_key?(k)
+ scopes.last[k] = lookup_and_evaluate(env, k)
+ break
end
end
- end # squash_instance_assigns_with_environments
+ end
+ end # squash_instance_assigns_with_environments
end # Context
end # Liquid
diff --git a/lib/liquid/document.rb b/lib/liquid/document.rb
index c5709cb..7ecced6 100644
--- a/lib/liquid/document.rb
+++ b/lib/liquid/document.rb
@@ -15,9 +15,9 @@ module Liquid
def unknown_tag(tag, options)
case tag
when 'else'.freeze, 'end'.freeze
- raise SyntaxError.new(options[:locale].t("errors.syntax.unexpected_outer_tag".freeze, :tag => tag))
+ raise SyntaxError.new(options[:locale].t("errors.syntax.unexpected_outer_tag".freeze, tag: tag))
else
- raise SyntaxError.new(options[:locale].t("errors.syntax.unknown_tag".freeze, :tag => tag))
+ raise SyntaxError.new(options[:locale].t("errors.syntax.unknown_tag".freeze, tag: tag))
end
end
end
diff --git a/lib/liquid/drop.rb b/lib/liquid/drop.rb
index 58d07a0..203f76e 100644
--- a/lib/liquid/drop.rb
+++ b/lib/liquid/drop.rb
@@ -1,7 +1,6 @@
require 'set'
module Liquid
-
# A drop in liquid is a class which allows you to export DOM like things to liquid.
# Methods of drops are callable.
# The main use for liquid drops is to implement lazy loaded objects.
@@ -27,7 +26,7 @@ module Liquid
EMPTY_STRING = ''.freeze
# Catch all for the method
- def before_method(method)
+ def before_method(_method)
nil
end
@@ -40,7 +39,7 @@ module Liquid
end
end
- def has_key?(name)
+ def has_key?(_name)
true
end
@@ -56,13 +55,13 @@ module Liquid
self.class.name
end
- alias :[] :invoke_drop
+ alias_method :[], :invoke_drop
private
# Check for method existence without invoking respond_to?, which creates symbols
def self.invokable?(method_name)
- self.invokable_methods.include?(method_name.to_s)
+ invokable_methods.include?(method_name.to_s)
end
def self.invokable_methods
diff --git a/lib/liquid/errors.rb b/lib/liquid/errors.rb
index 04b0fa6..feb4262 100644
--- a/lib/liquid/errors.rb
+++ b/lib/liquid/errors.rb
@@ -3,7 +3,7 @@ module Liquid
attr_accessor :line_number
attr_accessor :markup_context
- def to_s(with_prefix=true)
+ def to_s(with_prefix = true)
str = ""
str << message_prefix if with_prefix
str << super()
@@ -18,7 +18,7 @@ module Liquid
def set_line_number_from_token(token)
return unless token.respond_to?(:line_number)
- return if self.line_number
+ return if line_number
self.line_number = token.line_number
end
@@ -26,7 +26,7 @@ module Liquid
if e.is_a?(Liquid::Error)
e.to_s
else
- "Liquid error: #{e.to_s}"
+ "Liquid error: #{e}"
end
end
diff --git a/lib/liquid/expression.rb b/lib/liquid/expression.rb
index 3c8a585..73624a8 100644
--- a/lib/liquid/expression.rb
+++ b/lib/liquid/expression.rb
@@ -28,6 +28,5 @@ module Liquid
end
end
end
-
end
end
diff --git a/lib/liquid/file_system.rb b/lib/liquid/file_system.rb
index 6c4396b..8e71f44 100644
--- a/lib/liquid/file_system.rb
+++ b/lib/liquid/file_system.rb
@@ -14,7 +14,7 @@ module Liquid
# This will parse the template with a LocalFileSystem implementation rooted at 'template_path'.
class BlankFileSystem
# Called by Liquid to retrieve a template file
- def read_template_file(template_path)
+ def read_template_file(_template_path)
raise FileSystemError, "This liquid context does not allow includes."
end
end
@@ -51,7 +51,7 @@ module Liquid
def read_template_file(template_path)
full_path = full_path(template_path)
- raise FileSystemError, "No such template '#{template_path}'" unless File.exists?(full_path)
+ raise FileSystemError, "No such template '#{template_path}'" unless File.exist?(full_path)
File.read(full_path)
end
diff --git a/lib/liquid/i18n.rb b/lib/liquid/i18n.rb
index 5d538b7..3657c22 100644
--- a/lib/liquid/i18n.rb
+++ b/lib/liquid/i18n.rb
@@ -22,6 +22,7 @@ module Liquid
end
private
+
def interpolate(name, vars)
name.gsub(/%\{(\w+)\}/) {
# raise TranslationError, "Undefined key #{$1} for interpolation in translation #{name}" unless vars[$1.to_sym]
diff --git a/lib/liquid/interrupts.rb b/lib/liquid/interrupts.rb
index 6ff01ac..41359d7 100644
--- a/lib/liquid/interrupts.rb
+++ b/lib/liquid/interrupts.rb
@@ -1,10 +1,9 @@
module Liquid
-
# An interrupt is any command that breaks processing of a block (ex: a for loop).
class Interrupt
attr_reader :message
- def initialize(message=nil)
+ def initialize(message = nil)
@message = message || "interrupt".freeze
end
end
diff --git a/lib/liquid/lexer.rb b/lib/liquid/lexer.rb
index 4b724b1..b9f2422 100644
--- a/lib/liquid/lexer.rb
+++ b/lib/liquid/lexer.rb
@@ -27,7 +27,7 @@ module Liquid
def tokenize
@output = []
- while !@ss.eos?
+ until @ss.eos?
@ss.skip(/\s*/)
tok = case
when t = @ss.scan(COMPARISON_OPERATOR) then [:comparison, t]
@@ -39,7 +39,7 @@ module Liquid
else
c = @ss.getch
if s = SPECIALS[c]
- [s,c]
+ [s, c]
else
raise SyntaxError, "Unexpected character #{c}"
end
diff --git a/lib/liquid/module_ex.rb b/lib/liquid/module_ex.rb
index 9c7cc00..5b394d2 100644
--- a/lib/liquid/module_ex.rb
+++ b/lib/liquid/module_ex.rb
@@ -43,17 +43,17 @@
#
class Module
def liquid_methods(*allowed_methods)
- drop_class = eval "class #{self.to_s}::LiquidDropClass < Liquid::Drop; self; end"
-
+ drop_class = eval "class #{self}::LiquidDropClass < Liquid::Drop; self; end"
+
define_method :to_liquid do
drop_class.new(self)
end
-
+
drop_class.class_eval do
def initialize(object)
@object = object
end
-
+
allowed_methods.each do |sym|
define_method sym do
@object.send sym
diff --git a/lib/liquid/parser_switching.rb b/lib/liquid/parser_switching.rb
index 5fc0f38..fe033bf 100644
--- a/lib/liquid/parser_switching.rb
+++ b/lib/liquid/parser_switching.rb
@@ -17,6 +17,7 @@ module Liquid
end
private
+
def strict_parse_with_error_context(markup)
strict_parse(markup)
rescue SyntaxError => e
diff --git a/lib/liquid/profiler.rb b/lib/liquid/profiler.rb
index 67ad6fa..2bf51e2 100644
--- a/lib/liquid/profiler.rb
+++ b/lib/liquid/profiler.rb
@@ -1,7 +1,6 @@
require 'liquid/profiler/hooks'
module Liquid
-
# Profiler enables support for profiling template rendering to help track down performance issues.
#
# To enable profiling, first require 'liquid/profiler'.
@@ -55,9 +54,7 @@ module Liquid
end
def self.start(token, partial)
- new(token, partial).tap do |t|
- t.start
- end
+ new(token, partial).tap(&:start)
end
def start
@@ -139,7 +136,7 @@ module Liquid
@timing_stack.push(Timing.start(token, current_partial))
end
- def end_token(token)
+ def end_token(_token)
timing = @timing_stack.pop
timing.finish
@@ -157,6 +154,5 @@ module Liquid
def pop_partial
@partial_stack.pop
end
-
end
end
diff --git a/lib/liquid/resource_limits.rb b/lib/liquid/resource_limits.rb
index 190685e..08b359b 100644
--- a/lib/liquid/resource_limits.rb
+++ b/lib/liquid/resource_limits.rb
@@ -1,7 +1,7 @@
module Liquid
class ResourceLimits
attr_accessor :render_length, :render_score, :assign_score,
- :render_length_limit, :render_score_limit, :assign_score_limit
+ :render_length_limit, :render_score_limit, :assign_score_limit
def initialize(limits)
@render_length_limit = limits[:render_length_limit]
@@ -12,8 +12,8 @@ module Liquid
def reached?
(@render_length_limit && @render_length > @render_length_limit) ||
- (@render_score_limit && @render_score > @render_score_limit ) ||
- (@assign_score_limit && @assign_score > @assign_score_limit )
+ (@render_score_limit && @render_score > @render_score_limit) ||
+ (@assign_score_limit && @assign_score > @assign_score_limit)
end
def reset
diff --git a/lib/liquid/standardfilters.rb b/lib/liquid/standardfilters.rb
index 8421e85..4d10bb3 100644
--- a/lib/liquid/standardfilters.rb
+++ b/lib/liquid/standardfilters.rb
@@ -2,7 +2,6 @@ require 'cgi'
require 'bigdecimal'
module Liquid
-
module StandardFilters
HTML_ESCAPE = {
'&'.freeze => '&'.freeze,
@@ -46,7 +45,7 @@ module Liquid
CGI.escape(input) rescue input
end
- def slice(input, offset, length=nil)
+ def slice(input, offset, length = nil)
offset = Integer(offset)
length = length ? Integer(length) : 1
@@ -59,14 +58,14 @@ module Liquid
# Truncate a string down to x characters
def truncate(input, length = 50, truncate_string = "...".freeze)
- if input.nil? then return end
+ return if input.nil?
l = length.to_i - truncate_string.length
l = 0 if l < 0
input.length > length.to_i ? input[0...l] + truncate_string : input
end
def truncatewords(input, words = 15, truncate_string = "...".freeze)
- if input.nil? then return end
+ return if input.nil?
wordlist = input.to_s.split
l = words.to_i - 1
l = 0 if l < 0
@@ -116,9 +115,9 @@ module Liquid
if property.nil?
ary.sort
elsif ary.first.respond_to?(:[]) && !ary.first[property].nil?
- ary.sort {|a,b| a[property] <=> b[property] }
+ ary.sort { |a, b| a[property] <=> b[property] }
elsif ary.first.respond_to?(property)
- ary.sort {|a,b| a.send(property) <=> b.send(property) }
+ ary.sort { |a, b| a.send(property) <=> b.send(property) }
end
end
@@ -128,11 +127,11 @@ module Liquid
ary = InputIterator.new(input)
if property.nil?
- ary.sort {|a,b| a.casecmp(b) }
+ ary.sort { |a, b| a.casecmp(b) }
elsif ary.first.respond_to?(:[]) && !ary.first[property].nil?
- ary.sort {|a,b| a[property].casecmp(b[property]) }
+ ary.sort { |a, b| a[property].casecmp(b[property]) }
elsif ary.first.respond_to?(property)
- ary.sort {|a,b| a.send(property).casecmp(b.send(property)) }
+ ary.sort { |a, b| a.send(property).casecmp(b.send(property)) }
end
end
@@ -336,8 +335,6 @@ module Liquid
Time.at(obj.to_i)
when String
Time.parse(obj)
- else
- nil
end
rescue ArgumentError
nil
diff --git a/lib/liquid/strainer.rb b/lib/liquid/strainer.rb
index 31a1ec2..c9bd1eb 100644
--- a/lib/liquid/strainer.rb
+++ b/lib/liquid/strainer.rb
@@ -1,7 +1,6 @@
require 'set'
module Liquid
-
# Strainer is the parent class for the filters system.
# New filters are mixed into the strainer class which is then instantiated for each liquid template render run.
#
@@ -22,14 +21,14 @@ module Liquid
@context = context
end
- def self.filter_methods
- @filter_methods
+ class << self
+ attr_reader :filter_methods
end
def self.add_filter(filter)
raise ArgumentError, "Expected module but got: #{f.class}" unless filter.is_a?(Module)
unless self.class.include?(filter)
- self.send(:include, filter)
+ send(:include, filter)
@filter_methods.merge(filter.public_instance_methods.map(&:to_s))
end
end
diff --git a/lib/liquid/tag.rb b/lib/liquid/tag.rb
index d8d35c5..e8dd22b 100644
--- a/lib/liquid/tag.rb
+++ b/lib/liquid/tag.rb
@@ -20,7 +20,7 @@ module Liquid
@options = options
end
- def parse(tokens)
+ def parse(_tokens)
end
def raw
@@ -31,7 +31,7 @@ module Liquid
self.class.name.downcase
end
- def render(context)
+ def render(_context)
''.freeze
end
diff --git a/lib/liquid/tags/assign.rb b/lib/liquid/tags/assign.rb
index f1dfb19..b0e1458 100644
--- a/lib/liquid/tags/assign.rb
+++ b/lib/liquid/tags/assign.rb
@@ -1,5 +1,4 @@
module Liquid
-
# Assign sets a variable in your template.
#
# {% assign foo = 'monkey' %}
@@ -15,7 +14,7 @@ module Liquid
super
if markup =~ Syntax
@to = $1
- @from = Variable.new($2,options)
+ @from = Variable.new($2, options)
@from.line_number = line_number
else
raise SyntaxError.new options[:locale].t("errors.syntax.assign".freeze)
diff --git a/lib/liquid/tags/break.rb b/lib/liquid/tags/break.rb
index 411a3b1..6fe0969 100644
--- a/lib/liquid/tags/break.rb
+++ b/lib/liquid/tags/break.rb
@@ -1,5 +1,4 @@
module Liquid
-
# Break tag to be used to break out of a for loop.
#
# == Basic Usage:
@@ -10,11 +9,9 @@ module Liquid
# {% endfor %}
#
class Break < Tag
-
def interrupt
BreakInterrupt.new
end
-
end
Template.register_tag('break'.freeze, Break)
diff --git a/lib/liquid/tags/case.rb b/lib/liquid/tags/case.rb
index dea0be2..e664387 100644
--- a/lib/liquid/tags/case.rb
+++ b/lib/liquid/tags/case.rb
@@ -59,7 +59,7 @@ module Liquid
body = BlockBody.new
while markup
- if not markup =~ WhenSyntax
+ unless markup =~ WhenSyntax
raise SyntaxError.new(options[:locale].t("errors.syntax.case_invalid_when".freeze))
end
@@ -72,7 +72,7 @@ module Liquid
end
def record_else_condition(markup)
- if not markup.strip.empty?
+ unless markup.strip.empty?
raise SyntaxError.new(options[:locale].t("errors.syntax.case_invalid_else".freeze))
end
diff --git a/lib/liquid/tags/comment.rb b/lib/liquid/tags/comment.rb
index 3e6bb69..c57c9cd 100644
--- a/lib/liquid/tags/comment.rb
+++ b/lib/liquid/tags/comment.rb
@@ -1,10 +1,10 @@
module Liquid
class Comment < Block
- def render(context)
+ def render(_context)
''.freeze
end
- def unknown_tag(tag, markup, tokens)
+ def unknown_tag(_tag, _markup, _tokens)
end
def blank?
diff --git a/lib/liquid/tags/decrement.rb b/lib/liquid/tags/decrement.rb
index d604750..b5cdaaa 100644
--- a/lib/liquid/tags/decrement.rb
+++ b/lib/liquid/tags/decrement.rb
@@ -1,5 +1,4 @@
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.
@@ -26,12 +25,10 @@ module Liquid
def render(context)
value = context.environments.first[@variable] ||= 0
- value = value - 1
+ value -= 1
context.environments.first[@variable] = value
value.to_s
end
-
- private
end
Template.register_tag('decrement'.freeze, Decrement)
diff --git a/lib/liquid/tags/for.rb b/lib/liquid/tags/for.rb
index 33f12af..d1cd4a7 100644
--- a/lib/liquid/tags/for.rb
+++ b/lib/liquid/tags/for.rb
@@ -1,5 +1,4 @@
module Liquid
-
# "For" iterates over an array or collection.
# Several useful variables are available to you within the loop.
#
@@ -54,9 +53,8 @@ module Liquid
end
def parse(tokens)
- if more = parse_body(@for_block, tokens)
- parse_body(@else_block, tokens)
- end
+ return unless parse_body(@for_block, tokens)
+ parse_body(@else_block, tokens)
end
def nodelist
diff --git a/lib/liquid/tags/if.rb b/lib/liquid/tags/if.rb
index ba668f2..4901d4a 100644
--- a/lib/liquid/tags/if.rb
+++ b/lib/liquid/tags/if.rb
@@ -21,7 +21,7 @@ module Liquid
end
def parse(tokens)
- while more = parse_body(@blocks.last.attachment, tokens)
+ while parse_body(@blocks.last.attachment, tokens)
end
end
@@ -50,61 +50,61 @@ module Liquid
private
- def push_block(tag, markup)
- block = if tag == 'else'.freeze
- ElseCondition.new
- else
- parse_with_selected_parser(markup)
- end
-
- @blocks.push(block)
- block.attach(BlockBody.new)
+ def push_block(tag, markup)
+ block = if tag == 'else'.freeze
+ ElseCondition.new
+ else
+ parse_with_selected_parser(markup)
end
- def lax_parse(markup)
- expressions = markup.scan(ExpressionsAndOperators)
- raise(SyntaxError.new(options[:locale].t("errors.syntax.if".freeze))) unless expressions.pop =~ Syntax
+ @blocks.push(block)
+ block.attach(BlockBody.new)
+ end
- condition = Condition.new(Expression.parse($1), $2, Expression.parse($3))
+ def lax_parse(markup)
+ expressions = markup.scan(ExpressionsAndOperators)
+ raise(SyntaxError.new(options[:locale].t("errors.syntax.if".freeze))) unless expressions.pop =~ Syntax
- while not expressions.empty?
- operator = expressions.pop.to_s.strip
+ condition = Condition.new(Expression.parse($1), $2, Expression.parse($3))
- raise(SyntaxError.new(options[:locale].t("errors.syntax.if".freeze))) unless expressions.pop.to_s =~ Syntax
+ until expressions.empty?
+ operator = expressions.pop.to_s.strip
- new_condition = Condition.new(Expression.parse($1), $2, Expression.parse($3))
- raise(SyntaxError.new(options[:locale].t("errors.syntax.if".freeze))) unless BOOLEAN_OPERATORS.include?(operator)
- new_condition.send(operator, condition)
- condition = new_condition
- end
+ raise(SyntaxError.new(options[:locale].t("errors.syntax.if".freeze))) unless expressions.pop.to_s =~ Syntax
- condition
+ new_condition = Condition.new(Expression.parse($1), $2, Expression.parse($3))
+ raise(SyntaxError.new(options[:locale].t("errors.syntax.if".freeze))) unless BOOLEAN_OPERATORS.include?(operator)
+ new_condition.send(operator, condition)
+ condition = new_condition
end
- def strict_parse(markup)
- p = Parser.new(markup)
+ condition
+ end
- condition = parse_comparison(p)
+ def strict_parse(markup)
+ p = Parser.new(markup)
- while op = (p.id?('and'.freeze) || p.id?('or'.freeze))
- new_cond = parse_comparison(p)
- new_cond.send(op, condition)
- condition = new_cond
- end
- p.consume(:end_of_string)
+ condition = parse_comparison(p)
- condition
+ while op = (p.id?('and'.freeze) || p.id?('or'.freeze))
+ new_cond = parse_comparison(p)
+ new_cond.send(op, condition)
+ condition = new_cond
end
+ p.consume(:end_of_string)
- def parse_comparison(p)
- a = Expression.parse(p.expression)
- if op = p.consume?(:comparison)
- b = Expression.parse(p.expression)
- Condition.new(a, op, b)
- else
- Condition.new(a)
- end
+ condition
+ end
+
+ def parse_comparison(p)
+ a = Expression.parse(p.expression)
+ if op = p.consume?(:comparison)
+ b = Expression.parse(p.expression)
+ Condition.new(a, op, b)
+ else
+ Condition.new(a)
end
+ end
end
Template.register_tag('if'.freeze, If)
diff --git a/lib/liquid/tags/ifchanged.rb b/lib/liquid/tags/ifchanged.rb
index 86dbe72..d70cbe1 100644
--- a/lib/liquid/tags/ifchanged.rb
+++ b/lib/liquid/tags/ifchanged.rb
@@ -1,9 +1,7 @@
module Liquid
class Ifchanged < Block
-
def render(context)
context.stack do
-
output = super
if output != context.registers[:ifchanged]
diff --git a/lib/liquid/tags/include.rb b/lib/liquid/tags/include.rb
index b552559..80b46d9 100644
--- a/lib/liquid/tags/include.rb
+++ b/lib/liquid/tags/include.rb
@@ -1,5 +1,4 @@
module Liquid
-
# Include allows templates to relate with other templates
#
# Simply include another template:
@@ -38,7 +37,7 @@ module Liquid
end
end
- def parse(tokens)
+ def parse(_tokens)
end
def render(context)
@@ -71,35 +70,36 @@ module Liquid
end
private
- def load_cached_partial(context)
- cached_partials = context.registers[:cached_partials] || {}
- template_name = context.evaluate(@template_name_expr)
- if cached = cached_partials[template_name]
- return cached
- end
- source = read_template_from_file_system(context)
- partial = Liquid::Template.parse(source, pass_options)
- cached_partials[template_name] = partial
- context.registers[:cached_partials] = cached_partials
- partial
+ def load_cached_partial(context)
+ cached_partials = context.registers[:cached_partials] || {}
+ template_name = context.evaluate(@template_name_expr)
+
+ if cached = cached_partials[template_name]
+ return cached
end
+ source = read_template_from_file_system(context)
+ partial = Liquid::Template.parse(source, pass_options)
+ cached_partials[template_name] = partial
+ context.registers[:cached_partials] = cached_partials
+ partial
+ end
- def read_template_from_file_system(context)
- file_system = context.registers[:file_system] || Liquid::Template.file_system
+ def read_template_from_file_system(context)
+ file_system = context.registers[:file_system] || Liquid::Template.file_system
- file_system.read_template_file(context.evaluate(@template_name_expr))
- end
-
- def pass_options
- dont_pass = @options[:include_options_blacklist]
- return {locale: @options[:locale]} if dont_pass == true
- opts = @options.merge(included: true, include_options_blacklist: false)
- if dont_pass.is_a?(Array)
- dont_pass.each {|o| opts.delete(o)}
- end
- opts
+ file_system.read_template_file(context.evaluate(@template_name_expr))
+ end
+
+ def pass_options
+ dont_pass = @options[:include_options_blacklist]
+ return { locale: @options[:locale] } if dont_pass == true
+ opts = @options.merge(included: true, include_options_blacklist: false)
+ if dont_pass.is_a?(Array)
+ dont_pass.each { |o| opts.delete(o) }
end
+ opts
+ end
end
Template.register_tag('include'.freeze, Include)
diff --git a/lib/liquid/tags/raw.rb b/lib/liquid/tags/raw.rb
index 41b2ec4..b7dd3b3 100644
--- a/lib/liquid/tags/raw.rb
+++ b/lib/liquid/tags/raw.rb
@@ -9,11 +9,11 @@ module Liquid
@body << $1 if $1 != "".freeze
return if block_delimiter == $2
end
- @body << token if not token.empty?
+ @body << token unless token.empty?
end
end
- def render(context)
+ def render(_context)
@body
end
diff --git a/lib/liquid/tags/table_row.rb b/lib/liquid/tags/table_row.rb
index 85b1f5a..efd4891 100644
--- a/lib/liquid/tags/table_row.rb
+++ b/lib/liquid/tags/table_row.rb
@@ -33,7 +33,6 @@ module Liquid
result = "
\n"
context.stack do
-
collection.each_with_index do |item, index|
context[@variable_name] = item
context['tablerowloop'.freeze] = {
@@ -50,17 +49,15 @@ module Liquid
'col_last'.freeze => (col == cols - 1)
}
-
col += 1
result << "| " << super << ' | '
- if col == cols and (index != length - 1)
+ if col == cols && (index != length - 1)
col = 0
row += 1
result << "
\n"
end
-
end
end
result << "
\n"
diff --git a/lib/liquid/tags/unless.rb b/lib/liquid/tags/unless.rb
index dce3971..1d4280d 100644
--- a/lib/liquid/tags/unless.rb
+++ b/lib/liquid/tags/unless.rb
@@ -8,7 +8,6 @@ module Liquid
class Unless < If
def render(context)
context.stack do
-
# First condition is interpreted backwards ( if not )
first_block = @blocks.first
unless first_block.evaluate(context)
diff --git a/lib/liquid/template.rb b/lib/liquid/template.rb
index c8ee0f8..88d9977 100644
--- a/lib/liquid/template.rb
+++ b/lib/liquid/template.rb
@@ -1,5 +1,4 @@
module Liquid
-
# Templates are central to liquid.
# Interpretating templates is a two step process. First you compile the
# source code you got. During compile time some extensive error checking is performed.
@@ -15,7 +14,7 @@ module Liquid
#
class Template
DEFAULT_OPTIONS = {
- :locale => I18n.new
+ locale: I18n.new
}
attr_accessor :root
@@ -189,7 +188,7 @@ module Liquid
options = args.pop
if options[:registers].is_a?(Hash)
- self.registers.merge!(options[:registers])
+ registers.merge!(options[:registers])
end
if options[:filters]
@@ -237,7 +236,7 @@ module Liquid
tokens = calculate_line_numbers(source.split(TemplateParser))
# removes the rogue empty element at the beginning of the array
- tokens.shift if tokens[0] and tokens[0].empty?
+ tokens.shift if tokens[0] && tokens[0].empty?
tokens
end
diff --git a/lib/liquid/utils.rb b/lib/liquid/utils.rb
index cfa675a..ed1e9d9 100644
--- a/lib/liquid/utils.rb
+++ b/lib/liquid/utils.rb
@@ -1,8 +1,7 @@
module Liquid
module Utils
-
def self.slice_collection(collection, from, to)
- if (from != 0 || to != nil) && collection.respond_to?(:load_slice)
+ if (from != 0 || !to.nil?) && collection.respond_to?(:load_slice)
collection.load_slice(from, to)
else
slice_collection_using_each(collection, from, to)
@@ -21,7 +20,6 @@ module Liquid
return [collection] if non_blank_string?(collection)
collection.each do |item|
-
if to && to <= index
break
end
diff --git a/lib/liquid/variable.rb b/lib/liquid/variable.rb
index 92b0537..5e455c0 100644
--- a/lib/liquid/variable.rb
+++ b/lib/liquid/variable.rb
@@ -1,5 +1,4 @@
module Liquid
-
# Holds variables. Variables are only loaded "just in time"
# and are not evaluated as part of the render stage
#
@@ -34,18 +33,18 @@ module Liquid
def lax_parse(markup)
@filters = []
- if markup =~ /(#{QuotedFragment})(.*)/om
- name_markup = $1
- filter_markup = $2
- @name = Expression.parse(name_markup)
- if filter_markup =~ /#{FilterSeparator}\s*(.*)/om
- filters = $1.scan(FilterParser)
- filters.each do |f|
- if f =~ /\w+/
- filtername = Regexp.last_match(0)
- filterargs = f.scan(/(?:#{FilterArgumentSeparator}|#{ArgumentSeparator})\s*((?:\w+\s*\:\s*)?#{QuotedFragment})/o).flatten
- @filters << parse_filter_expressions(filtername, filterargs)
- end
+ return unless markup =~ /(#{QuotedFragment})(.*)/om
+
+ name_markup = $1
+ filter_markup = $2
+ @name = Expression.parse(name_markup)
+ if filter_markup =~ /#{FilterSeparator}\s*(.*)/om
+ filters = $1.scan(FilterParser)
+ filters.each do |f|
+ if f =~ /\w+/
+ filtername = Regexp.last_match(0)
+ filterargs = f.scan(/(?:#{FilterArgumentSeparator}|#{ArgumentSeparator})\s*((?:\w+\s*\:\s*)?#{QuotedFragment})/o).flatten
+ @filters << parse_filter_expressions(filtername, filterargs)
end
end
end
@@ -68,9 +67,7 @@ module Liquid
# first argument
filterargs = [p.argument]
# followed by comma separated others
- while p.consume?(:comma)
- filterargs << p.argument
- end
+ filterargs << p.argument while p.consume?(:comma)
filterargs
end
diff --git a/lib/liquid/variable_lookup.rb b/lib/liquid/variable_lookup.rb
index 92f57c8..3b8374b 100644
--- a/lib/liquid/variable_lookup.rb
+++ b/lib/liquid/variable_lookup.rb
@@ -41,8 +41,8 @@ module Liquid
# If object is a hash- or array-like object we look for the
# presence of the key and if its available we return it
if object.respond_to?(:[]) &&
- ((object.respond_to?(:has_key?) && object.has_key?(key)) ||
- (object.respond_to?(:fetch) && key.is_a?(Integer)))
+ ((object.respond_to?(:has_key?) && object.has_key?(key)) ||
+ (object.respond_to?(:fetch) && key.is_a?(Integer)))
# if its a proc we will replace the entry with the proc
res = context.lookup_and_evaluate(object, key)
@@ -68,7 +68,7 @@ module Liquid
end
def ==(other)
- self.class == other.class && self.state == other.state
+ self.class == other.class && state == other.state
end
protected
diff --git a/liquid.gemspec b/liquid.gemspec
index dd065a5..b8845ca 100644
--- a/liquid.gemspec
+++ b/liquid.gemspec
@@ -1,6 +1,6 @@
# encoding: utf-8
lib = File.expand_path('../lib/', __FILE__)
-$:.unshift lib unless $:.include?(lib)
+$LOAD_PATH.unshift lib unless $LOAD_PATH.include?(lib)
require "liquid/version"
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
s.email = ["tobi@leetsoft.com"]
s.homepage = "http://www.liquidmarkup.org"
s.license = "MIT"
- #s.description = "A secure, non-evaling end user template engine with aesthetic markup."
+ # s.description = "A secure, non-evaling end user template engine with aesthetic markup."
s.required_rubygems_version = ">= 1.3.7"
diff --git a/performance/profile.rb b/performance/profile.rb
index 6931774..f0fd9bd 100644
--- a/performance/profile.rb
+++ b/performance/profile.rb
@@ -6,7 +6,7 @@ profiler = ThemeRunner.new
profiler.run
[:cpu, :object].each do |profile_type|
- puts "Profiling in #{profile_type.to_s} mode..."
+ puts "Profiling in #{profile_type} mode..."
results = StackProf.run(mode: profile_type) do
200.times do
profiler.run
diff --git a/performance/shopify/comment_form.rb b/performance/shopify/comment_form.rb
index 30226dd..d661c31 100644
--- a/performance/shopify/comment_form.rb
+++ b/performance/shopify/comment_form.rb
@@ -28,6 +28,6 @@ class CommentForm < Liquid::Block
end
def wrap_in_form(article, input)
- %Q{}
+ %()
end
end
diff --git a/performance/shopify/database.rb b/performance/shopify/database.rb
index 8755684..2b5bca4 100644
--- a/performance/shopify/database.rb
+++ b/performance/shopify/database.rb
@@ -39,7 +39,7 @@ module Database
end
end
-if __FILE__ == $0
+if __FILE__ == $PROGRAM_NAME
p Database.tables['collections']['frontpage'].keys
- #p Database.tables['blog']['articles']
+ # p Database.tables['blog']['articles']
end
diff --git a/performance/shopify/json_filter.rb b/performance/shopify/json_filter.rb
index d3f02d0..8fbb5b6 100644
--- a/performance/shopify/json_filter.rb
+++ b/performance/shopify/json_filter.rb
@@ -1,9 +1,7 @@
require 'json'
module JsonFilter
-
def json(object)
- JSON.dump(object.reject {|k,v| k == "collections" })
+ JSON.dump(object.reject { |k, v| k == "collections" })
end
-
end
diff --git a/performance/shopify/money_filter.rb b/performance/shopify/money_filter.rb
index b200831..8dad789 100644
--- a/performance/shopify/money_filter.rb
+++ b/performance/shopify/money_filter.rb
@@ -1,13 +1,12 @@
module MoneyFilter
-
def money_with_currency(money)
return '' if money.nil?
- sprintf("$ %.2f USD", money/100.0)
+ sprintf("$ %.2f USD", money / 100.0)
end
def money(money)
return '' if money.nil?
- sprintf("$ %.2f", money/100.0)
+ sprintf("$ %.2f", money / 100.0)
end
private
diff --git a/performance/shopify/paginate.rb b/performance/shopify/paginate.rb
index 3464d08..38a9a1a 100644
--- a/performance/shopify/paginate.rb
+++ b/performance/shopify/paginate.rb
@@ -42,23 +42,22 @@ class Paginate < Liquid::Block
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['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|
-
+ 1.upto(page_count - 1) do |page|
if current_page == page
pagination['parts'] << no_link(page)
elsif page == 1
pagination['parts'] << link(page, page)
- elsif page == page_count -1
+ elsif page == page_count - 1
pagination['parts'] << link(page, page)
- elsif page <= current_page - @attributes['window_size'] or page >= current_page + @attributes['window_size']
+ elsif page <= current_page - @attributes['window_size'] || page >= current_page + @attributes['window_size']
next if hellip_break
pagination['parts'] << no_link('…')
hellip_break = true
@@ -78,11 +77,11 @@ class Paginate < Liquid::Block
private
def no_link(title)
- { 'title' => title, 'is_link' => false}
+ { 'title' => title, 'is_link' => false }
end
def link(title, page)
- { 'title' => title, 'url' => current_url + "?page=#{page}", 'is_link' => true}
+ { 'title' => title, 'url' => current_url + "?page=#{page}", 'is_link' => true }
end
def current_url
diff --git a/performance/shopify/shop_filter.rb b/performance/shopify/shop_filter.rb
index 27b6b57..89c9083 100644
--- a/performance/shopify/shop_filter.rb
+++ b/performance/shopify/shop_filter.rb
@@ -1,5 +1,4 @@
module ShopFilter
-
def asset_url(input)
"/files/1/[shop_id]/[shop_id]/assets/#{input}"
end
@@ -16,16 +15,16 @@ module ShopFilter
%()
end
- def stylesheet_tag(url, media="all")
+ def stylesheet_tag(url, media = "all")
%()
end
- def link_to(link, url, title="")
- %|#{link}|
+ def link_to(link, url, title = "")
+ %(#{link})
end
- def img_tag(url, alt="")
- %|
|
+ def img_tag(url, alt = "")
+ %(
)
end
def link_to_vendor(vendor)
@@ -53,7 +52,6 @@ module ShopFilter
end
def product_img_url(url, style = 'small')
-
unless url =~ /\Aproducts\/([\w\-\_]+)\.(\w{2,4})/
raise ArgumentError, 'filter "size" can only be called on product images'
end
@@ -69,7 +67,6 @@ module ShopFilter
end
def default_pagination(paginate)
-
html = []
html << %(#{link_to(paginate['previous']['title'], paginate['previous']['url'])}) if paginate['previous']
@@ -106,5 +103,4 @@ module ShopFilter
result.gsub!(/\A-+/, '') if result[0] == '-'
result
end
-
end
diff --git a/performance/shopify/tag_filter.rb b/performance/shopify/tag_filter.rb
index ed6f8b4..ab5aef6 100644
--- a/performance/shopify/tag_filter.rb
+++ b/performance/shopify/tag_filter.rb
@@ -1,10 +1,9 @@
module TagFilter
-
def link_to_tag(label, tag)
"#{label}"
end
- def highlight_active_tag(tag, css_class='active')
+ def highlight_active_tag(tag, css_class = 'active')
if @context['current_tags'].include?(tag)
"#{tag}"
else
@@ -21,5 +20,4 @@ module TagFilter
tags = (@context['current_tags'] - [tag]).uniq
"#{label}"
end
-
end
diff --git a/performance/shopify/weight_filter.rb b/performance/shopify/weight_filter.rb
index 3ff7c2c..a0a15fc 100644
--- a/performance/shopify/weight_filter.rb
+++ b/performance/shopify/weight_filter.rb
@@ -1,5 +1,4 @@
module WeightFilter
-
def weight(grams)
sprintf("%.2f", grams / 1000)
end
@@ -7,5 +6,4 @@ module WeightFilter
def weight_with_unit(grams)
"#{weight(grams)} kg"
end
-
end
diff --git a/performance/theme_runner.rb b/performance/theme_runner.rb
index 7b15d03..6ac7917 100644
--- a/performance/theme_runner.rb
+++ b/performance/theme_runner.rb
@@ -11,7 +11,6 @@ require_relative 'shopify/database'
class ThemeRunner
class FileSystem
-
def initialize(path)
@path = path
end
@@ -38,7 +37,6 @@ class ThemeRunner
# Dup assigns because will make some changes to them
@tests.each do |liquid, layout, template_name|
-
tmpl = Liquid::Template.new
tmpl.parse(liquid)
tmpl = Liquid::Template.new
@@ -46,20 +44,17 @@ class ThemeRunner
end
end
- def run
+ def run
# Dup assigns because will make some changes to them
assigns = Database.tables.dup
@tests.each do |liquid, layout, template_name|
-
# 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
-
def compile_and_render(template, layout, assigns, page_template, template_file)
tmpl = Liquid::Template.new
tmpl.assigns['page_title'] = 'Page title'
diff --git a/test/integration/assign_test.rb b/test/integration/assign_test.rb
index f9f5aaa..5502289 100644
--- a/test/integration/assign_test.rb
+++ b/test/integration/assign_test.rb
@@ -15,24 +15,24 @@ class AssignTest < Minitest::Test
def test_assigned_variable
assert_template_result('.foo.',
- '{% assign foo = values %}.{{ foo[0] }}.',
- 'values' => %w{foo bar baz})
+ '{% assign foo = values %}.{{ foo[0] }}.',
+ 'values' => %w(foo bar baz))
assert_template_result('.bar.',
- '{% assign foo = values %}.{{ foo[1] }}.',
- 'values' => %w{foo bar baz})
+ '{% assign foo = values %}.{{ foo[1] }}.',
+ 'values' => %w(foo bar baz))
end
def test_assign_with_filter
assert_template_result('.bar.',
- '{% assign foo = values | split: "," %}.{{ foo[1] }}.',
- 'values' => "foo,bar,baz")
+ '{% assign foo = values | split: "," %}.{{ foo[1] }}.',
+ 'values' => "foo,bar,baz")
end
def test_assign_syntax_error
assert_match_syntax_error(/assign/,
- '{% assign foo not values %}.',
- 'values' => "foo,bar,baz")
+ '{% assign foo not values %}.',
+ 'values' => "foo,bar,baz")
end
def test_assign_uses_error_mode
diff --git a/test/integration/blank_test.rb b/test/integration/blank_test.rb
index 1032863..e9b56df 100644
--- a/test/integration/blank_test.rb
+++ b/test/integration/blank_test.rb
@@ -31,7 +31,7 @@ class BlankTest < Minitest::Test
end
def test_new_tags_are_not_blank_by_default
- assert_template_result(" "*N, wrap_in_for("{% foobar %}"))
+ assert_template_result(" " * N, wrap_in_for("{% foobar %}"))
end
def test_loops_are_blank
@@ -47,7 +47,7 @@ class BlankTest < Minitest::Test
end
def test_mark_as_blank_only_during_parsing
- assert_template_result(" "*(N+1), wrap(" {% if false %} this never happens, but still, this block is not blank {% endif %}"))
+ assert_template_result(" " * (N + 1), wrap(" {% if false %} this never happens, but still, this block is not blank {% endif %}"))
end
def test_comments_are_blank
@@ -60,9 +60,9 @@ class BlankTest < Minitest::Test
def test_nested_blocks_are_blank_but_only_if_all_children_are
assert_template_result("", wrap(wrap(" ")))
- assert_template_result("\n but this is not "*(N+1),
- wrap(%q{{% if true %} {% comment %} this is blank {% endcomment %} {% endif %}
- {% if true %} but this is not {% endif %}}))
+ assert_template_result("\n but this is not " * (N + 1),
+ wrap('{% if true %} {% comment %} this is blank {% endcomment %} {% endif %}
+ {% if true %} but this is not {% endif %}'))
end
def test_assigns_are_blank
@@ -76,31 +76,31 @@ class BlankTest < Minitest::Test
def test_whitespace_is_not_blank_if_other_stuff_is_present
body = " x "
- assert_template_result(body*(N+1), wrap(body))
+ assert_template_result(body * (N + 1), wrap(body))
end
def test_increment_is_not_blank
- assert_template_result(" 0"*2*(N+1), wrap("{% assign foo = 0 %} {% increment foo %} {% decrement foo %}"))
+ assert_template_result(" 0" * 2 * (N + 1), wrap("{% assign foo = 0 %} {% increment foo %} {% decrement foo %}"))
end
def test_cycle_is_not_blank
- assert_template_result(" "*((N+1)/2)+" ", wrap("{% cycle ' ', ' ' %}"))
+ assert_template_result(" " * ((N + 1) / 2) + " ", wrap("{% cycle ' ', ' ' %}"))
end
def test_raw_is_not_blank
- assert_template_result(" "*(N+1), wrap(" {% raw %} {% endraw %}"))
+ assert_template_result(" " * (N + 1), wrap(" {% raw %} {% endraw %}"))
end
def test_include_is_blank
Liquid::Template.file_system = BlankTestFileSystem.new
- assert_template_result "foobar"*(N+1), wrap("{% include 'foobar' %}")
- assert_template_result " foobar "*(N+1), wrap("{% include ' foobar ' %}")
- assert_template_result " "*(N+1), wrap(" {% include ' ' %} ")
+ assert_template_result "foobar" * (N + 1), wrap("{% include 'foobar' %}")
+ assert_template_result " foobar " * (N + 1), wrap("{% include ' foobar ' %}")
+ assert_template_result " " * (N + 1), wrap(" {% include ' ' %} ")
end
def test_case_is_blank
assert_template_result("", wrap(" {% assign foo = 'bar' %} {% case foo %} {% when 'bar' %} {% when 'whatever' %} {% else %} {% endcase %} "))
assert_template_result("", wrap(" {% assign foo = 'else' %} {% case foo %} {% when 'bar' %} {% when 'whatever' %} {% else %} {% endcase %} "))
- assert_template_result(" x "*(N+1), wrap(" {% assign foo = 'else' %} {% case foo %} {% when 'bar' %} {% when 'whatever' %} {% else %} x {% endcase %} "))
+ assert_template_result(" x " * (N + 1), wrap(" {% assign foo = 'else' %} {% case foo %} {% when 'bar' %} {% when 'whatever' %} {% else %} x {% endcase %} "))
end
end
diff --git a/test/integration/drop_test.rb b/test/integration/drop_test.rb
index 96e7fa5..a1b0c3f 100644
--- a/test/integration/drop_test.rb
+++ b/test/integration/drop_test.rb
@@ -14,7 +14,7 @@ class ContextDrop < Liquid::Drop
end
def before_method(method)
- return @context[method]
+ @context[method]
end
end
@@ -32,7 +32,7 @@ class ProductDrop < Liquid::Drop
class CatchallDrop < Liquid::Drop
def before_method(method)
- return 'method: ' << method.to_s
+ 'method: ' << method.to_s
end
end
@@ -53,9 +53,10 @@ class ProductDrop < Liquid::Drop
end
protected
- def callmenot
- "protected"
- end
+
+ def callmenot
+ "protected"
+ end
end
class EnumerableDrop < Liquid::Drop
@@ -151,37 +152,37 @@ class DropsTest < Minitest::Test
end
def test_text_drop
- output = Liquid::Template.parse( ' {{ product.texts.text }} ' ).render!('product' => ProductDrop.new)
+ output = Liquid::Template.parse(' {{ product.texts.text }} ').render!('product' => ProductDrop.new)
assert_equal ' text1 ', output
end
def test_unknown_method
- output = Liquid::Template.parse( ' {{ product.catchall.unknown }} ' ).render!('product' => ProductDrop.new)
+ output = Liquid::Template.parse(' {{ product.catchall.unknown }} ').render!('product' => ProductDrop.new)
assert_equal ' method: unknown ', output
end
def test_integer_argument_drop
- output = Liquid::Template.parse( ' {{ product.catchall[8] }} ' ).render!('product' => ProductDrop.new)
+ output = Liquid::Template.parse(' {{ product.catchall[8] }} ').render!('product' => ProductDrop.new)
assert_equal ' method: 8 ', output
end
def test_text_array_drop
- output = Liquid::Template.parse( '{% for text in product.texts.array %} {{text}} {% endfor %}' ).render!('product' => ProductDrop.new)
+ output = Liquid::Template.parse('{% for text in product.texts.array %} {{text}} {% endfor %}').render!('product' => ProductDrop.new)
assert_equal ' text1 text2 ', output
end
def test_context_drop
- output = Liquid::Template.parse( ' {{ context.bar }} ' ).render!('context' => ContextDrop.new, 'bar' => "carrot")
+ output = Liquid::Template.parse(' {{ context.bar }} ').render!('context' => ContextDrop.new, 'bar' => "carrot")
assert_equal ' carrot ', output
end
def test_nested_context_drop
- output = Liquid::Template.parse( ' {{ product.context.foo }} ' ).render!('product' => ProductDrop.new, 'foo' => "monkey")
+ output = Liquid::Template.parse(' {{ product.context.foo }} ').render!('product' => ProductDrop.new, 'foo' => "monkey")
assert_equal ' monkey ', output
end
def test_protected
- output = Liquid::Template.parse( ' {{ product.callmenot }} ' ).render!('product' => ProductDrop.new)
+ output = Liquid::Template.parse(' {{ product.callmenot }} ').render!('product' => ProductDrop.new)
assert_equal ' ', output
end
@@ -193,40 +194,40 @@ class DropsTest < Minitest::Test
end
def test_scope
- assert_equal '1', Liquid::Template.parse( '{{ context.scopes }}' ).render!('context' => ContextDrop.new)
- assert_equal '2', Liquid::Template.parse( '{%for i in dummy%}{{ context.scopes }}{%endfor%}' ).render!('context' => ContextDrop.new, 'dummy' => [1])
- assert_equal '3', Liquid::Template.parse( '{%for i in dummy%}{%for i in dummy%}{{ context.scopes }}{%endfor%}{%endfor%}' ).render!('context' => ContextDrop.new, 'dummy' => [1])
+ assert_equal '1', Liquid::Template.parse('{{ context.scopes }}').render!('context' => ContextDrop.new)
+ assert_equal '2', Liquid::Template.parse('{%for i in dummy%}{{ context.scopes }}{%endfor%}').render!('context' => ContextDrop.new, 'dummy' => [1])
+ assert_equal '3', Liquid::Template.parse('{%for i in dummy%}{%for i in dummy%}{{ context.scopes }}{%endfor%}{%endfor%}').render!('context' => ContextDrop.new, 'dummy' => [1])
end
def test_scope_though_proc
- assert_equal '1', Liquid::Template.parse( '{{ s }}' ).render!('context' => ContextDrop.new, 's' => Proc.new{|c| c['context.scopes'] })
- assert_equal '2', Liquid::Template.parse( '{%for i in dummy%}{{ s }}{%endfor%}' ).render!('context' => ContextDrop.new, 's' => Proc.new{|c| c['context.scopes'] }, 'dummy' => [1])
- assert_equal '3', Liquid::Template.parse( '{%for i in dummy%}{%for i in dummy%}{{ s }}{%endfor%}{%endfor%}' ).render!('context' => ContextDrop.new, 's' => Proc.new{|c| c['context.scopes'] }, 'dummy' => [1])
+ assert_equal '1', Liquid::Template.parse('{{ s }}').render!('context' => ContextDrop.new, 's' => proc{ |c| c['context.scopes'] })
+ assert_equal '2', Liquid::Template.parse('{%for i in dummy%}{{ s }}{%endfor%}').render!('context' => ContextDrop.new, 's' => proc{ |c| c['context.scopes'] }, 'dummy' => [1])
+ assert_equal '3', Liquid::Template.parse('{%for i in dummy%}{%for i in dummy%}{{ s }}{%endfor%}{%endfor%}').render!('context' => ContextDrop.new, 's' => proc{ |c| c['context.scopes'] }, 'dummy' => [1])
end
def test_scope_with_assigns
- assert_equal 'variable', Liquid::Template.parse( '{% assign a = "variable"%}{{a}}' ).render!('context' => ContextDrop.new)
- assert_equal 'variable', Liquid::Template.parse( '{% assign a = "variable"%}{%for i in dummy%}{{a}}{%endfor%}' ).render!('context' => ContextDrop.new, 'dummy' => [1])
- assert_equal 'test', Liquid::Template.parse( '{% assign header_gif = "test"%}{{header_gif}}' ).render!('context' => ContextDrop.new)
- assert_equal 'test', Liquid::Template.parse( "{% assign header_gif = 'test'%}{{header_gif}}" ).render!('context' => ContextDrop.new)
+ assert_equal 'variable', Liquid::Template.parse('{% assign a = "variable"%}{{a}}').render!('context' => ContextDrop.new)
+ assert_equal 'variable', Liquid::Template.parse('{% assign a = "variable"%}{%for i in dummy%}{{a}}{%endfor%}').render!('context' => ContextDrop.new, 'dummy' => [1])
+ assert_equal 'test', Liquid::Template.parse('{% assign header_gif = "test"%}{{header_gif}}').render!('context' => ContextDrop.new)
+ assert_equal 'test', Liquid::Template.parse("{% assign header_gif = 'test'%}{{header_gif}}").render!('context' => ContextDrop.new)
end
def test_scope_from_tags
- assert_equal '1', Liquid::Template.parse( '{% for i in context.scopes_as_array %}{{i}}{% endfor %}' ).render!('context' => ContextDrop.new, 'dummy' => [1])
- assert_equal '12', Liquid::Template.parse( '{%for a in dummy%}{% for i in context.scopes_as_array %}{{i}}{% endfor %}{% endfor %}' ).render!('context' => ContextDrop.new, 'dummy' => [1])
- assert_equal '123', Liquid::Template.parse( '{%for a in dummy%}{%for a in dummy%}{% for i in context.scopes_as_array %}{{i}}{% endfor %}{% endfor %}{% endfor %}' ).render!('context' => ContextDrop.new, 'dummy' => [1])
+ assert_equal '1', Liquid::Template.parse('{% for i in context.scopes_as_array %}{{i}}{% endfor %}').render!('context' => ContextDrop.new, 'dummy' => [1])
+ assert_equal '12', Liquid::Template.parse('{%for a in dummy%}{% for i in context.scopes_as_array %}{{i}}{% endfor %}{% endfor %}').render!('context' => ContextDrop.new, 'dummy' => [1])
+ assert_equal '123', Liquid::Template.parse('{%for a in dummy%}{%for a in dummy%}{% for i in context.scopes_as_array %}{{i}}{% endfor %}{% endfor %}{% endfor %}').render!('context' => ContextDrop.new, 'dummy' => [1])
end
def test_access_context_from_drop
- assert_equal '123', Liquid::Template.parse( '{%for a in dummy%}{{ context.loop_pos }}{% endfor %}' ).render!('context' => ContextDrop.new, 'dummy' => [1,2,3])
+ assert_equal '123', Liquid::Template.parse('{%for a in dummy%}{{ context.loop_pos }}{% endfor %}').render!('context' => ContextDrop.new, 'dummy' => [1, 2, 3])
end
def test_enumerable_drop
- assert_equal '123', Liquid::Template.parse( '{% for c in collection %}{{c}}{% endfor %}').render!('collection' => EnumerableDrop.new)
+ assert_equal '123', Liquid::Template.parse('{% for c in collection %}{{c}}{% endfor %}').render!('collection' => EnumerableDrop.new)
end
def test_enumerable_drop_size
- assert_equal '3', Liquid::Template.parse( '{{collection.size}}').render!('collection' => EnumerableDrop.new)
+ assert_equal '3', Liquid::Template.parse('{{collection.size}}').render!('collection' => EnumerableDrop.new)
end
def test_enumerable_drop_will_invoke_before_method_for_clashing_method_names
diff --git a/test/integration/error_handling_test.rb b/test/integration/error_handling_test.rb
index c21b4b4..88465ae 100644
--- a/test/integration/error_handling_test.rb
+++ b/test/integration/error_handling_test.rb
@@ -56,7 +56,7 @@ class ErrorHandlingTest < Minitest::Test
end
def test_standard_error
- template = Liquid::Template.parse( ' {{ errors.standard_error }} ' )
+ template = Liquid::Template.parse(' {{ errors.standard_error }} ')
assert_equal ' Liquid error: standard error ', template.render('errors' => ErrorDrop.new)
assert_equal 1, template.errors.size
@@ -64,7 +64,7 @@ class ErrorHandlingTest < Minitest::Test
end
def test_syntax
- template = Liquid::Template.parse( ' {{ errors.syntax_error }} ' )
+ template = Liquid::Template.parse(' {{ errors.syntax_error }} ')
assert_equal ' Liquid syntax error: syntax error ', template.render('errors' => ErrorDrop.new)
assert_equal 1, template.errors.size
@@ -72,7 +72,7 @@ class ErrorHandlingTest < Minitest::Test
end
def test_argument
- template = Liquid::Template.parse( ' {{ errors.argument_error }} ' )
+ template = Liquid::Template.parse(' {{ errors.argument_error }} ')
assert_equal ' Liquid error: argument error ', template.render('errors' => ErrorDrop.new)
assert_equal 1, template.errors.size
@@ -102,31 +102,31 @@ class ErrorHandlingTest < Minitest::Test
def test_with_line_numbers_adds_numbers_to_parser_errors
err = assert_raises(SyntaxError) do
- template = Liquid::Template.parse(%q{
+ template = Liquid::Template.parse(%q(
foobar
{% "cat" | foobar %}
bla
- },
+ ),
:line_numbers => true
- )
+ )
end
assert_match /Liquid syntax error \(line 4\)/, err.message
end
def test_parsing_warn_with_line_numbers_adds_numbers_to_lexer_errors
- template = Liquid::Template.parse(%q{
+ template = Liquid::Template.parse('
foobar
{% if 1 =! 2 %}ok{% endif %}
bla
- },
+ ',
:error_mode => :warn,
:line_numbers => true
- )
+ )
assert_equal ['Liquid syntax error (line 4): Unexpected character = in "1 =! 2"'],
template.warnings.map(&:message)
@@ -134,16 +134,16 @@ class ErrorHandlingTest < Minitest::Test
def test_parsing_strict_with_line_numbers_adds_numbers_to_lexer_errors
err = assert_raises(SyntaxError) do
- Liquid::Template.parse(%q{
+ Liquid::Template.parse('
foobar
{% if 1 =! 2 %}ok{% endif %}
bla
- },
+ ',
:error_mode => :strict,
:line_numbers => true
- )
+ )
end
assert_equal 'Liquid syntax error (line 4): Unexpected character = in "1 =! 2"', err.message
@@ -151,7 +151,7 @@ class ErrorHandlingTest < Minitest::Test
def test_syntax_errors_in_nested_blocks_have_correct_line_number
err = assert_raises(SyntaxError) do
- Liquid::Template.parse(%q{
+ Liquid::Template.parse('
foobar
{% if 1 != 2 %}
@@ -159,9 +159,9 @@ class ErrorHandlingTest < Minitest::Test
{% endif %}
bla
- },
+ ',
:line_numbers => true
- )
+ )
end
assert_equal "Liquid syntax error (line 5): Unknown tag 'foo'", err.message
@@ -194,7 +194,7 @@ class ErrorHandlingTest < Minitest::Test
assert_equal 'Liquid syntax error (line 2): Unexpected character % in "{{%%%}}"', template.warnings[1].message
assert_equal 'Liquid syntax error (line 3): Expected id but found end_of_string in "{{ hello. }}"', template.warnings[2].message
assert_equal 3, template.warnings.size
- assert_equal [1,2,3], template.warnings.map(&:line_number)
+ assert_equal [1, 2, 3], template.warnings.map(&:line_number)
end
# Liquid should not catch Exceptions that are not subclasses of StandardError, like Interrupt and NoMemoryError
diff --git a/test/integration/filter_test.rb b/test/integration/filter_test.rb
index ba58e0f..e346444 100644
--- a/test/integration/filter_test.rb
+++ b/test/integration/filter_test.rb
@@ -17,7 +17,7 @@ module CanadianMoneyFilter
end
module SubstituteFilter
- def substitute(input, params={})
+ def substitute(input, params = {})
input.gsub(/%\{(\w+)\}/) { |match| params[$1] }
end
end
@@ -64,19 +64,19 @@ class FiltersTest < Minitest::Test
end
def test_join
- @context['var'] = [1,2,3,4]
+ @context['var'] = [1, 2, 3, 4]
assert_equal "1 2 3 4", Variable.new("var | join").render(@context)
end
def test_sort
@context['value'] = 3
- @context['numbers'] = [2,1,4,3]
+ @context['numbers'] = [2, 1, 4, 3]
@context['words'] = ['expected', 'as', 'alphabetic']
@context['arrays'] = ['flower', 'are']
@context['case_sensitive'] = ['sensitive', 'Expected', 'case']
- assert_equal [1,2,3,4], Variable.new("numbers | sort").render(@context)
+ assert_equal [1, 2, 3, 4], Variable.new("numbers | sort").render(@context)
assert_equal ['alphabetic', 'as', 'expected'], Variable.new("words | sort").render(@context)
assert_equal [3], Variable.new("value | sort").render(@context)
assert_equal ['are', 'flower'], Variable.new("arrays | sort").render(@context)
@@ -85,7 +85,7 @@ class FiltersTest < Minitest::Test
def test_sort_natural
@context['words'] = ['case', 'Assert', 'Insensitive']
- @context['hashes'] = [{ 'a' => 'A'}, { 'a' => 'b'}, { 'a' => 'C' }]
+ @context['hashes'] = [{ 'a' => 'A' }, { 'a' => 'b' }, { 'a' => 'C' }]
@context['objects'] = [TestObject.new('A'), TestObject.new('b'), TestObject.new('C')]
# Test strings
@@ -131,7 +131,7 @@ class FiltersTest < Minitest::Test
def test_filter_with_keyword_arguments
@context['surname'] = 'john'
@context.add_filters(SubstituteFilter)
- output = Variable.new(%! 'hello %{first_name}, %{last_name}' | substitute: first_name: surname, last_name: 'doe' !).render(@context)
+ output = Variable.new(%( 'hello %{first_name}, %{last_name}' | substitute: first_name: surname, last_name: 'doe' )).render(@context)
assert_equal 'hello john, doe', output
end
diff --git a/test/integration/output_test.rb b/test/integration/output_test.rb
index b7aaf7d..eb1248f 100644
--- a/test/integration/output_test.rb
+++ b/test/integration/output_test.rb
@@ -14,7 +14,7 @@ module FunnyFilter
end
def add_tag(input, tag = "p", id = "foo")
- %|<#{tag} id="#{id}">#{input}#{tag}>|
+ %(<#{tag} id="#{id}">#{input}#{tag}>)
end
def paragraph(input)
@@ -22,9 +22,8 @@ module FunnyFilter
end
def link_to(name, url)
- %|#{name}|
+ %(#{name})
end
-
end
class OutputTest < Minitest::Test
@@ -33,34 +32,34 @@ class OutputTest < Minitest::Test
def setup
@assigns = {
'best_cars' => 'bmw',
- 'car' => {'bmw' => 'good', 'gm' => 'bad'}
- }
+ 'car' => { 'bmw' => 'good', 'gm' => 'bad' }
+ }
end
def test_variable
- text = %| {{best_cars}} |
+ text = %( {{best_cars}} )
- expected = %| bmw |
+ expected = %( bmw )
assert_equal expected, Template.parse(text).render!(@assigns)
end
def test_variable_traversing
- text = %| {{car.bmw}} {{car.gm}} {{car.bmw}} |
+ text = %( {{car.bmw}} {{car.gm}} {{car.bmw}} )
- expected = %| good bad good |
+ expected = %( good bad good )
assert_equal expected, Template.parse(text).render!(@assigns)
end
def test_variable_piping
text = %( {{ car.gm | make_funny }} )
- expected = %| LOL |
+ expected = %( LOL )
assert_equal expected, Template.parse(text).render!(@assigns, :filters => [FunnyFilter])
end
def test_variable_piping_with_input
text = %( {{ car.gm | cite_funny }} )
- expected = %| LOL: bad |
+ expected = %( LOL: bad )
assert_equal expected, Template.parse(text).render!(@assigns, :filters => [FunnyFilter])
end
@@ -73,7 +72,7 @@ class OutputTest < Minitest::Test
end
def test_variable_piping_with_no_args
- text = %! {{ car.gm | add_smiley }} !
+ text = %( {{ car.gm | add_smiley }} )
expected = %| bad :-) |
assert_equal expected, Template.parse(text).render!(@assigns, :filters => [FunnyFilter])
@@ -87,29 +86,29 @@ class OutputTest < Minitest::Test
end
def test_variable_piping_with_multiple_args
- text = %! {{ car.gm | add_tag : 'span', 'bar'}} !
- expected = %| bad |
+ text = %( {{ car.gm | add_tag : 'span', 'bar'}} )
+ expected = %( bad )
assert_equal expected, Template.parse(text).render!(@assigns, :filters => [FunnyFilter])
end
def test_variable_piping_with_variable_args
- text = %! {{ car.gm | add_tag : 'span', car.bmw}} !
- expected = %| bad |
+ text = %( {{ car.gm | add_tag : 'span', car.bmw}} )
+ expected = %( bad )
assert_equal expected, Template.parse(text).render!(@assigns, :filters => [FunnyFilter])
end
def test_multiple_pipings
text = %( {{ best_cars | cite_funny | paragraph }} )
- expected = %| LOL: bmw
|
+ expected = %( LOL: bmw
)
assert_equal expected, Template.parse(text).render!(@assigns, :filters => [FunnyFilter])
end
def test_link_to
text = %( {{ 'Typo' | link_to: 'http://typo.leetsoft.com' }} )
- expected = %| Typo |
+ expected = %( Typo )
assert_equal expected, Template.parse(text).render!(@assigns, :filters => [FunnyFilter])
end
diff --git a/test/integration/parsing_quirks_test.rb b/test/integration/parsing_quirks_test.rb
index 7d0ada7..6f45a45 100644
--- a/test/integration/parsing_quirks_test.rb
+++ b/test/integration/parsing_quirks_test.rb
@@ -69,18 +69,18 @@ class ParsingQuirksTest < Minitest::Test
def test_meaningless_parens_lax
with_error_mode(:lax) do
- assigns = {'b' => 'bar', 'c' => 'baz'}
+ assigns = { 'b' => 'bar', 'c' => 'baz' }
markup = "a == 'foo' or (b == 'bar' and c == 'baz') or false"
- assert_template_result(' YES ',"{% if #{markup} %} YES {% endif %}", assigns)
+ assert_template_result(' YES ', "{% if #{markup} %} YES {% endif %}", assigns)
end
end
def test_unexpected_characters_silently_eat_logic_lax
with_error_mode(:lax) do
markup = "true && false"
- assert_template_result(' YES ',"{% if #{markup} %} YES {% endif %}")
+ assert_template_result(' YES ', "{% if #{markup} %} YES {% endif %}")
markup = "false || true"
- assert_template_result('',"{% if #{markup} %} YES {% endif %}")
+ assert_template_result('', "{% if #{markup} %} YES {% endif %}")
end
end
@@ -92,7 +92,7 @@ class ParsingQuirksTest < Minitest::Test
def test_unanchored_filter_arguments
with_error_mode(:lax) do
- assert_template_result('hi',"{{ 'hi there' | split$$$:' ' | first }}")
+ assert_template_result('hi', "{{ 'hi there' | split$$$:' ' | first }}")
assert_template_result('x', "{{ 'X' | downcase) }}")
diff --git a/test/integration/render_profiling_test.rb b/test/integration/render_profiling_test.rb
index 747fcb9..d43a20b 100644
--- a/test/integration/render_profiling_test.rb
+++ b/test/integration/render_profiling_test.rb
@@ -145,7 +145,7 @@ class RenderProfilingTest < Minitest::Test
def test_profiling_marks_children_of_for_blocks
t = Template.parse("{% for item in collection %} {{ item }} {% endfor %}", :profile => true)
- t.render!({"collection" => ["one", "two"]})
+ t.render!({ "collection" => ["one", "two"] })
assert_equal 1, t.profiler.length
# Will profile each invocation of the for block
diff --git a/test/integration/security_test.rb b/test/integration/security_test.rb
index 427975c..033a953 100644
--- a/test/integration/security_test.rb
+++ b/test/integration/security_test.rb
@@ -11,30 +11,28 @@ class SecurityTest < Minitest::Test
def test_no_instance_eval
text = %( {{ '1+1' | instance_eval }} )
- expected = %| 1+1 |
+ expected = %( 1+1 )
assert_equal expected, Template.parse(text).render!(@assigns)
end
def test_no_existing_instance_eval
text = %( {{ '1+1' | __instance_eval__ }} )
- expected = %| 1+1 |
+ expected = %( 1+1 )
assert_equal expected, Template.parse(text).render!(@assigns)
end
-
def test_no_instance_eval_after_mixing_in_new_filter
text = %( {{ '1+1' | instance_eval }} )
- expected = %| 1+1 |
+ expected = %( 1+1 )
assert_equal expected, Template.parse(text).render!(@assigns)
end
-
def test_no_instance_eval_later_in_chain
text = %( {{ '1+1' | add_one | instance_eval }} )
- expected = %| 1+1 + 1 |
+ expected = %( 1+1 + 1 )
assert_equal expected, Template.parse(text).render!(@assigns, :filters => SecurityFilter)
end
diff --git a/test/integration/standard_filter_test.rb b/test/integration/standard_filter_test.rb
index 9eef70b..8dc376c 100644
--- a/test/integration/standard_filter_test.rb
+++ b/test/integration/standard_filter_test.rb
@@ -49,7 +49,7 @@ class StandardFiltersTest < Minitest::Test
end
def test_size
- assert_equal 3, @filters.size([1,2,3])
+ assert_equal 3, @filters.size([1, 2, 3])
assert_equal 0, @filters.size([])
assert_equal 0, @filters.size(nil)
end
@@ -80,16 +80,16 @@ class StandardFiltersTest < Minitest::Test
def test_slice_on_arrays
input = 'foobar'.split(//)
- assert_equal %w{o o b}, @filters.slice(input, 1, 3)
- assert_equal %w{o o b a r}, @filters.slice(input, 1, 1000)
- assert_equal %w{}, @filters.slice(input, 1, 0)
- assert_equal %w{o}, @filters.slice(input, 1, 1)
- assert_equal %w{b a r}, @filters.slice(input, 3, 3)
- assert_equal %w{a r}, @filters.slice(input, -2, 2)
- assert_equal %w{a r}, @filters.slice(input, -2, 1000)
- assert_equal %w{r}, @filters.slice(input, -1)
- assert_equal %w{}, @filters.slice(input, 100, 10)
- assert_equal %w{}, @filters.slice(input, -100, 10)
+ assert_equal %w(o o b), @filters.slice(input, 1, 3)
+ assert_equal %w(o o b a r), @filters.slice(input, 1, 1000)
+ assert_equal %w(), @filters.slice(input, 1, 0)
+ assert_equal %w(o), @filters.slice(input, 1, 1)
+ assert_equal %w(b a r), @filters.slice(input, 3, 3)
+ assert_equal %w(a r), @filters.slice(input, -2, 2)
+ assert_equal %w(a r), @filters.slice(input, -2, 1000)
+ assert_equal %w(r), @filters.slice(input, -1)
+ assert_equal %w(), @filters.slice(input, 100, 10)
+ assert_equal %w(), @filters.slice(input, -100, 10)
end
def test_truncate
@@ -101,11 +101,11 @@ class StandardFiltersTest < Minitest::Test
end
def test_split
- assert_equal ['12','34'], @filters.split('12~34', '~')
- assert_equal ['A? ',' ,Z'], @filters.split('A? ~ ~ ~ ,Z', '~ ~ ~')
+ assert_equal ['12', '34'], @filters.split('12~34', '~')
+ assert_equal ['A? ', ' ,Z'], @filters.split('A? ~ ~ ~ ,Z', '~ ~ ~')
assert_equal ['A?Z'], @filters.split('A?Z', '~')
# Regexp works although Liquid does not support.
- assert_equal ['A','Z'], @filters.split('AxZ', /x/)
+ assert_equal ['A', 'Z'], @filters.split('AxZ', /x/)
assert_equal [], @filters.split(nil, ' ')
end
@@ -142,45 +142,45 @@ class StandardFiltersTest < Minitest::Test
end
def test_join
- assert_equal '1 2 3 4', @filters.join([1,2,3,4])
- assert_equal '1 - 2 - 3 - 4', @filters.join([1,2,3,4], ' - ')
+ assert_equal '1 2 3 4', @filters.join([1, 2, 3, 4])
+ assert_equal '1 - 2 - 3 - 4', @filters.join([1, 2, 3, 4], ' - ')
end
def test_sort
- assert_equal [1,2,3,4], @filters.sort([4,3,2,1])
- assert_equal [{"a" => 1}, {"a" => 2}, {"a" => 3}, {"a" => 4}], @filters.sort([{"a" => 4}, {"a" => 3}, {"a" => 1}, {"a" => 2}], "a")
+ assert_equal [1, 2, 3, 4], @filters.sort([4, 3, 2, 1])
+ assert_equal [{ "a" => 1 }, { "a" => 2 }, { "a" => 3 }, { "a" => 4 }], @filters.sort([{ "a" => 4 }, { "a" => 3 }, { "a" => 1 }, { "a" => 2 }], "a")
end
def test_legacy_sort_hash
- assert_equal [{a:1, b:2}], @filters.sort({a:1, b:2})
+ assert_equal [{ a: 1, b: 2 }], @filters.sort({ a: 1, b: 2 })
end
def test_numerical_vs_lexicographical_sort
assert_equal [2, 10], @filters.sort([10, 2])
- assert_equal [{"a" => 2}, {"a" => 10}], @filters.sort([{"a" => 10}, {"a" => 2}], "a")
+ assert_equal [{ "a" => 2 }, { "a" => 10 }], @filters.sort([{ "a" => 10 }, { "a" => 2 }], "a")
assert_equal ["10", "2"], @filters.sort(["10", "2"])
- assert_equal [{"a" => "10"}, {"a" => "2"}], @filters.sort([{"a" => "10"}, {"a" => "2"}], "a")
+ assert_equal [{ "a" => "10" }, { "a" => "2" }], @filters.sort([{ "a" => "10" }, { "a" => "2" }], "a")
end
def test_uniq
- assert_equal [1,3,2,4], @filters.uniq([1,1,3,2,3,1,4,3,2,1])
- assert_equal [{"a" => 1}, {"a" => 3}, {"a" => 2}], @filters.uniq([{"a" => 1}, {"a" => 3}, {"a" => 1}, {"a" => 2}], "a")
+ assert_equal [1, 3, 2, 4], @filters.uniq([1, 1, 3, 2, 3, 1, 4, 3, 2, 1])
+ assert_equal [{ "a" => 1 }, { "a" => 3 }, { "a" => 2 }], @filters.uniq([{ "a" => 1 }, { "a" => 3 }, { "a" => 1 }, { "a" => 2 }], "a")
testdrop = TestDrop.new
assert_equal [testdrop], @filters.uniq([testdrop, TestDrop.new], 'test')
end
def test_reverse
- assert_equal [4,3,2,1], @filters.reverse([1,2,3,4])
+ assert_equal [4, 3, 2, 1], @filters.reverse([1, 2, 3, 4])
end
def test_legacy_reverse_hash
- assert_equal [{a:1, b:2}], @filters.reverse(a:1, b:2)
+ assert_equal [{ a: 1, b: 2 }], @filters.reverse(a: 1, b: 2)
end
def test_map
- assert_equal [1,2,3,4], @filters.map([{"a" => 1}, {"a" => 2}, {"a" => 3}, {"a" => 4}], 'a')
+ assert_equal [1, 2, 3, 4], @filters.map([{ "a" => 1 }, { "a" => 2 }, { "a" => 3 }, { "a" => 4 }], 'a')
assert_template_result 'abc', "{{ ary | map:'foo' | map:'bar' }}",
- 'ary' => [{'foo' => {'bar' => 'a'}}, {'foo' => {'bar' => 'b'}}, {'foo' => {'bar' => 'c'}}]
+ 'ary' => [{ 'foo' => { 'bar' => 'a' } }, { 'foo' => { 'bar' => 'b' } }, { 'foo' => { 'bar' => 'c' } }]
end
def test_map_doesnt_call_arbitrary_stuff
@@ -212,7 +212,7 @@ class StandardFiltersTest < Minitest::Test
def test_map_over_proc
drop = TestDrop.new
- p = Proc.new{ drop }
+ p = proc{ drop }
templ = '{{ procs | map: "test" }}'
assert_template_result "testfoo", templ, "procs" => [p]
end
@@ -260,8 +260,8 @@ class StandardFiltersTest < Minitest::Test
end
def test_first_last
- assert_equal 1, @filters.first([1,2,3])
- assert_equal 3, @filters.last([1,2,3])
+ assert_equal 1, @filters.first([1, 2, 3])
+ assert_equal 3, @filters.last([1, 2, 3])
assert_equal nil, @filters.first([])
assert_equal nil, @filters.last([])
end
@@ -356,9 +356,9 @@ class StandardFiltersTest < Minitest::Test
end
def test_append
- assigns = {'a' => 'bc', 'b' => 'd' }
- assert_template_result('bcd',"{{ a | append: 'd'}}",assigns)
- assert_template_result('bcd',"{{ a | append: b}}",assigns)
+ assigns = { 'a' => 'bc', 'b' => 'd' }
+ assert_template_result('bcd', "{{ a | append: 'd'}}", assigns)
+ assert_template_result('bcd', "{{ a | append: b}}", assigns)
end
def test_concat
@@ -373,9 +373,9 @@ class StandardFiltersTest < Minitest::Test
end
def test_prepend
- assigns = {'a' => 'bc', 'b' => 'a' }
- assert_template_result('abc',"{{ a | prepend: 'a'}}",assigns)
- assert_template_result('abc',"{{ a | prepend: b}}",assigns)
+ assigns = { 'a' => 'bc', 'b' => 'a' }
+ assert_template_result('abc', "{{ a | prepend: 'a'}}", assigns)
+ assert_template_result('abc', "{{ a | prepend: b}}", assigns)
end
def test_default
@@ -388,6 +388,6 @@ class StandardFiltersTest < Minitest::Test
end
def test_cannot_access_private_methods
- assert_template_result('a',"{{ 'a' | to_number }}")
+ assert_template_result('a', "{{ 'a' | to_number }}")
end
end # StandardFiltersTest
diff --git a/test/integration/tags/break_tag_test.rb b/test/integration/tags/break_tag_test.rb
index 1dd657b..6de955a 100644
--- a/test/integration/tags/break_tag_test.rb
+++ b/test/integration/tags/break_tag_test.rb
@@ -6,7 +6,7 @@ class BreakTagTest < Minitest::Test
# tests that no weird errors are raised if break is called outside of a
# block
def test_break_with_no_block
- assigns = {'i' => 1}
+ assigns = { 'i' => 1 }
markup = '{% break %}'
expected = ''
diff --git a/test/integration/tags/for_tag_test.rb b/test/integration/tags/for_tag_test.rb
index 23752bb..977bd65 100644
--- a/test/integration/tags/for_tag_test.rb
+++ b/test/integration/tags/for_tag_test.rb
@@ -10,10 +10,10 @@ class ForTagTest < Minitest::Test
include Liquid
def test_for
- assert_template_result(' yo yo yo yo ','{%for item in array%} yo {%endfor%}','array' => [1,2,3,4])
- assert_template_result('yoyo','{%for item in array%}yo{%endfor%}','array' => [1,2])
- assert_template_result(' yo ','{%for item in array%} yo {%endfor%}','array' => [1])
- assert_template_result('','{%for item in array%}{%endfor%}','array' => [1,2])
+ assert_template_result(' yo yo yo yo ', '{%for item in array%} yo {%endfor%}', 'array' => [1, 2, 3, 4])
+ assert_template_result('yoyo', '{%for item in array%}yo{%endfor%}', 'array' => [1, 2])
+ assert_template_result(' yo ', '{%for item in array%} yo {%endfor%}', 'array' => [1])
+ assert_template_result('', '{%for item in array%}{%endfor%}', 'array' => [1, 2])
expected = < [1,2,3])
+ assert_template_result(expected, template, 'array' => [1, 2, 3])
end
def test_for_reversed
- assigns = {'array' => [ 1, 2, 3] }
- assert_template_result('321','{%for item in array reversed %}{{item}}{%endfor%}',assigns)
+ assigns = { 'array' => [ 1, 2, 3] }
+ assert_template_result('321', '{%for item in array reversed %}{{item}}{%endfor%}', assigns)
end
def test_for_with_range
- assert_template_result(' 1 2 3 ','{%for item in (1..3) %} {{item}} {%endfor%}')
+ assert_template_result(' 1 2 3 ', '{%for item in (1..3) %} {{item}} {%endfor%}')
end
def test_for_with_variable_range
- assert_template_result(' 1 2 3 ','{%for item in (1..foobar) %} {{item}} {%endfor%}', "foobar" => 3)
+ assert_template_result(' 1 2 3 ', '{%for item in (1..foobar) %} {{item}} {%endfor%}', "foobar" => 3)
end
def test_for_with_hash_value_range
foobar = { "value" => 3 }
- assert_template_result(' 1 2 3 ','{%for item in (1..foobar.value) %} {{item}} {%endfor%}', "foobar" => foobar)
+ assert_template_result(' 1 2 3 ', '{%for item in (1..foobar.value) %} {{item}} {%endfor%}', "foobar" => foobar)
end
def test_for_with_drop_value_range
foobar = ThingWithValue.new
- assert_template_result(' 1 2 3 ','{%for item in (1..foobar.value) %} {{item}} {%endfor%}', "foobar" => foobar)
+ assert_template_result(' 1 2 3 ', '{%for item in (1..foobar.value) %} {{item}} {%endfor%}', "foobar" => foobar)
end
def test_for_with_variable
- assert_template_result(' 1 2 3 ','{%for item in array%} {{item}} {%endfor%}','array' => [1,2,3])
- assert_template_result('123','{%for item in array%}{{item}}{%endfor%}','array' => [1,2,3])
- assert_template_result('123','{% for item in array %}{{item}}{% endfor %}','array' => [1,2,3])
- assert_template_result('abcd','{%for item in array%}{{item}}{%endfor%}','array' => ['a','b','c','d'])
- assert_template_result('a b c','{%for item in array%}{{item}}{%endfor%}','array' => ['a',' ','b',' ','c'])
- assert_template_result('abc','{%for item in array%}{{item}}{%endfor%}','array' => ['a','','b','','c'])
+ assert_template_result(' 1 2 3 ', '{%for item in array%} {{item}} {%endfor%}', 'array' => [1, 2, 3])
+ assert_template_result('123', '{%for item in array%}{{item}}{%endfor%}', 'array' => [1, 2, 3])
+ assert_template_result('123', '{% for item in array %}{{item}}{% endfor %}', 'array' => [1, 2, 3])
+ assert_template_result('abcd', '{%for item in array%}{{item}}{%endfor%}', 'array' => ['a', 'b', 'c', 'd'])
+ assert_template_result('a b c', '{%for item in array%}{{item}}{%endfor%}', 'array' => ['a', ' ', 'b', ' ', 'c'])
+ assert_template_result('abc', '{%for item in array%}{{item}}{%endfor%}', 'array' => ['a', '', 'b', '', 'c'])
end
def test_for_helpers
- assigns = {'array' => [1,2,3] }
+ assigns = { 'array' => [1, 2, 3] }
assert_template_result(' 1/3 2/3 3/3 ',
- '{%for item in array%} {{forloop.index}}/{{forloop.length}} {%endfor%}',
- assigns)
+ '{%for item in array%} {{forloop.index}}/{{forloop.length}} {%endfor%}',
+ assigns)
assert_template_result(' 1 2 3 ', '{%for item in array%} {{forloop.index}} {%endfor%}', assigns)
assert_template_result(' 0 1 2 ', '{%for item in array%} {{forloop.index0}} {%endfor%}', assigns)
assert_template_result(' 2 1 0 ', '{%for item in array%} {{forloop.rindex0}} {%endfor%}', assigns)
@@ -77,20 +77,20 @@ HERE
end
def test_for_and_if
- assigns = {'array' => [1,2,3] }
+ assigns = { 'array' => [1, 2, 3] }
assert_template_result('+--',
- '{%for item in array%}{% if forloop.first %}+{% else %}-{% endif %}{%endfor%}',
- assigns)
+ '{%for item in array%}{% if forloop.first %}+{% else %}-{% endif %}{%endfor%}',
+ assigns)
end
def test_for_else
- assert_template_result('+++', '{%for item in array%}+{%else%}-{%endfor%}', 'array'=>[1,2,3])
- assert_template_result('-', '{%for item in array%}+{%else%}-{%endfor%}', 'array'=>[])
- assert_template_result('-', '{%for item in array%}+{%else%}-{%endfor%}', 'array'=>nil)
+ assert_template_result('+++', '{%for item in array%}+{%else%}-{%endfor%}', 'array' => [1, 2, 3])
+ assert_template_result('-', '{%for item in array%}+{%else%}-{%endfor%}', 'array' => [])
+ assert_template_result('-', '{%for item in array%}+{%else%}-{%endfor%}', 'array' => nil)
end
def test_limiting
- assigns = {'array' => [1,2,3,4,5,6,7,8,9,0]}
+ assigns = { 'array' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] }
assert_template_result('12', '{%for i in array limit:2 %}{{ i }}{%endfor%}', assigns)
assert_template_result('1234', '{%for i in array limit:4 %}{{ i }}{%endfor%}', assigns)
assert_template_result('3456', '{%for i in array limit:4 offset:2 %}{{ i }}{%endfor%}', assigns)
@@ -98,7 +98,7 @@ HERE
end
def test_dynamic_variable_limiting
- assigns = {'array' => [1,2,3,4,5,6,7,8,9,0]}
+ assigns = { 'array' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] }
assigns['limit'] = 2
assigns['offset'] = 2
@@ -106,17 +106,17 @@ HERE
end
def test_nested_for
- assigns = {'array' => [[1,2],[3,4],[5,6]] }
+ assigns = { 'array' => [[1, 2], [3, 4], [5, 6]] }
assert_template_result('123456', '{%for item in array%}{%for i in item%}{{ i }}{%endfor%}{%endfor%}', assigns)
end
def test_offset_only
- assigns = {'array' => [1,2,3,4,5,6,7,8,9,0]}
+ assigns = { 'array' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] }
assert_template_result('890', '{%for i in array offset:7 %}{{ i }}{%endfor%}', assigns)
end
def test_pause_resume
- assigns = {'array' => {'items' => [1,2,3,4,5,6,7,8,9,0]}}
+ assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] } }
markup = <<-MKUP
{%for i in array.items limit: 3 %}{{i}}{%endfor%}
next
@@ -131,11 +131,11 @@ HERE
next
789
XPCTD
- assert_template_result(expected,markup,assigns)
+ assert_template_result(expected, markup, assigns)
end
def test_pause_resume_limit
- assigns = {'array' => {'items' => [1,2,3,4,5,6,7,8,9,0]}}
+ assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] } }
markup = <<-MKUP
{%for i in array.items limit:3 %}{{i}}{%endfor%}
next
@@ -150,11 +150,11 @@ HERE
next
7
XPCTD
- assert_template_result(expected,markup,assigns)
+ assert_template_result(expected, markup, assigns)
end
def test_pause_resume_BIG_limit
- assigns = {'array' => {'items' => [1,2,3,4,5,6,7,8,9,0]}}
+ assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] } }
markup = <<-MKUP
{%for i in array.items limit:3 %}{{i}}{%endfor%}
next
@@ -169,103 +169,102 @@ HERE
next
7890
XPCTD
- assert_template_result(expected,markup,assigns)
+ assert_template_result(expected, markup, assigns)
end
-
def test_pause_resume_BIG_offset
- assigns = {'array' => {'items' => [1,2,3,4,5,6,7,8,9,0]}}
- markup = %q({%for i in array.items limit:3 %}{{i}}{%endfor%}
+ assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] } }
+ markup = '{%for i in array.items limit:3 %}{{i}}{%endfor%}
next
{%for i in array.items offset:continue limit:3 %}{{i}}{%endfor%}
next
- {%for i in array.items offset:continue limit:3 offset:1000 %}{{i}}{%endfor%})
- expected = %q(123
+ {%for i in array.items offset:continue limit:3 offset:1000 %}{{i}}{%endfor%}'
+ expected = '123
next
456
next
- )
- assert_template_result(expected,markup,assigns)
+ '
+ assert_template_result(expected, markup, assigns)
end
def test_for_with_break
- assigns = {'array' => {'items' => [1,2,3,4,5,6,7,8,9,10]}}
+ assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] } }
markup = '{% for i in array.items %}{% break %}{% endfor %}'
expected = ""
- assert_template_result(expected,markup,assigns)
+ assert_template_result(expected, markup, assigns)
markup = '{% for i in array.items %}{{ i }}{% break %}{% endfor %}'
expected = "1"
- assert_template_result(expected,markup,assigns)
+ assert_template_result(expected, markup, assigns)
markup = '{% for i in array.items %}{% break %}{{ i }}{% endfor %}'
expected = ""
- assert_template_result(expected,markup,assigns)
+ assert_template_result(expected, markup, assigns)
markup = '{% for i in array.items %}{{ i }}{% if i > 3 %}{% break %}{% endif %}{% endfor %}'
expected = "1234"
- assert_template_result(expected,markup,assigns)
+ assert_template_result(expected, markup, assigns)
# 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 %}' +
+ assigns = { 'array' => [[1, 2], [3, 4], [5, 6]] }
+ 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)
# test break does nothing when unreached
- assigns = {'array' => {'items' => [1,2,3,4,5]}}
+ assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5] } }
markup = '{% for i in array.items %}{% if i == 9999 %}{% break %}{% endif %}{{ i }}{% endfor %}'
expected = '12345'
assert_template_result(expected, markup, assigns)
end
def test_for_with_continue
- assigns = {'array' => {'items' => [1,2,3,4,5]}}
+ assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5] } }
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"
- assert_template_result(expected,markup,assigns)
+ assert_template_result(expected, markup, assigns)
markup = '{% for i in array.items %}{% if i == 3 %}{% continue %}{% else %}{{ i }}{% endif %}{% endfor %}'
expected = "1245"
- assert_template_result(expected,markup,assigns)
+ assert_template_result(expected, markup, assigns)
# 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 %}' +
+ assigns = { 'array' => [[1, 2], [3, 4], [5, 6]] }
+ 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)
# test continue does nothing when unreached
- assigns = {'array' => {'items' => [1,2,3,4,5]}}
+ assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5] } }
markup = '{% for i in array.items %}{% if i == 9999 %}{% continue %}{% endif %}{{ i }}{% endfor %}'
expected = '12345'
assert_template_result(expected, markup, assigns)
@@ -277,41 +276,41 @@ HERE
# the functionality for backwards compatibility
assert_template_result('test string',
- '{%for val in string%}{{val}}{%endfor%}',
- 'string' => "test string")
+ '{%for val in string%}{{val}}{%endfor%}',
+ 'string' => "test string")
assert_template_result('test string',
- '{%for val in string limit:1%}{{val}}{%endfor%}',
- 'string' => "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%}',
- 'string' => "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
def test_for_parentloop_references_parent_loop
assert_template_result('1.1 1.2 1.3 2.1 2.2 2.3 ',
- '{% for inner in outer %}{% for k in inner %}' +
- '{{ forloop.parentloop.index }}.{{ forloop.index }} ' +
- '{% endfor %}{% endfor %}',
- 'outer' => [[1, 1, 1], [1, 1, 1]])
+ '{% for inner in outer %}{% for k in inner %}' \
+ '{{ forloop.parentloop.index }}.{{ forloop.index }} ' \
+ '{% endfor %}{% endfor %}',
+ 'outer' => [[1, 1, 1], [1, 1, 1]])
end
def test_for_parentloop_nil_when_not_present
assert_template_result('.1 .2 ',
- '{% for inner in outer %}' +
- '{{ forloop.parentloop.index }}.{{ forloop.index }} ' +
- '{% endfor %}',
- 'outer' => [[1, 1, 1], [1, 1, 1]])
+ '{% for inner in outer %}' \
+ '{{ forloop.parentloop.index }}.{{ forloop.index }} ' \
+ '{% endfor %}',
+ 'outer' => [[1, 1, 1], [1, 1, 1]])
end
def test_blank_string_not_iterable
@@ -327,7 +326,7 @@ HERE
def test_spacing_with_variable_naming_in_for_loop
expected = '12345'
template = '{% for item in items %}{{item}}{% endfor %}'
- assigns = {'items' => [1,2,3,4,5]}
+ assigns = { 'items' => [1, 2, 3, 4, 5] }
assert_template_result(expected, template, assigns)
end
@@ -345,13 +344,13 @@ HERE
def load_slice(from, to)
@load_slice_called = true
- @data[(from..to-1)]
+ @data[(from..to - 1)]
end
end
def test_iterate_with_each_when_no_limit_applied
- loader = LoaderDrop.new([1,2,3,4,5])
- assigns = {'items' => loader}
+ loader = LoaderDrop.new([1, 2, 3, 4, 5])
+ assigns = { 'items' => loader }
expected = '12345'
template = '{% for item in items %}{{item}}{% endfor %}'
assert_template_result(expected, template, assigns)
@@ -360,8 +359,8 @@ HERE
end
def test_iterate_with_load_slice_when_limit_applied
- loader = LoaderDrop.new([1,2,3,4,5])
- assigns = {'items' => loader}
+ loader = LoaderDrop.new([1, 2, 3, 4, 5])
+ assigns = { 'items' => loader }
expected = '1'
template = '{% for item in items limit:1 %}{{item}}{% endfor %}'
assert_template_result(expected, template, assigns)
@@ -370,8 +369,8 @@ HERE
end
def test_iterate_with_load_slice_when_limit_and_offset_applied
- loader = LoaderDrop.new([1,2,3,4,5])
- assigns = {'items' => loader}
+ loader = LoaderDrop.new([1, 2, 3, 4, 5])
+ assigns = { 'items' => loader }
expected = '34'
template = '{% for item in items offset:2 limit:2 %}{{item}}{% endfor %}'
assert_template_result(expected, template, assigns)
@@ -380,9 +379,9 @@ HERE
end
def test_iterate_with_load_slice_returns_same_results_as_without
- loader = LoaderDrop.new([1,2,3,4,5])
- loader_assigns = {'items' => loader}
- array_assigns = {'items' => [1,2,3,4,5]}
+ loader = LoaderDrop.new([1, 2, 3, 4, 5])
+ loader_assigns = { 'items' => loader }
+ array_assigns = { 'items' => [1, 2, 3, 4, 5] }
expected = '34'
template = '{% for item in items offset:2 limit:2 %}{{item}}{% endfor %}'
assert_template_result(expected, template, loader_assigns)
diff --git a/test/integration/tags/if_else_tag_test.rb b/test/integration/tags/if_else_tag_test.rb
index 3e1797e..73a7acc 100644
--- a/test/integration/tags/if_else_tag_test.rb
+++ b/test/integration/tags/if_else_tag_test.rb
@@ -4,101 +4,100 @@ class IfElseTagTest < Minitest::Test
include Liquid
def test_if
- assert_template_result(' ',' {% if false %} this text should not go into the output {% endif %} ')
+ assert_template_result(' ', ' {% if false %} this text should not go into the output {% endif %} ')
assert_template_result(' this text should go into the output ',
- ' {% if true %} this text should go into the output {% endif %} ')
- assert_template_result(' you rock ?','{% if false %} you suck {% endif %} {% if true %} you rock {% endif %}?')
+ ' {% if true %} this text should go into the output {% endif %} ')
+ assert_template_result(' you rock ?', '{% if false %} you suck {% endif %} {% if true %} you rock {% endif %}?')
end
def test_literal_comparisons
- assert_template_result(' NO ','{% assign v = false %}{% if v %} YES {% else %} NO {% endif %}')
- assert_template_result(' YES ','{% assign v = nil %}{% if v == nil %} YES {% else %} NO {% endif %}')
+ assert_template_result(' NO ', '{% assign v = false %}{% if v %} YES {% else %} NO {% endif %}')
+ assert_template_result(' YES ', '{% assign v = nil %}{% if v == nil %} YES {% else %} NO {% endif %}')
end
def test_if_else
- assert_template_result(' YES ','{% if false %} NO {% else %} YES {% endif %}')
- assert_template_result(' YES ','{% if true %} YES {% else %} NO {% endif %}')
- assert_template_result(' YES ','{% if "foo" %} YES {% else %} NO {% endif %}')
+ assert_template_result(' YES ', '{% if false %} NO {% else %} YES {% endif %}')
+ assert_template_result(' YES ', '{% if true %} YES {% else %} NO {% endif %}')
+ assert_template_result(' YES ', '{% if "foo" %} YES {% else %} NO {% endif %}')
end
def test_if_boolean
- assert_template_result(' YES ','{% if var %} YES {% endif %}', 'var' => true)
+ assert_template_result(' YES ', '{% if var %} YES {% endif %}', 'var' => true)
end
def test_if_or
- assert_template_result(' YES ','{% if a or b %} YES {% endif %}', 'a' => true, 'b' => true)
- assert_template_result(' YES ','{% if a or b %} YES {% endif %}', 'a' => true, 'b' => false)
- assert_template_result(' YES ','{% if a or b %} YES {% endif %}', 'a' => false, 'b' => true)
+ assert_template_result(' YES ', '{% if a or b %} YES {% endif %}', 'a' => true, 'b' => true)
+ assert_template_result(' YES ', '{% if a or b %} YES {% endif %}', 'a' => true, 'b' => false)
+ assert_template_result(' YES ', '{% if a or b %} YES {% endif %}', 'a' => false, 'b' => true)
assert_template_result('', '{% if a or b %} YES {% endif %}', 'a' => false, 'b' => false)
- assert_template_result(' YES ','{% if a or b or c %} YES {% endif %}', 'a' => false, 'b' => false, 'c' => true)
+ assert_template_result(' YES ', '{% if a or b or c %} YES {% endif %}', 'a' => false, 'b' => false, 'c' => true)
assert_template_result('', '{% if a or b or c %} YES {% endif %}', 'a' => false, 'b' => false, 'c' => false)
end
def test_if_or_with_operators
- assert_template_result(' YES ','{% if a == true or b == true %} YES {% endif %}', 'a' => true, 'b' => true)
- assert_template_result(' YES ','{% if a == true or b == false %} YES {% endif %}', 'a' => true, 'b' => true)
- assert_template_result('','{% if a == false or b == false %} YES {% endif %}', 'a' => true, 'b' => true)
+ assert_template_result(' YES ', '{% if a == true or b == true %} YES {% endif %}', 'a' => true, 'b' => true)
+ assert_template_result(' YES ', '{% if a == true or b == false %} YES {% endif %}', 'a' => true, 'b' => true)
+ assert_template_result('', '{% if a == false or b == false %} YES {% endif %}', 'a' => true, 'b' => true)
end
def test_comparison_of_strings_containing_and_or_or
awful_markup = "a == 'and' and b == 'or' and c == 'foo and bar' and d == 'bar or baz' and e == 'foo' and foo and bar"
- assigns = {'a' => 'and', 'b' => 'or', 'c' => 'foo and bar', 'd' => 'bar or baz', 'e' => 'foo', 'foo' => true, 'bar' => true}
- assert_template_result(' YES ',"{% if #{awful_markup} %} YES {% endif %}", assigns)
+ assigns = { 'a' => 'and', 'b' => 'or', 'c' => 'foo and bar', 'd' => 'bar or baz', 'e' => 'foo', 'foo' => true, 'bar' => true }
+ assert_template_result(' YES ', "{% if #{awful_markup} %} YES {% endif %}", assigns)
end
def test_comparison_of_expressions_starting_with_and_or_or
- assigns = {'order' => {'items_count' => 0}, 'android' => {'name' => 'Roy'}}
- assert_template_result( "YES",
- "{% if android.name == 'Roy' %}YES{% endif %}",
- assigns)
- assert_template_result( "YES",
- "{% if order.items_count == 0 %}YES{% endif %}",
- assigns)
+ assigns = { 'order' => { 'items_count' => 0 }, 'android' => { 'name' => 'Roy' } }
+ assert_template_result("YES",
+ "{% if android.name == 'Roy' %}YES{% endif %}",
+ assigns)
+ assert_template_result("YES",
+ "{% if order.items_count == 0 %}YES{% endif %}",
+ assigns)
end
def test_if_and
- assert_template_result(' YES ','{% if true and true %} YES {% endif %}')
- assert_template_result('','{% if false and true %} YES {% endif %}')
- assert_template_result('','{% if false and true %} YES {% endif %}')
+ assert_template_result(' YES ', '{% if true and true %} YES {% endif %}')
+ assert_template_result('', '{% if false and true %} YES {% endif %}')
+ assert_template_result('', '{% if false and true %} YES {% endif %}')
end
-
def test_hash_miss_generates_false
- assert_template_result('','{% if foo.bar %} NO {% endif %}', 'foo' => {})
+ assert_template_result('', '{% if foo.bar %} NO {% endif %}', 'foo' => {})
end
def test_if_from_variable
- assert_template_result('','{% if var %} NO {% endif %}', 'var' => false)
- assert_template_result('','{% if var %} NO {% endif %}', 'var' => nil)
- assert_template_result('','{% if foo.bar %} NO {% endif %}', 'foo' => {'bar' => false})
- assert_template_result('','{% if foo.bar %} NO {% endif %}', 'foo' => {})
- assert_template_result('','{% if foo.bar %} NO {% endif %}', 'foo' => nil)
- assert_template_result('','{% if foo.bar %} NO {% endif %}', 'foo' => true)
+ assert_template_result('', '{% if var %} NO {% endif %}', 'var' => false)
+ assert_template_result('', '{% if var %} NO {% endif %}', 'var' => nil)
+ assert_template_result('', '{% if foo.bar %} NO {% endif %}', 'foo' => { 'bar' => false })
+ assert_template_result('', '{% if foo.bar %} NO {% endif %}', 'foo' => {})
+ assert_template_result('', '{% if foo.bar %} NO {% endif %}', 'foo' => nil)
+ assert_template_result('', '{% if foo.bar %} NO {% endif %}', 'foo' => true)
- assert_template_result(' YES ','{% if var %} YES {% endif %}', 'var' => "text")
- assert_template_result(' YES ','{% if var %} YES {% endif %}', 'var' => true)
- assert_template_result(' YES ','{% if var %} YES {% endif %}', 'var' => 1)
- assert_template_result(' YES ','{% if var %} YES {% endif %}', 'var' => {})
- assert_template_result(' YES ','{% if var %} YES {% endif %}', 'var' => [])
- assert_template_result(' YES ','{% if "foo" %} YES {% endif %}')
- assert_template_result(' YES ','{% if foo.bar %} YES {% endif %}', 'foo' => {'bar' => true})
- assert_template_result(' YES ','{% if foo.bar %} YES {% endif %}', 'foo' => {'bar' => "text"})
- assert_template_result(' YES ','{% if foo.bar %} YES {% endif %}', 'foo' => {'bar' => 1 })
- assert_template_result(' YES ','{% if foo.bar %} YES {% endif %}', 'foo' => {'bar' => {} })
- assert_template_result(' YES ','{% if foo.bar %} YES {% endif %}', 'foo' => {'bar' => [] })
+ assert_template_result(' YES ', '{% if var %} YES {% endif %}', 'var' => "text")
+ assert_template_result(' YES ', '{% if var %} YES {% endif %}', 'var' => true)
+ assert_template_result(' YES ', '{% if var %} YES {% endif %}', 'var' => 1)
+ assert_template_result(' YES ', '{% if var %} YES {% endif %}', 'var' => {})
+ assert_template_result(' YES ', '{% if var %} YES {% endif %}', 'var' => [])
+ assert_template_result(' YES ', '{% if "foo" %} YES {% endif %}')
+ assert_template_result(' YES ', '{% if foo.bar %} YES {% endif %}', 'foo' => { 'bar' => true })
+ assert_template_result(' YES ', '{% if foo.bar %} YES {% endif %}', 'foo' => { 'bar' => "text" })
+ assert_template_result(' YES ', '{% if foo.bar %} YES {% endif %}', 'foo' => { 'bar' => 1 })
+ assert_template_result(' YES ', '{% if foo.bar %} YES {% endif %}', 'foo' => { 'bar' => {} })
+ assert_template_result(' YES ', '{% if foo.bar %} YES {% endif %}', 'foo' => { 'bar' => [] })
- assert_template_result(' YES ','{% if var %} NO {% else %} YES {% endif %}', 'var' => false)
- assert_template_result(' YES ','{% if var %} NO {% else %} YES {% endif %}', 'var' => nil)
- assert_template_result(' YES ','{% if var %} YES {% else %} NO {% endif %}', 'var' => true)
- assert_template_result(' YES ','{% if "foo" %} YES {% else %} NO {% endif %}', 'var' => "text")
+ assert_template_result(' YES ', '{% if var %} NO {% else %} YES {% endif %}', 'var' => false)
+ assert_template_result(' YES ', '{% if var %} NO {% else %} YES {% endif %}', 'var' => nil)
+ assert_template_result(' YES ', '{% if var %} YES {% else %} NO {% endif %}', 'var' => true)
+ assert_template_result(' YES ', '{% if "foo" %} YES {% else %} NO {% endif %}', 'var' => "text")
- assert_template_result(' YES ','{% if foo.bar %} NO {% else %} YES {% endif %}', 'foo' => {'bar' => false})
- assert_template_result(' YES ','{% if foo.bar %} YES {% else %} NO {% endif %}', 'foo' => {'bar' => true})
- assert_template_result(' YES ','{% if foo.bar %} YES {% else %} NO {% endif %}', 'foo' => {'bar' => "text"})
- assert_template_result(' YES ','{% if foo.bar %} NO {% else %} YES {% endif %}', 'foo' => {'notbar' => true})
- assert_template_result(' YES ','{% if foo.bar %} NO {% else %} YES {% endif %}', 'foo' => {})
- assert_template_result(' YES ','{% if foo.bar %} NO {% else %} YES {% endif %}', 'notfoo' => {'bar' => true})
+ assert_template_result(' YES ', '{% if foo.bar %} NO {% else %} YES {% endif %}', 'foo' => { 'bar' => false })
+ assert_template_result(' YES ', '{% if foo.bar %} YES {% else %} NO {% endif %}', 'foo' => { 'bar' => true })
+ assert_template_result(' YES ', '{% if foo.bar %} YES {% else %} NO {% endif %}', 'foo' => { 'bar' => "text" })
+ assert_template_result(' YES ', '{% if foo.bar %} NO {% else %} YES {% endif %}', 'foo' => { 'notbar' => true })
+ assert_template_result(' YES ', '{% if foo.bar %} NO {% else %} YES {% endif %}', 'foo' => {})
+ assert_template_result(' YES ', '{% if foo.bar %} NO {% else %} YES {% endif %}', 'notfoo' => { 'bar' => true })
end
def test_nested_if
@@ -110,31 +109,30 @@ class IfElseTagTest < Minitest::Test
assert_template_result(' YES ', '{% if true %}{% if true %} YES {% else %} NO {% endif %}{% else %} NO {% endif %}')
assert_template_result(' YES ', '{% if true %}{% if false %} NO {% else %} YES {% endif %}{% else %} NO {% endif %}')
assert_template_result(' YES ', '{% if false %}{% if true %} NO {% else %} NONO {% endif %}{% else %} YES {% endif %}')
-
end
def test_comparisons_on_null
- assert_template_result('','{% if null < 10 %} NO {% endif %}')
- assert_template_result('','{% if null <= 10 %} NO {% endif %}')
- assert_template_result('','{% if null >= 10 %} NO {% endif %}')
- assert_template_result('','{% if null > 10 %} NO {% endif %}')
+ assert_template_result('', '{% if null < 10 %} NO {% endif %}')
+ assert_template_result('', '{% if null <= 10 %} NO {% endif %}')
+ assert_template_result('', '{% if null >= 10 %} NO {% endif %}')
+ assert_template_result('', '{% if null > 10 %} NO {% endif %}')
- assert_template_result('','{% if 10 < null %} NO {% endif %}')
- assert_template_result('','{% if 10 <= null %} NO {% endif %}')
- assert_template_result('','{% if 10 >= null %} NO {% endif %}')
- assert_template_result('','{% if 10 > null %} NO {% endif %}')
+ assert_template_result('', '{% if 10 < null %} NO {% endif %}')
+ assert_template_result('', '{% if 10 <= null %} NO {% endif %}')
+ assert_template_result('', '{% if 10 >= null %} NO {% endif %}')
+ assert_template_result('', '{% if 10 > null %} NO {% endif %}')
end
def test_else_if
- assert_template_result('0','{% if 0 == 0 %}0{% elsif 1 == 1%}1{% else %}2{% endif %}')
- assert_template_result('1','{% if 0 != 0 %}0{% elsif 1 == 1%}1{% else %}2{% endif %}')
- assert_template_result('2','{% if 0 != 0 %}0{% elsif 1 != 1%}1{% else %}2{% endif %}')
+ assert_template_result('0', '{% if 0 == 0 %}0{% elsif 1 == 1%}1{% else %}2{% endif %}')
+ assert_template_result('1', '{% if 0 != 0 %}0{% elsif 1 == 1%}1{% else %}2{% endif %}')
+ assert_template_result('2', '{% if 0 != 0 %}0{% elsif 1 != 1%}1{% else %}2{% endif %}')
- assert_template_result('elsif','{% if false %}if{% elsif true %}elsif{% endif %}')
+ assert_template_result('elsif', '{% if false %}if{% elsif true %}elsif{% endif %}')
end
def test_syntax_error_no_variable
- assert_raises(SyntaxError){ assert_template_result('', '{% if jerry == 1 %}')}
+ assert_raises(SyntaxError){ assert_template_result('', '{% if jerry == 1 %}') }
end
def test_syntax_error_no_expression
@@ -156,7 +154,7 @@ class IfElseTagTest < Minitest::Test
Condition.operators['contains'] = :[]
assert_template_result('yes',
- %({% if 'gnomeslab-and-or-liquid' contains 'gnomeslab-and-or-liquid' %}yes{% endif %}))
+ %({% if 'gnomeslab-and-or-liquid' contains 'gnomeslab-and-or-liquid' %}yes{% endif %}))
ensure
Condition.operators['contains'] = original_op
end
diff --git a/test/integration/tags/include_tag_test.rb b/test/integration/tags/include_tag_test.rb
index 32f2f5c..613524d 100644
--- a/test/integration/tags/include_tag_test.rb
+++ b/test/integration/tags/include_tag_test.rb
@@ -77,23 +77,22 @@ class IncludeTagTest < Minitest::Test
def test_include_tag_looks_for_file_system_in_registers_first
assert_equal 'from OtherFileSystem',
- Template.parse("{% include 'pick_a_source' %}").render!({}, :registers => {:file_system => OtherFileSystem.new})
+ Template.parse("{% include 'pick_a_source' %}").render!({}, :registers => { :file_system => OtherFileSystem.new })
end
-
def test_include_tag_with
assert_template_result "Product: Draft 151cm ",
- "{% include 'product' with products[0] %}", "products" => [ {'title' => 'Draft 151cm'}, {'title' => 'Element 155cm'} ]
+ "{% include 'product' with products[0] %}", "products" => [ { 'title' => 'Draft 151cm' }, { 'title' => 'Element 155cm' } ]
end
def test_include_tag_with_default_name
assert_template_result "Product: Draft 151cm ",
- "{% include 'product' %}", "product" => {'title' => 'Draft 151cm'}
+ "{% include 'product' %}", "product" => { 'title' => 'Draft 151cm' }
end
def test_include_tag_for
assert_template_result "Product: Draft 151cm Product: Element 155cm ",
- "{% include 'product' for products %}", "products" => [ {'title' => 'Draft 151cm'}, {'title' => 'Element 155cm'} ]
+ "{% include 'product' for products %}", "products" => [ { 'title' => 'Draft 151cm' }, { 'title' => 'Element 155cm' } ]
end
def test_include_tag_with_local_variables
@@ -108,7 +107,7 @@ class IncludeTagTest < Minitest::Test
def test_include_tag_with_multiple_local_variables_from_context
assert_template_result "Locale: test123 test321",
"{% include 'locale_variables' echo1: echo1, echo2: more_echos.echo2 %}",
- 'echo1' => 'test123', 'more_echos' => { "echo2" => 'test321'}
+ 'echo1' => 'test123', 'more_echos' => { "echo2" => 'test321' }
end
def test_included_templates_assigns_variables
@@ -123,14 +122,13 @@ class IncludeTagTest < Minitest::Test
def test_nested_include_with_variable
assert_template_result "Product: Draft 151cm details ",
- "{% include 'nested_product_template' with product %}", "product" => {"title" => 'Draft 151cm'}
+ "{% include 'nested_product_template' with product %}", "product" => { "title" => 'Draft 151cm' }
assert_template_result "Product: Draft 151cm details Product: Element 155cm details ",
- "{% include 'nested_product_template' for products %}", "products" => [{"title" => 'Draft 151cm'}, {"title" => 'Element 155cm'}]
+ "{% include 'nested_product_template' for products %}", "products" => [{ "title" => 'Draft 151cm' }, { "title" => 'Element 155cm' }]
end
def test_recursively_included_template_does_not_produce_endless_loop
-
infinite_file_system = Class.new do
def read_template_file(template_path)
"-{% include 'loop' %}"
@@ -142,7 +140,6 @@ class IncludeTagTest < Minitest::Test
assert_raises(Liquid::StackLevelError, SystemStackError) do
Template.parse("{% include 'loop' %}").render!
end
-
end
def test_dynamically_choosen_template
@@ -150,24 +147,24 @@ class IncludeTagTest < Minitest::Test
assert_template_result "Test321", "{% include template %}", "template" => 'Test321'
assert_template_result "Product: Draft 151cm ", "{% include template for product %}",
- "template" => 'product', 'product' => { 'title' => 'Draft 151cm'}
+ "template" => 'product', 'product' => { 'title' => 'Draft 151cm' }
end
def test_include_tag_caches_second_read_of_same_partial
file_system = CountingFileSystem.new
assert_equal 'from CountingFileSystemfrom CountingFileSystem',
- Template.parse("{% include 'pick_a_source' %}{% include 'pick_a_source' %}").render!({}, :registers => {:file_system => file_system})
+ Template.parse("{% include 'pick_a_source' %}{% include 'pick_a_source' %}").render!({}, :registers => { :file_system => file_system })
assert_equal 1, file_system.count
end
def test_include_tag_doesnt_cache_partials_across_renders
file_system = CountingFileSystem.new
assert_equal 'from CountingFileSystem',
- Template.parse("{% include 'pick_a_source' %}").render!({}, :registers => {:file_system => file_system})
+ Template.parse("{% include 'pick_a_source' %}").render!({}, :registers => { :file_system => file_system })
assert_equal 1, file_system.count
assert_equal 'from CountingFileSystem',
- Template.parse("{% include 'pick_a_source' %}").render!({}, :registers => {:file_system => file_system})
+ Template.parse("{% include 'pick_a_source' %}").render!({}, :registers => { :file_system => file_system })
assert_equal 2, file_system.count
end
@@ -223,8 +220,8 @@ class IncludeTagTest < Minitest::Test
def test_including_via_variable_value
assert_template_result "from TestFileSystem", "{% assign page = 'pick_a_source' %}{% include page %}"
- assert_template_result "Product: Draft 151cm ", "{% assign page = 'product' %}{% include page %}", "product" => {'title' => 'Draft 151cm'}
+ assert_template_result "Product: Draft 151cm ", "{% assign page = 'product' %}{% include page %}", "product" => { 'title' => 'Draft 151cm' }
- assert_template_result "Product: Draft 151cm ", "{% assign page = 'product' %}{% include page for foo %}", "foo" => {'title' => 'Draft 151cm'}
+ assert_template_result "Product: Draft 151cm ", "{% assign page = 'product' %}{% include page for foo %}", "foo" => { 'title' => 'Draft 151cm' }
end
end # IncludeTagTest
diff --git a/test/integration/tags/increment_tag_test.rb b/test/integration/tags/increment_tag_test.rb
index a09a041..08bbeae 100644
--- a/test/integration/tags/increment_tag_test.rb
+++ b/test/integration/tags/increment_tag_test.rb
@@ -4,21 +4,21 @@ class IncrementTagTest < Minitest::Test
include Liquid
def test_inc
- assert_template_result('0','{%increment port %}', {})
- assert_template_result('0 1','{%increment port %} {%increment port%}', {})
+ assert_template_result('0', '{%increment port %}', {})
+ assert_template_result('0 1', '{%increment port %} {%increment port%}', {})
assert_template_result('0 0 1 2 1',
- '{%increment port %} {%increment starboard%} ' +
- '{%increment port %} {%increment port%} ' +
- '{%increment starboard %}', {})
+ '{%increment port %} {%increment starboard%} ' \
+ '{%increment port %} {%increment port%} ' \
+ '{%increment starboard %}', {})
end
def test_dec
- assert_template_result('9','{%decrement port %}', { 'port' => 10})
- assert_template_result('-1 -2','{%decrement port %} {%decrement port%}', {})
+ assert_template_result('9', '{%decrement port %}', { 'port' => 10 })
+ assert_template_result('-1 -2', '{%decrement port %} {%decrement port%}', {})
assert_template_result('1 5 2 2 5',
- '{%increment port %} {%increment starboard%} ' +
- '{%increment port %} {%decrement port%} ' +
- '{%decrement starboard %}', { 'port' => 1, 'starboard' => 5 })
+ '{%increment port %} {%increment starboard%} ' \
+ '{%increment port %} {%decrement port%} ' \
+ '{%decrement starboard %}', { 'port' => 1, 'starboard' => 5 })
end
end
diff --git a/test/integration/tags/raw_tag_test.rb b/test/integration/tags/raw_tag_test.rb
index 167474c..e50874a 100644
--- a/test/integration/tags/raw_tag_test.rb
+++ b/test/integration/tags/raw_tag_test.rb
@@ -5,7 +5,7 @@ class RawTagTest < Minitest::Test
def test_tag_in_raw
assert_template_result '{% comment %} test {% endcomment %}',
- '{% raw %}{% comment %} test {% endcomment %}{% endraw %}'
+ '{% raw %}{% comment %} test {% endcomment %}{% endraw %}'
end
def test_output_in_raw
diff --git a/test/integration/tags/standard_tag_test.rb b/test/integration/tags/standard_tag_test.rb
index c8221b6..43b9ac1 100644
--- a/test/integration/tags/standard_tag_test.rb
+++ b/test/integration/tags/standard_tag_test.rb
@@ -5,116 +5,116 @@ class StandardTagTest < Minitest::Test
def test_no_transform
assert_template_result('this text should come out of the template without change...',
- 'this text should come out of the template without change...')
+ 'this text should come out of the template without change...')
- assert_template_result('blah','blah')
- assert_template_result('','')
- assert_template_result('|,.:','|,.:')
- assert_template_result('','')
+ assert_template_result('blah', 'blah')
+ assert_template_result('', '')
+ assert_template_result('|,.:', '|,.:')
+ assert_template_result('', '')
- text = %|this shouldnt see any transformation either but has multiple lines
- as you can clearly see here ...|
- assert_template_result(text,text)
+ text = %(this shouldnt see any transformation either but has multiple lines
+ as you can clearly see here ...)
+ assert_template_result(text, text)
end
def test_has_a_block_which_does_nothing
- assert_template_result(%|the comment block should be removed .. right?|,
- %|the comment block should be removed {%comment%} be gone.. {%endcomment%} .. right?|)
+ assert_template_result(%(the comment block should be removed .. right?),
+ %(the comment block should be removed {%comment%} be gone.. {%endcomment%} .. right?))
- assert_template_result('','{%comment%}{%endcomment%}')
- assert_template_result('','{%comment%}{% endcomment %}')
- assert_template_result('','{% comment %}{%endcomment%}')
- assert_template_result('','{% comment %}{% endcomment %}')
- assert_template_result('','{%comment%}comment{%endcomment%}')
- assert_template_result('','{% comment %}comment{% endcomment %}')
- assert_template_result('','{% comment %} 1 {% comment %} 2 {% endcomment %} 3 {% endcomment %}')
+ assert_template_result('', '{%comment%}{%endcomment%}')
+ assert_template_result('', '{%comment%}{% endcomment %}')
+ assert_template_result('', '{% comment %}{%endcomment%}')
+ assert_template_result('', '{% comment %}{% endcomment %}')
+ assert_template_result('', '{%comment%}comment{%endcomment%}')
+ assert_template_result('', '{% comment %}comment{% endcomment %}')
+ assert_template_result('', '{% comment %} 1 {% comment %} 2 {% endcomment %} 3 {% endcomment %}')
- assert_template_result('','{%comment%}{%blabla%}{%endcomment%}')
- assert_template_result('','{% comment %}{% blabla %}{% endcomment %}')
- assert_template_result('','{%comment%}{% endif %}{%endcomment%}')
- assert_template_result('','{% comment %}{% endwhatever %}{% endcomment %}')
- assert_template_result('','{% comment %}{% raw %} {{%%%%}} }} { {% endcomment %} {% comment {% endraw %} {% endcomment %}')
+ assert_template_result('', '{%comment%}{%blabla%}{%endcomment%}')
+ assert_template_result('', '{% comment %}{% blabla %}{% endcomment %}')
+ assert_template_result('', '{%comment%}{% endif %}{%endcomment%}')
+ assert_template_result('', '{% comment %}{% endwhatever %}{% endcomment %}')
+ assert_template_result('', '{% comment %}{% raw %} {{%%%%}} }} { {% endcomment %} {% comment {% endraw %} {% endcomment %}')
- assert_template_result('foobar','foo{%comment%}comment{%endcomment%}bar')
- assert_template_result('foobar','foo{% comment %}comment{% endcomment %}bar')
- assert_template_result('foobar','foo{%comment%} comment {%endcomment%}bar')
- assert_template_result('foobar','foo{% comment %} comment {% endcomment %}bar')
+ assert_template_result('foobar', 'foo{%comment%}comment{%endcomment%}bar')
+ assert_template_result('foobar', 'foo{% comment %}comment{% endcomment %}bar')
+ assert_template_result('foobar', 'foo{%comment%} comment {%endcomment%}bar')
+ assert_template_result('foobar', 'foo{% comment %} comment {% endcomment %}bar')
- assert_template_result('foo bar','foo {%comment%} {%endcomment%} bar')
- assert_template_result('foo bar','foo {%comment%}comment{%endcomment%} bar')
- assert_template_result('foo bar','foo {%comment%} comment {%endcomment%} bar')
+ assert_template_result('foo bar', 'foo {%comment%} {%endcomment%} bar')
+ assert_template_result('foo bar', 'foo {%comment%}comment{%endcomment%} bar')
+ assert_template_result('foo bar', 'foo {%comment%} comment {%endcomment%} bar')
- assert_template_result('foobar','foo{%comment%}
+ assert_template_result('foobar', 'foo{%comment%}
{%endcomment%}bar')
end
def test_hyphenated_assign
- assigns = {'a-b' => '1' }
+ assigns = { 'a-b' => '1' }
assert_template_result('a-b:1 a-b:2', 'a-b:{{a-b}} {%assign a-b = 2 %}a-b:{{a-b}}', assigns)
end
def test_assign_with_colon_and_spaces
- assigns = {'var' => {'a:b c' => {'paged' => '1' }}}
+ assigns = { 'var' => { 'a:b c' => { 'paged' => '1' } } }
assert_template_result('var2: 1', '{%assign var2 = var["a:b c"].paged %}var2: {{var2}}', assigns)
end
def test_capture
- assigns = {'var' => 'content' }
+ assigns = { 'var' => 'content' }
assert_template_result('content foo content foo ',
- '{{ var2 }}{% capture var2 %}{{ var }} foo {% endcapture %}{{ var2 }}{{ var2 }}',
- assigns)
+ '{{ var2 }}{% capture var2 %}{{ var }} foo {% endcapture %}{{ var2 }}{{ var2 }}',
+ assigns)
end
def test_capture_detects_bad_syntax
assert_raises(SyntaxError) do
assert_template_result('content foo content foo ',
- '{{ var2 }}{% capture %}{{ var }} foo {% endcapture %}{{ var2 }}{{ var2 }}',
- {'var' => 'content' })
+ '{{ var2 }}{% capture %}{{ var }} foo {% endcapture %}{{ var2 }}{{ var2 }}',
+ { 'var' => 'content' })
end
end
def test_case
- assigns = {'condition' => 2 }
+ assigns = { 'condition' => 2 }
assert_template_result(' its 2 ',
- '{% case condition %}{% when 1 %} its 1 {% when 2 %} its 2 {% endcase %}',
- assigns)
+ '{% case condition %}{% when 1 %} its 1 {% when 2 %} its 2 {% endcase %}',
+ assigns)
- assigns = {'condition' => 1 }
+ assigns = { 'condition' => 1 }
assert_template_result(' its 1 ',
- '{% case condition %}{% when 1 %} its 1 {% when 2 %} its 2 {% endcase %}',
- assigns)
+ '{% case condition %}{% when 1 %} its 1 {% when 2 %} its 2 {% endcase %}',
+ assigns)
- assigns = {'condition' => 3 }
+ assigns = { 'condition' => 3 }
assert_template_result('',
- '{% case condition %}{% when 1 %} its 1 {% when 2 %} its 2 {% endcase %}',
- assigns)
+ '{% case condition %}{% when 1 %} its 1 {% when 2 %} its 2 {% endcase %}',
+ assigns)
- assigns = {'condition' => "string here" }
+ assigns = { 'condition' => "string here" }
assert_template_result(' hit ',
- '{% case condition %}{% when "string here" %} hit {% endcase %}',
- assigns)
+ '{% case condition %}{% when "string here" %} hit {% endcase %}',
+ assigns)
- assigns = {'condition' => "bad string here" }
+ assigns = { 'condition' => "bad string here" }
assert_template_result('',
- '{% case condition %}{% when "string here" %} hit {% endcase %}',\
- assigns)
+ '{% case condition %}{% when "string here" %} hit {% endcase %}',\
+ assigns)
end
def test_case_with_else
- assigns = {'condition' => 5 }
+ assigns = { 'condition' => 5 }
assert_template_result(' hit ',
- '{% case condition %}{% when 5 %} hit {% else %} else {% endcase %}',
- assigns)
+ '{% case condition %}{% when 5 %} hit {% else %} else {% endcase %}',
+ assigns)
- assigns = {'condition' => 6 }
+ assigns = { 'condition' => 6 }
assert_template_result(' else ',
- '{% case condition %}{% when 5 %} hit {% else %} else {% endcase %}',
- assigns)
+ '{% case condition %}{% when 5 %} hit {% else %} else {% endcase %}',
+ assigns)
- assigns = {'condition' => 6 }
+ assigns = { 'condition' => 6 }
assert_template_result(' else ',
- '{% case condition %} {% when 5 %} hit {% else %} else {% endcase %}',
- assigns)
+ '{% case condition %} {% when 5 %} hit {% else %} else {% endcase %}',
+ assigns)
end
def test_case_on_size
@@ -128,87 +128,87 @@ class StandardTagTest < Minitest::Test
def test_case_on_size_with_else
assert_template_result('else',
- '{% case a.size %}{% when 1 %}1{% when 2 %}2{% else %}else{% endcase %}',
- 'a' => [])
+ '{% case a.size %}{% when 1 %}1{% when 2 %}2{% else %}else{% endcase %}',
+ 'a' => [])
assert_template_result('1',
- '{% case a.size %}{% when 1 %}1{% when 2 %}2{% else %}else{% endcase %}',
- 'a' => [1])
+ '{% case a.size %}{% when 1 %}1{% when 2 %}2{% else %}else{% endcase %}',
+ 'a' => [1])
assert_template_result('2',
- '{% case a.size %}{% when 1 %}1{% when 2 %}2{% else %}else{% endcase %}',
- 'a' => [1, 1])
+ '{% case a.size %}{% when 1 %}1{% when 2 %}2{% else %}else{% endcase %}',
+ 'a' => [1, 1])
assert_template_result('else',
- '{% case a.size %}{% when 1 %}1{% when 2 %}2{% else %}else{% endcase %}',
- 'a' => [1, 1, 1])
+ '{% case a.size %}{% when 1 %}1{% when 2 %}2{% else %}else{% endcase %}',
+ 'a' => [1, 1, 1])
assert_template_result('else',
- '{% case a.size %}{% when 1 %}1{% when 2 %}2{% else %}else{% endcase %}',
- 'a' => [1, 1, 1, 1])
+ '{% case a.size %}{% when 1 %}1{% when 2 %}2{% else %}else{% endcase %}',
+ 'a' => [1, 1, 1, 1])
assert_template_result('else',
- '{% case a.size %}{% when 1 %}1{% when 2 %}2{% else %}else{% endcase %}',
- 'a' => [1, 1, 1, 1, 1])
+ '{% case a.size %}{% when 1 %}1{% when 2 %}2{% else %}else{% endcase %}',
+ 'a' => [1, 1, 1, 1, 1])
end
def test_case_on_length_with_else
assert_template_result('else',
- '{% case a.empty? %}{% when true %}true{% when false %}false{% else %}else{% endcase %}',
- {})
+ '{% case a.empty? %}{% when true %}true{% when false %}false{% else %}else{% endcase %}',
+ {})
assert_template_result('false',
- '{% case false %}{% when true %}true{% when false %}false{% else %}else{% endcase %}',
- {})
+ '{% case false %}{% when true %}true{% when false %}false{% else %}else{% endcase %}',
+ {})
assert_template_result('true',
- '{% case true %}{% when true %}true{% when false %}false{% else %}else{% endcase %}',
- {})
+ '{% case true %}{% when true %}true{% when false %}false{% else %}else{% endcase %}',
+ {})
assert_template_result('else',
- '{% case NULL %}{% when true %}true{% when false %}false{% else %}else{% endcase %}',
- {})
+ '{% case NULL %}{% when true %}true{% when false %}false{% else %}else{% endcase %}',
+ {})
end
def test_assign_from_case
# Example from the shopify forums
- code = %q({% case collection.handle %}{% when 'menswear-jackets' %}{% assign ptitle = 'menswear' %}{% when 'menswear-t-shirts' %}{% assign ptitle = 'menswear' %}{% else %}{% assign ptitle = 'womenswear' %}{% endcase %}{{ ptitle }})
+ code = "{% case collection.handle %}{% when 'menswear-jackets' %}{% assign ptitle = 'menswear' %}{% when 'menswear-t-shirts' %}{% assign ptitle = 'menswear' %}{% else %}{% assign ptitle = 'womenswear' %}{% endcase %}{{ ptitle }}"
template = Liquid::Template.parse(code)
- assert_equal "menswear", template.render!("collection" => {'handle' => 'menswear-jackets'})
- assert_equal "menswear", template.render!("collection" => {'handle' => 'menswear-t-shirts'})
- assert_equal "womenswear", template.render!("collection" => {'handle' => 'x'})
- assert_equal "womenswear", template.render!("collection" => {'handle' => 'y'})
- assert_equal "womenswear", template.render!("collection" => {'handle' => 'z'})
+ assert_equal "menswear", template.render!("collection" => { 'handle' => 'menswear-jackets' })
+ assert_equal "menswear", template.render!("collection" => { 'handle' => 'menswear-t-shirts' })
+ assert_equal "womenswear", template.render!("collection" => { 'handle' => 'x' })
+ assert_equal "womenswear", template.render!("collection" => { 'handle' => 'y' })
+ assert_equal "womenswear", template.render!("collection" => { 'handle' => 'z' })
end
def test_case_when_or
code = '{% case condition %}{% when 1 or 2 or 3 %} its 1 or 2 or 3 {% when 4 %} its 4 {% endcase %}'
- assert_template_result(' its 1 or 2 or 3 ', code, {'condition' => 1 })
- assert_template_result(' its 1 or 2 or 3 ', code, {'condition' => 2 })
- assert_template_result(' its 1 or 2 or 3 ', code, {'condition' => 3 })
- assert_template_result(' its 4 ', code, {'condition' => 4 })
- assert_template_result('', code, {'condition' => 5 })
+ assert_template_result(' its 1 or 2 or 3 ', code, { 'condition' => 1 })
+ assert_template_result(' its 1 or 2 or 3 ', code, { 'condition' => 2 })
+ assert_template_result(' its 1 or 2 or 3 ', code, { 'condition' => 3 })
+ assert_template_result(' its 4 ', code, { 'condition' => 4 })
+ assert_template_result('', code, { 'condition' => 5 })
code = '{% case condition %}{% when 1 or "string" or null %} its 1 or 2 or 3 {% when 4 %} its 4 {% endcase %}'
- assert_template_result(' its 1 or 2 or 3 ', code, {'condition' => 1 })
- assert_template_result(' its 1 or 2 or 3 ', code, {'condition' => 'string' })
- assert_template_result(' its 1 or 2 or 3 ', code, {'condition' => nil })
- assert_template_result('', code, {'condition' => 'something else' })
+ assert_template_result(' its 1 or 2 or 3 ', code, { 'condition' => 1 })
+ assert_template_result(' its 1 or 2 or 3 ', code, { 'condition' => 'string' })
+ assert_template_result(' its 1 or 2 or 3 ', code, { 'condition' => nil })
+ assert_template_result('', code, { 'condition' => 'something else' })
end
def test_case_when_comma
code = '{% case condition %}{% when 1, 2, 3 %} its 1 or 2 or 3 {% when 4 %} its 4 {% endcase %}'
- assert_template_result(' its 1 or 2 or 3 ', code, {'condition' => 1 })
- assert_template_result(' its 1 or 2 or 3 ', code, {'condition' => 2 })
- assert_template_result(' its 1 or 2 or 3 ', code, {'condition' => 3 })
- assert_template_result(' its 4 ', code, {'condition' => 4 })
- assert_template_result('', code, {'condition' => 5 })
+ assert_template_result(' its 1 or 2 or 3 ', code, { 'condition' => 1 })
+ assert_template_result(' its 1 or 2 or 3 ', code, { 'condition' => 2 })
+ assert_template_result(' its 1 or 2 or 3 ', code, { 'condition' => 3 })
+ assert_template_result(' its 4 ', code, { 'condition' => 4 })
+ assert_template_result('', code, { 'condition' => 5 })
code = '{% case condition %}{% when 1, "string", null %} its 1 or 2 or 3 {% when 4 %} its 4 {% endcase %}'
- assert_template_result(' its 1 or 2 or 3 ', code, {'condition' => 1 })
- assert_template_result(' its 1 or 2 or 3 ', code, {'condition' => 'string' })
- assert_template_result(' its 1 or 2 or 3 ', code, {'condition' => nil })
- assert_template_result('', code, {'condition' => 'something else' })
+ assert_template_result(' its 1 or 2 or 3 ', code, { 'condition' => 1 })
+ assert_template_result(' its 1 or 2 or 3 ', code, { 'condition' => 'string' })
+ assert_template_result(' its 1 or 2 or 3 ', code, { 'condition' => nil })
+ assert_template_result('', code, { 'condition' => 'something else' })
end
def test_assign
@@ -236,15 +236,14 @@ class StandardTagTest < Minitest::Test
assert_raises(SyntaxError) do
assert_template_result('', '{% case false %}{% huh %}true{% endcase %}', {})
end
-
end
def test_cycle
- assert_template_result('one','{%cycle "one", "two"%}')
- assert_template_result('one two','{%cycle "one", "two"%} {%cycle "one", "two"%}')
- assert_template_result(' two','{%cycle "", "two"%} {%cycle "", "two"%}')
+ assert_template_result('one', '{%cycle "one", "two"%}')
+ assert_template_result('one two', '{%cycle "one", "two"%} {%cycle "one", "two"%}')
+ assert_template_result(' two', '{%cycle "", "two"%} {%cycle "", "two"%}')
- assert_template_result('one two one','{%cycle "one", "two"%} {%cycle "one", "two"%} {%cycle "one", "two"%}')
+ assert_template_result('one two one', '{%cycle "one", "two"%} {%cycle "one", "two"%} {%cycle "one", "two"%}')
assert_template_result('text-align: left text-align: right',
'{%cycle "text-align: left", "text-align: right" %} {%cycle "text-align: left", "text-align: right"%}')
@@ -261,18 +260,18 @@ class StandardTagTest < Minitest::Test
end
def test_multiple_named_cycles_with_names_from_context
- assigns = {"var1" => 1, "var2" => 2 }
+ assigns = { "var1" => 1, "var2" => 2 }
assert_template_result('one one two two one one',
'{%cycle var1: "one", "two" %} {%cycle var2: "one", "two" %} {%cycle var1: "one", "two" %} {%cycle var2: "one", "two" %} {%cycle var1: "one", "two" %} {%cycle var2: "one", "two" %}', assigns)
end
def test_size_of_array
- assigns = {"array" => [1,2,3,4]}
+ assigns = { "array" => [1, 2, 3, 4] }
assert_template_result('array has 4 elements', "array has {{ array.size }} elements", assigns)
end
def test_size_of_hash
- assigns = {"hash" => {:a => 1, :b => 2, :c=> 3, :d => 4}}
+ assigns = { "hash" => { :a => 1, :b => 2, :c => 3, :d => 4 } }
assert_template_result('hash has 4 elements', "hash has {{ hash.size }} elements", assigns)
end
@@ -284,11 +283,11 @@ class StandardTagTest < Minitest::Test
end
def test_ifchanged
- assigns = {'array' => [ 1, 1, 2, 2, 3, 3] }
- assert_template_result('123','{%for item in array%}{%ifchanged%}{{item}}{% endifchanged %}{%endfor%}',assigns)
+ assigns = { 'array' => [ 1, 1, 2, 2, 3, 3] }
+ assert_template_result('123', '{%for item in array%}{%ifchanged%}{{item}}{% endifchanged %}{%endfor%}', assigns)
- assigns = {'array' => [ 1, 1, 1, 1] }
- assert_template_result('1','{%for item in array%}{%ifchanged%}{{item}}{% endifchanged %}{%endfor%}',assigns)
+ assigns = { 'array' => [ 1, 1, 1, 1] }
+ assert_template_result('1', '{%for item in array%}{%ifchanged%}{{item}}{% endifchanged %}{%endfor%}', assigns)
end
def test_multiline_tag
diff --git a/test/integration/tags/statements_test.rb b/test/integration/tags/statements_test.rb
index a7b3bad..eeff166 100644
--- a/test/integration/tags/statements_test.rb
+++ b/test/integration/tags/statements_test.rb
@@ -37,7 +37,6 @@ class StatementsTest < Minitest::Test
text = ' {% if null <= 0 %} true {% else %} false {% endif %} '
assert_template_result ' false ', text
-
text = ' {% if 0 <= null %} true {% else %} false {% endif %} '
assert_template_result ' false ', text
end
@@ -72,18 +71,17 @@ class StatementsTest < Minitest::Test
assert_template_result ' true ', text, 'var' => 'hello there!'
end
-
def test_var_and_long_string_are_equal_backwards
text = " {% if 'hello there!' == var %} true {% else %} false {% endif %} "
assert_template_result ' true ', text, 'var' => 'hello there!'
end
- #def test_is_nil
+ # def test_is_nil
# text = %| {% if var != nil %} true {% else %} false {% end %} |
# @template.assigns = { 'var' => 'hello there!'}
# expected = %| true |
# assert_equal expected, @template.parse(text)
- #end
+ # end
def test_is_collection_empty
text = ' {% if array == empty %} true {% else %} false {% endif %} '
@@ -92,7 +90,7 @@ class StatementsTest < Minitest::Test
def test_is_not_collection_empty
text = ' {% if array == empty %} true {% else %} false {% endif %} '
- assert_template_result ' false ', text, 'array' => [1,2,3]
+ assert_template_result ' false ', text, 'array' => [1, 2, 3]
end
def test_nil
diff --git a/test/integration/tags/table_row_test.rb b/test/integration/tags/table_row_test.rb
index 3751963..6405a9c 100644
--- a/test/integration/tags/table_row_test.rb
+++ b/test/integration/tags/table_row_test.rb
@@ -16,48 +16,45 @@ class TableRowTest < Minitest::Test
end
def test_table_row
-
assert_template_result("\n| 1 | 2 | 3 |
\n| 4 | 5 | 6 |
\n",
- '{% tablerow n in numbers cols:3%} {{n}} {% endtablerow %}',
- 'numbers' => [1,2,3,4,5,6])
+ '{% tablerow n in numbers cols:3%} {{n}} {% endtablerow %}',
+ 'numbers' => [1, 2, 3, 4, 5, 6])
assert_template_result("\n
\n",
- '{% tablerow n in numbers cols:3%} {{n}} {% endtablerow %}',
- 'numbers' => [])
+ '{% tablerow n in numbers cols:3%} {{n}} {% endtablerow %}',
+ 'numbers' => [])
end
def test_table_row_with_different_cols
assert_template_result("\n| 1 | 2 | 3 | 4 | 5 |
\n| 6 |
\n",
- '{% tablerow n in numbers cols:5%} {{n}} {% endtablerow %}',
- 'numbers' => [1,2,3,4,5,6])
-
+ '{% tablerow n in numbers cols:5%} {{n}} {% endtablerow %}',
+ 'numbers' => [1, 2, 3, 4, 5, 6])
end
def test_table_col_counter
assert_template_result("\n| 1 | 2 |
\n| 1 | 2 |
\n| 1 | 2 |
\n",
- '{% tablerow n in numbers cols:2%}{{tablerowloop.col}}{% endtablerow %}',
- 'numbers' => [1,2,3,4,5,6])
+ '{% tablerow n in numbers cols:2%}{{tablerowloop.col}}{% endtablerow %}',
+ 'numbers' => [1, 2, 3, 4, 5, 6])
end
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]})
+ "{% tablerow n in collections.frontpage cols:3%} {{n}} {% endtablerow %}",
+ '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]})
-
+ "{% tablerow n in collections['frontpage'] cols:3%} {{n}} {% endtablerow %}",
+ 'collections' => { 'frontpage' => [1, 2, 3, 4, 5, 6] })
end
def test_enumerable_drop
assert_template_result("\n| 1 | 2 | 3 |
\n| 4 | 5 | 6 |
\n",
- '{% tablerow n in numbers cols:3%} {{n}} {% endtablerow %}',
- 'numbers' => ArrayDrop.new([1,2,3,4,5,6]))
+ '{% tablerow n in numbers cols:3%} {{n}} {% endtablerow %}',
+ 'numbers' => ArrayDrop.new([1, 2, 3, 4, 5, 6]))
end
def test_offset_and_limit
assert_template_result("\n| 1 | 2 | 3 |
\n| 4 | 5 | 6 |
\n",
- '{% tablerow n in numbers cols:3 offset:1 limit:6%} {{n}} {% endtablerow %}',
- 'numbers' => [0,1,2,3,4,5,6,7])
+ '{% tablerow n in numbers cols:3 offset:1 limit:6%} {{n}} {% endtablerow %}',
+ 'numbers' => [0, 1, 2, 3, 4, 5, 6, 7])
end
end
diff --git a/test/integration/tags/unless_else_tag_test.rb b/test/integration/tags/unless_else_tag_test.rb
index ba147cf..c414a71 100644
--- a/test/integration/tags/unless_else_tag_test.rb
+++ b/test/integration/tags/unless_else_tag_test.rb
@@ -4,16 +4,16 @@ class UnlessElseTagTest < Minitest::Test
include Liquid
def test_unless
- assert_template_result(' ',' {% unless true %} this text should not go into the output {% endunless %} ')
+ assert_template_result(' ', ' {% unless true %} this text should not go into the output {% endunless %} ')
assert_template_result(' this text should go into the output ',
- ' {% unless false %} this text should go into the output {% endunless %} ')
- assert_template_result(' you rock ?','{% unless true %} you suck {% endunless %} {% unless false %} you rock {% endunless %}?')
+ ' {% unless false %} this text should go into the output {% endunless %} ')
+ assert_template_result(' you rock ?', '{% unless true %} you suck {% endunless %} {% unless false %} you rock {% endunless %}?')
end
def test_unless_else
- assert_template_result(' YES ','{% unless true %} NO {% else %} YES {% endunless %}')
- assert_template_result(' YES ','{% unless false %} YES {% else %} NO {% endunless %}')
- assert_template_result(' YES ','{% unless "foo" %} NO {% else %} YES {% endunless %}')
+ assert_template_result(' YES ', '{% unless true %} NO {% else %} YES {% endunless %}')
+ assert_template_result(' YES ', '{% unless false %} YES {% else %} NO {% endunless %}')
+ assert_template_result(' YES ', '{% unless "foo" %} NO {% else %} YES {% endunless %}')
end
def test_unless_in_loop
diff --git a/test/integration/template_test.rb b/test/integration/template_test.rb
index e0fc528..977101a 100644
--- a/test/integration/template_test.rb
+++ b/test/integration/template_test.rb
@@ -45,7 +45,7 @@ class TemplateTest < Minitest::Test
end
t = Template.parse(str)
- assert_equal [], Timeout::timeout(1) { t.warnings }
+ assert_equal [], Timeout.timeout(1) { t.warnings }
end
def test_instance_assigns_persist_on_same_template_parsing_between_renders
@@ -75,7 +75,7 @@ class TemplateTest < Minitest::Test
def test_lambda_is_called_once_from_persistent_assigns_over_multiple_parses_and_renders
t = Template.new
- t.assigns['number'] = lambda { @global ||= 0; @global += 1 }
+ t.assigns['number'] = -> { @global ||= 0; @global += 1 }
assert_equal '1', t.parse("{{number}}").render!
assert_equal '1', t.parse("{{number}}").render!
assert_equal '1', t.render!
@@ -84,7 +84,7 @@ class TemplateTest < Minitest::Test
def test_lambda_is_called_once_from_custom_assigns_over_multiple_parses_and_renders
t = Template.new
- assigns = {'number' => lambda { @global ||= 0; @global += 1 }}
+ assigns = { 'number' => -> { @global ||= 0; @global += 1 } }
assert_equal '1', t.parse("{{number}}").render!(assigns)
assert_equal '1', t.parse("{{number}}").render!(assigns)
assert_equal '1', t.render!(assigns)
@@ -100,51 +100,51 @@ class TemplateTest < Minitest::Test
def test_resource_limits_render_length
t = Template.parse("0123456789")
t.resource_limits.render_length_limit = 5
- assert_equal "Liquid error: Memory limits exceeded", t.render()
+ assert_equal "Liquid error: Memory limits exceeded", t.render
assert t.resource_limits.reached?
t.resource_limits.render_length_limit = 10
- assert_equal "0123456789", t.render!()
+ assert_equal "0123456789", t.render!
refute_nil t.resource_limits.render_length
end
def test_resource_limits_render_score
t = Template.parse("{% for a in (1..10) %} {% for a in (1..10) %} foo {% endfor %} {% endfor %}")
t.resource_limits.render_score_limit = 50
- assert_equal "Liquid error: Memory limits exceeded", t.render()
+ assert_equal "Liquid error: Memory limits exceeded", t.render
assert t.resource_limits.reached?
t = Template.parse("{% for a in (1..100) %} foo {% endfor %}")
t.resource_limits.render_score_limit = 50
- assert_equal "Liquid error: Memory limits exceeded", t.render()
+ assert_equal "Liquid error: Memory limits exceeded", t.render
assert t.resource_limits.reached?
t.resource_limits.render_score_limit = 200
- assert_equal (" foo " * 100), t.render!()
+ assert_equal (" foo " * 100), t.render!
refute_nil t.resource_limits.render_score
end
def test_resource_limits_assign_score
t = Template.parse("{% assign foo = 42 %}{% assign bar = 23 %}")
t.resource_limits.assign_score_limit = 1
- assert_equal "Liquid error: Memory limits exceeded", t.render()
+ assert_equal "Liquid error: Memory limits exceeded", t.render
assert t.resource_limits.reached?
t.resource_limits.assign_score_limit = 2
- assert_equal "", t.render!()
+ assert_equal "", t.render!
refute_nil t.resource_limits.assign_score
end
def test_resource_limits_aborts_rendering_after_first_error
t = Template.parse("{% for a in (1..100) %} foo1 {% endfor %} bar {% for a in (1..100) %} foo2 {% endfor %}")
t.resource_limits.render_score_limit = 50
- assert_equal "Liquid error: Memory limits exceeded", t.render()
+ assert_equal "Liquid error: Memory limits exceeded", t.render
assert t.resource_limits.reached?
end
def test_resource_limits_hash_in_template_gets_updated_even_if_no_limits_are_set
t = Template.parse("{% for a in (1..100) %} {% assign foo = 1 %} {% endfor %}")
- t.render!()
+ t.render!
assert t.resource_limits.assign_score > 0
assert t.resource_limits.render_score > 0
assert t.resource_limits.render_length > 0
@@ -153,23 +153,23 @@ class TemplateTest < Minitest::Test
def test_render_length_persists_between_blocks
t = Template.parse("{% if true %}aaaa{% endif %}")
t.resource_limits.render_length_limit = 7
- assert_equal "Liquid error: Memory limits exceeded", t.render()
+ assert_equal "Liquid error: Memory limits exceeded", t.render
t.resource_limits.render_length_limit = 8
- assert_equal "aaaa", t.render()
+ assert_equal "aaaa", t.render
t = Template.parse("{% if true %}aaaa{% endif %}{% if true %}bbb{% endif %}")
t.resource_limits.render_length_limit = 13
- assert_equal "Liquid error: Memory limits exceeded", t.render()
+ assert_equal "Liquid error: Memory limits exceeded", t.render
t.resource_limits.render_length_limit = 14
- assert_equal "aaaabbb", t.render()
+ assert_equal "aaaabbb", t.render
t = Template.parse("{% if true %}a{% endif %}{% if true %}b{% endif %}{% if true %}a{% endif %}{% if true %}b{% endif %}{% if true %}a{% endif %}{% if true %}b{% endif %}")
t.resource_limits.render_length_limit = 5
- assert_equal "Liquid error: Memory limits exceeded", t.render()
+ assert_equal "Liquid error: Memory limits exceeded", t.render
t.resource_limits.render_length_limit = 11
- assert_equal "Liquid error: Memory limits exceeded", t.render()
+ assert_equal "Liquid error: Memory limits exceeded", t.render
t.resource_limits.render_length_limit = 12
- assert_equal "ababab", t.render()
+ assert_equal "ababab", t.render
end
def test_default_resource_limits_unaffected_by_render_with_context
@@ -191,7 +191,7 @@ class TemplateTest < Minitest::Test
end
def test_render_bang_force_rethrow_errors_on_passed_context
- context = Context.new({'drop' => ErroneousDrop.new})
+ context = Context.new({ 'drop' => ErroneousDrop.new })
t = Template.new.parse('{{ drop.bad_method }}')
e = assert_raises RuntimeError do
diff --git a/test/integration/variable_test.rb b/test/integration/variable_test.rb
index b55d88a..e8e4f00 100644
--- a/test/integration/variable_test.rb
+++ b/test/integration/variable_test.rb
@@ -4,7 +4,7 @@ class VariableTest < Minitest::Test
include Liquid
def test_simple_variable
- template = Template.parse(%|{{test}}|)
+ template = Template.parse(%({{test}}))
assert_equal 'worked', template.render!('test' => 'worked')
assert_equal 'worked wonderfully', template.render!('test' => 'worked wonderfully')
end
@@ -14,19 +14,19 @@ class VariableTest < Minitest::Test
end
def test_simple_with_whitespaces
- template = Template.parse(%| {{ test }} |)
+ template = Template.parse(%( {{ test }} ))
assert_equal ' worked ', template.render!('test' => 'worked')
assert_equal ' worked wonderfully ', template.render!('test' => 'worked wonderfully')
end
def test_ignore_unknown
- template = Template.parse(%|{{ test }}|)
+ template = Template.parse(%({{ test }}))
assert_equal '', template.render!
end
def test_hash_scoping
- template = Template.parse(%|{{ test.test }}|)
- assert_equal 'worked', template.render!('test' => {'test' => 'worked'})
+ template = Template.parse(%({{ test.test }}))
+ assert_equal 'worked', template.render!('test' => { 'test' => 'worked' })
end
def test_false_renders_as_false
@@ -40,23 +40,23 @@ class VariableTest < Minitest::Test
end
def test_preset_assigns
- template = Template.parse(%|{{ test }}|)
+ template = Template.parse(%({{ test }}))
template.assigns['test'] = 'worked'
assert_equal 'worked', template.render!
end
def test_reuse_parsed_template
- template = Template.parse(%|{{ greeting }} {{ name }}|)
+ template = Template.parse(%({{ greeting }} {{ name }}))
template.assigns['greeting'] = 'Goodbye'
assert_equal 'Hello Tobi', template.render!('greeting' => 'Hello', 'name' => 'Tobi')
assert_equal 'Hello ', template.render!('greeting' => 'Hello', 'unknown' => 'Tobi')
assert_equal 'Hello Brian', template.render!('greeting' => 'Hello', 'name' => 'Brian')
assert_equal 'Goodbye Brian', template.render!('name' => 'Brian')
- assert_equal({'greeting'=>'Goodbye'}, template.assigns)
+ assert_equal({ 'greeting' => 'Goodbye' }, template.assigns)
end
def test_assigns_not_polluted_from_template
- template = Template.parse(%|{{ test }}{% assign test = 'bar' %}{{ test }}|)
+ template = Template.parse(%({{ test }}{% assign test = 'bar' %}{{ test }}))
template.assigns['test'] = 'baz'
assert_equal 'bazbar', template.render!
assert_equal 'bazbar', template.render!
@@ -65,8 +65,8 @@ class VariableTest < Minitest::Test
end
def test_hash_with_default_proc
- template = Template.parse(%|Hello {{ test }}|)
- assigns = Hash.new { |h,k| raise "Unknown variable '#{k}'" }
+ template = Template.parse(%(Hello {{ test }}))
+ assigns = Hash.new { |h, k| raise "Unknown variable '#{k}'" }
assigns['test'] = 'Tobi'
assert_equal 'Hello Tobi', template.render!(assigns)
assigns.delete('test')
diff --git a/test/unit/block_unit_test.rb b/test/unit/block_unit_test.rb
index 09bbbea..106c4d4 100644
--- a/test/unit/block_unit_test.rb
+++ b/test/unit/block_unit_test.rb
@@ -34,7 +34,7 @@ class BlockUnitTest < Minitest::Test
template = Liquid::Template.parse(" {{funk}} {{so}} {{brother}} ")
assert_equal 7, template.root.nodelist.size
assert_equal [String, Variable, String, Variable, String, Variable, String],
- block_types(template.root.nodelist)
+ block_types(template.root.nodelist)
end
def test_with_block
@@ -45,11 +45,12 @@ class BlockUnitTest < Minitest::Test
def test_with_custom_tag
Liquid::Template.register_tag("testtag", Block)
- assert Liquid::Template.parse( "{% testtag %} {% endtesttag %}")
+ assert Liquid::Template.parse("{% testtag %} {% endtesttag %}")
end
private
- def block_types(nodelist)
- nodelist.collect { |node| node.class }
- end
+
+ def block_types(nodelist)
+ nodelist.collect(&:class)
+ end
end # VariableTest
diff --git a/test/unit/condition_unit_test.rb b/test/unit/condition_unit_test.rb
index c2348a4..2ffecf6 100644
--- a/test/unit/condition_unit_test.rb
+++ b/test/unit/condition_unit_test.rb
@@ -62,15 +62,15 @@ class ConditionUnitTest < Minitest::Test
def test_contains_works_on_arrays
@context = Liquid::Context.new
- @context['array'] = [1,2,3,4,5]
+ @context['array'] = [1, 2, 3, 4, 5]
array_expr = VariableLookup.new("array")
assert_evalutes_false array_expr, 'contains', 0
- assert_evalutes_true array_expr, 'contains', 1
- assert_evalutes_true array_expr, 'contains', 2
- assert_evalutes_true array_expr, 'contains', 3
- assert_evalutes_true array_expr, 'contains', 4
- assert_evalutes_true array_expr, 'contains', 5
+ assert_evalutes_true array_expr, 'contains', 1
+ assert_evalutes_true array_expr, 'contains', 2
+ assert_evalutes_true array_expr, 'contains', 3
+ assert_evalutes_true array_expr, 'contains', 4
+ assert_evalutes_true array_expr, 'contains', 5
assert_evalutes_false array_expr, 'contains', 6
assert_evalutes_false array_expr, 'contains', "1"
end
@@ -114,9 +114,9 @@ class ConditionUnitTest < Minitest::Test
end
def test_should_allow_custom_proc_operator
- Condition.operators['starts_with'] = Proc.new { |cond, left, right| left =~ %r{^#{right}} }
+ Condition.operators['starts_with'] = proc { |cond, left, right| left =~ %r{^#{right}} }
- assert_evalutes_true 'bob', 'starts_with', 'b'
+ assert_evalutes_true 'bob', 'starts_with', 'b'
assert_evalutes_false 'bob', 'starts_with', 'o'
ensure
Condition.operators.delete 'starts_with'
@@ -130,20 +130,21 @@ class ConditionUnitTest < Minitest::Test
end
private
- def assert_evalutes_true(left, op, right)
- assert Condition.new(left, op, right).evaluate(@context || Liquid::Context.new),
- "Evaluated false: #{left} #{op} #{right}"
- end
- def assert_evalutes_false(left, op, right)
- assert !Condition.new(left, op, right).evaluate(@context || Liquid::Context.new),
- "Evaluated true: #{left} #{op} #{right}"
- end
+ def assert_evalutes_true(left, op, right)
+ assert Condition.new(left, op, right).evaluate(@context || Liquid::Context.new),
+ "Evaluated false: #{left} #{op} #{right}"
+ end
- def assert_evaluates_argument_error(left, op, right)
- assert_raises(Liquid::ArgumentError) do
- Condition.new(left, op, right).evaluate(@context || Liquid::Context.new)
- end
+ def assert_evalutes_false(left, op, right)
+ assert !Condition.new(left, op, right).evaluate(@context || Liquid::Context.new),
+ "Evaluated true: #{left} #{op} #{right}"
+ end
+
+ def assert_evaluates_argument_error(left, op, right)
+ assert_raises(Liquid::ArgumentError) do
+ Condition.new(left, op, right).evaluate(@context || Liquid::Context.new)
end
+ end
end # ConditionTest
diff --git a/test/unit/context_unit_test.rb b/test/unit/context_unit_test.rb
index b649483..a90a9cd 100644
--- a/test/unit/context_unit_test.rb
+++ b/test/unit/context_unit_test.rb
@@ -122,30 +122,25 @@ class ContextUnitTest < Minitest::Test
end
def test_length_query
-
- @context['numbers'] = [1,2,3,4]
+ @context['numbers'] = [1, 2, 3, 4]
assert_equal 4, @context['numbers.size']
- @context['numbers'] = {1 => 1,2 => 2,3 => 3,4 => 4}
+ @context['numbers'] = { 1 => 1, 2 => 2, 3 => 3, 4 => 4 }
assert_equal 4, @context['numbers.size']
- @context['numbers'] = {1 => 1,2 => 2,3 => 3,4 => 4, 'size' => 1000}
+ @context['numbers'] = { 1 => 1, 2 => 2, 3 => 3, 4 => 4, 'size' => 1000 }
assert_equal 1000, @context['numbers.size']
-
end
def test_hyphenated_variable
-
@context['oh-my'] = 'godz'
assert_equal 'godz', @context['oh-my']
-
end
def test_add_filter
-
filter = Module.new do
def hi(output)
output + ' hi!'
@@ -161,11 +156,9 @@ class ContextUnitTest < Minitest::Test
context.add_filters(filter)
assert_equal 'hi? hi!', context.invoke(:hi, 'hi?')
-
end
def test_only_intended_filters_make_it_there
-
filter = Module.new do
def hi(output)
output + ' hi!'
@@ -196,7 +189,7 @@ class ContextUnitTest < Minitest::Test
end
def test_hierachical_data
- @context['hash'] = {"name" => 'tobi'}
+ @context['hash'] = { "name" => 'tobi' }
assert_equal 'tobi', @context['hash.name']
assert_equal 'tobi', @context['hash["name"]']
end
@@ -225,7 +218,7 @@ class ContextUnitTest < Minitest::Test
end
def test_array_notation
- @context['test'] = [1,2,3,4,5]
+ @context['test'] = [1, 2, 3, 4, 5]
assert_equal 1, @context['test[0]']
assert_equal 2, @context['test[1]']
@@ -235,21 +228,21 @@ class ContextUnitTest < Minitest::Test
end
def test_recoursive_array_notation
- @context['test'] = {'test' => [1,2,3,4,5]}
+ @context['test'] = { 'test' => [1, 2, 3, 4, 5] }
assert_equal 1, @context['test.test[0]']
- @context['test'] = [{'test' => 'worked'}]
+ @context['test'] = [{ 'test' => 'worked' }]
assert_equal 'worked', @context['test[0].test']
end
def test_hash_to_array_transition
@context['colors'] = {
- 'Blue' => ['003366','336699', '6699CC', '99CCFF'],
- 'Green' => ['003300','336633', '669966', '99CC99'],
- 'Yellow' => ['CC9900','FFCC00', 'FFFF99', 'FFFFCC'],
- 'Red' => ['660000','993333', 'CC6666', 'FF9999']
+ 'Blue' => ['003366', '336699', '6699CC', '99CCFF'],
+ 'Green' => ['003300', '336633', '669966', '99CC99'],
+ 'Yellow' => ['CC9900', 'FFCC00', 'FFFF99', 'FFFFCC'],
+ 'Red' => ['660000', '993333', 'CC6666', 'FF9999']
}
assert_equal '003366', @context['colors.Blue[0]']
@@ -257,12 +250,12 @@ class ContextUnitTest < Minitest::Test
end
def test_try_first
- @context['test'] = [1,2,3,4,5]
+ @context['test'] = [1, 2, 3, 4, 5]
assert_equal 1, @context['test.first']
assert_equal 5, @context['test.last']
- @context['test'] = {'test' => [1,2,3,4,5]}
+ @context['test'] = { 'test' => [1, 2, 3, 4, 5] }
assert_equal 1, @context['test.test.first']
assert_equal 5, @context['test.test.last']
@@ -273,8 +266,8 @@ class ContextUnitTest < Minitest::Test
end
def test_access_hashes_with_hash_notation
- @context['products'] = {'count' => 5, 'tags' => ['deepsnow', 'freestyle'] }
- @context['product'] = {'variants' => [ {'title' => 'draft151cm'}, {'title' => 'element151cm'} ]}
+ @context['products'] = { 'count' => 5, 'tags' => ['deepsnow', 'freestyle'] }
+ @context['product'] = { 'variants' => [ { 'title' => 'draft151cm' }, { 'title' => 'element151cm' } ] }
assert_equal 5, @context['products["count"]']
assert_equal 'deepsnow', @context['products["tags"][0]']
@@ -294,18 +287,17 @@ class ContextUnitTest < Minitest::Test
end
def test_access_hashes_with_hash_access_variables
-
@context['var'] = 'tags'
- @context['nested'] = {'var' => 'tags'}
- @context['products'] = {'count' => 5, 'tags' => ['deepsnow', 'freestyle'] }
+ @context['nested'] = { 'var' => 'tags' }
+ @context['products'] = { 'count' => 5, 'tags' => ['deepsnow', 'freestyle'] }
assert_equal 'deepsnow', @context['products[var].first']
assert_equal 'freestyle', @context['products[nested.var].last']
end
def test_hash_notation_only_for_hash_access
- @context['array'] = [1,2,3,4,5]
- @context['hash'] = {'first' => 'Hello'}
+ @context['array'] = [1, 2, 3, 4, 5]
+ @context['hash'] = { 'first' => 'Hello' }
assert_equal 1, @context['array.first']
assert_equal nil, @context['array["first"]']
@@ -313,66 +305,64 @@ class ContextUnitTest < Minitest::Test
end
def test_first_can_appear_in_middle_of_callchain
-
- @context['product'] = {'variants' => [ {'title' => 'draft151cm'}, {'title' => 'element151cm'} ]}
+ @context['product'] = { 'variants' => [ { 'title' => 'draft151cm' }, { 'title' => 'element151cm' } ] }
assert_equal 'draft151cm', @context['product.variants[0].title']
assert_equal 'element151cm', @context['product.variants[1].title']
assert_equal 'draft151cm', @context['product.variants.first.title']
assert_equal 'element151cm', @context['product.variants.last.title']
-
end
def test_cents
- @context.merge( "cents" => HundredCentes.new )
+ @context.merge("cents" => HundredCentes.new)
assert_equal 100, @context['cents']
end
def test_nested_cents
- @context.merge( "cents" => { 'amount' => HundredCentes.new} )
+ @context.merge("cents" => { 'amount' => HundredCentes.new })
assert_equal 100, @context['cents.amount']
- @context.merge( "cents" => { 'cents' => { 'amount' => HundredCentes.new} } )
+ @context.merge("cents" => { 'cents' => { 'amount' => HundredCentes.new } })
assert_equal 100, @context['cents.cents.amount']
end
def test_cents_through_drop
- @context.merge( "cents" => CentsDrop.new )
+ @context.merge("cents" => CentsDrop.new)
assert_equal 100, @context['cents.amount']
end
def test_nested_cents_through_drop
- @context.merge( "vars" => {"cents" => CentsDrop.new} )
+ @context.merge("vars" => { "cents" => CentsDrop.new })
assert_equal 100, @context['vars.cents.amount']
end
def test_drop_methods_with_question_marks
- @context.merge( "cents" => CentsDrop.new )
+ @context.merge("cents" => CentsDrop.new)
assert @context['cents.non_zero?']
end
def test_context_from_within_drop
- @context.merge( "test" => '123', "vars" => ContextSensitiveDrop.new )
+ @context.merge("test" => '123', "vars" => ContextSensitiveDrop.new)
assert_equal '123', @context['vars.test']
end
def test_nested_context_from_within_drop
- @context.merge( "test" => '123', "vars" => {"local" => ContextSensitiveDrop.new } )
+ @context.merge("test" => '123', "vars" => { "local" => ContextSensitiveDrop.new })
assert_equal '123', @context['vars.local.test']
end
def test_ranges
- @context.merge( "test" => '5' )
+ @context.merge("test" => '5')
assert_equal (1..5), @context['(1..5)']
assert_equal (1..5), @context['(1..test)']
assert_equal (5..5), @context['(test..test)']
end
def test_cents_through_drop_nestedly
- @context.merge( "cents" => {"cents" => CentsDrop.new} )
+ @context.merge("cents" => { "cents" => CentsDrop.new })
assert_equal 100, @context['cents.cents.amount']
- @context.merge( "cents" => { "cents" => {"cents" => CentsDrop.new}} )
+ @context.merge("cents" => { "cents" => { "cents" => CentsDrop.new } })
assert_equal 100, @context['cents.cents.cents.amount']
end
@@ -393,7 +383,7 @@ class ContextUnitTest < Minitest::Test
end
def test_proc_as_variable
- @context['dynamic'] = Proc.new { 'Hello' }
+ @context['dynamic'] = proc { 'Hello' }
assert_equal 'Hello', @context['dynamic']
end
@@ -411,7 +401,7 @@ class ContextUnitTest < Minitest::Test
end
def test_array_containing_lambda_as_variable
- @context['dynamic'] = [1,2, proc { 'Hello' } ,4,5]
+ @context['dynamic'] = [1, 2, proc { 'Hello' }, 4, 5]
assert_equal 'Hello', @context['dynamic[2]']
end
@@ -437,7 +427,7 @@ class ContextUnitTest < Minitest::Test
end
def test_lambda_in_array_is_called_once
- @context['callcount'] = [1,2, proc { @global ||= 0; @global += 1; @global.to_s } ,4,5]
+ @context['callcount'] = [1, 2, proc { @global ||= 0; @global += 1; @global.to_s }, 4, 5]
assert_equal '1', @context['callcount[2]']
assert_equal '1', @context['callcount[2]']
@@ -472,11 +462,10 @@ class ContextUnitTest < Minitest::Test
end
def test_context_initialization_with_a_proc_in_environment
- contx = Context.new([:test => lambda { |c| c['poutine']}], {:test => :foo})
+ contx = Context.new([:test => ->(c) { c['poutine'] }], { :test => :foo })
assert contx
assert_nil contx['poutine']
end
-
end # ContextTest
diff --git a/test/unit/file_system_unit_test.rb b/test/unit/file_system_unit_test.rb
index da09eed..2c7250b 100644
--- a/test/unit/file_system_unit_test.rb
+++ b/test/unit/file_system_unit_test.rb
@@ -11,7 +11,7 @@ class FileSystemUnitTest < Minitest::Test
def test_local
file_system = Liquid::LocalFileSystem.new("/some/path")
- assert_equal "/some/path/_mypartial.liquid" , file_system.full_path("mypartial")
+ assert_equal "/some/path/_mypartial.liquid", file_system.full_path("mypartial")
assert_equal "/some/path/dir/_mypartial.liquid", file_system.full_path("dir/mypartial")
assert_raises(FileSystemError) do
@@ -29,7 +29,7 @@ class FileSystemUnitTest < Minitest::Test
def test_custom_template_filename_patterns
file_system = Liquid::LocalFileSystem.new("/some/path", "%s.html")
- assert_equal "/some/path/mypartial.html" , file_system.full_path("mypartial")
+ assert_equal "/some/path/mypartial.html", file_system.full_path("mypartial")
assert_equal "/some/path/dir/mypartial.html", file_system.full_path("dir/mypartial")
end
end # FileSystemTest
diff --git a/test/unit/i18n_unit_test.rb b/test/unit/i18n_unit_test.rb
index 389ea56..867a9ca 100644
--- a/test/unit/i18n_unit_test.rb
+++ b/test/unit/i18n_unit_test.rb
@@ -24,7 +24,7 @@ class I18nUnitTest < Minitest::Test
# @i18n.translate("whatever", :oopstypos => "yes")
# end
# end
-
+
def test_raises_unknown_translation
assert_raises I18n::TranslationError do
@i18n.translate("doesnt_exist")
diff --git a/test/unit/lexer_unit_test.rb b/test/unit/lexer_unit_test.rb
index c331380..af9c267 100644
--- a/test/unit/lexer_unit_test.rb
+++ b/test/unit/lexer_unit_test.rb
@@ -4,23 +4,23 @@ class LexerUnitTest < Minitest::Test
include Liquid
def test_strings
- tokens = Lexer.new(%! 'this is a test""' "wat 'lol'"!).tokenize
- assert_equal [[:string,%!'this is a test""'!], [:string, %!"wat 'lol'"!], [:end_of_string]], tokens
+ tokens = Lexer.new(%( 'this is a test""' "wat 'lol'")).tokenize
+ assert_equal [[:string, %('this is a test""')], [:string, %("wat 'lol'")], [:end_of_string]], tokens
end
def test_integer
tokens = Lexer.new('hi 50').tokenize
- assert_equal [[:id,'hi'], [:number, '50'], [:end_of_string]], tokens
+ assert_equal [[:id, 'hi'], [:number, '50'], [:end_of_string]], tokens
end
def test_float
tokens = Lexer.new('hi 5.0').tokenize
- assert_equal [[:id,'hi'], [:number, '5.0'], [:end_of_string]], tokens
+ assert_equal [[:id, 'hi'], [:number, '5.0'], [:end_of_string]], tokens
end
def test_comparison
tokens = Lexer.new('== <> contains').tokenize
- assert_equal [[:comparison,'=='], [:comparison, '<>'], [:comparison, 'contains'], [:end_of_string]], tokens
+ assert_equal [[:comparison, '=='], [:comparison, '<>'], [:comparison, 'contains'], [:end_of_string]], tokens
end
def test_specials
@@ -40,7 +40,7 @@ class LexerUnitTest < Minitest::Test
def test_whitespace
tokens = Lexer.new("five|\n\t ==").tokenize
- assert_equal [[:id,'five'], [:pipe, '|'], [:comparison, '=='], [:end_of_string]], tokens
+ assert_equal [[:id, 'five'], [:pipe, '|'], [:comparison, '=='], [:end_of_string]], tokens
end
def test_unexpected_character
diff --git a/test/unit/module_ex_unit_test.rb b/test/unit/module_ex_unit_test.rb
index 8e12653..9a8ec2e 100644
--- a/test/unit/module_ex_unit_test.rb
+++ b/test/unit/module_ex_unit_test.rb
@@ -5,9 +5,11 @@ class TestClassA
def allowedA
'allowedA'
end
+
def restrictedA
'restrictedA'
end
+
def chainedB
TestClassB.new
end
@@ -18,6 +20,7 @@ class TestClassB
def allowedB
'allowedB'
end
+
def chainedC
TestClassC.new
end
@@ -77,11 +80,11 @@ class ModuleExUnitTest < Minitest::Test
end
def test_should_use_regular_objects_as_drops
- assert_template_result 'allowedA', "{{ a.allowedA }}", 'a'=>@a
- assert_template_result 'allowedB', "{{ a.chainedB.allowedB }}", 'a'=>@a
- assert_template_result 'allowedC', "{{ a.chainedB.chainedC.allowedC }}", 'a'=>@a
- assert_template_result 'another_allowedC', "{{ a.chainedB.chainedC.another_allowedC }}", 'a'=>@a
- assert_template_result '', "{{ a.restricted }}", 'a'=>@a
- assert_template_result '', "{{ a.unknown }}", 'a'=>@a
+ assert_template_result 'allowedA', "{{ a.allowedA }}", 'a' => @a
+ assert_template_result 'allowedB', "{{ a.chainedB.allowedB }}", 'a' => @a
+ assert_template_result 'allowedC', "{{ a.chainedB.chainedC.allowedC }}", 'a' => @a
+ assert_template_result 'another_allowedC', "{{ a.chainedB.chainedC.another_allowedC }}", 'a' => @a
+ assert_template_result '', "{{ a.restricted }}", 'a' => @a
+ assert_template_result '', "{{ a.unknown }}", 'a' => @a
end
end # ModuleExTest
diff --git a/test/unit/regexp_unit_test.rb b/test/unit/regexp_unit_test.rb
index baabae3..0821229 100644
--- a/test/unit/regexp_unit_test.rb
+++ b/test/unit/regexp_unit_test.rb
@@ -18,7 +18,7 @@ class RegexpUnitTest < Minitest::Test
def test_tags
assert_equal ['', '
'], '
'.scan(QuotedFragment)
assert_equal ['
'], '
'.scan(QuotedFragment)
- assert_equal [''], %||.scan(QuotedFragment)
+ assert_equal [''], %().scan(QuotedFragment)
end
def test_double_quoted_words
diff --git a/test/unit/strainer_unit_test.rb b/test/unit/strainer_unit_test.rb
index 9fcff9c..0f970da 100644
--- a/test/unit/strainer_unit_test.rb
+++ b/test/unit/strainer_unit_test.rb
@@ -59,7 +59,7 @@ class StrainerUnitTest < Minitest::Test
def test_strainer_uses_a_class_cache_to_avoid_method_cache_invalidation
a = Module.new
b = Module.new
- strainer = Strainer.create(nil, [a,b])
+ strainer = Strainer.create(nil, [a, b])
assert_kind_of Strainer, strainer
assert_kind_of a, strainer
assert_kind_of b, strainer
diff --git a/test/unit/variable_unit_test.rb b/test/unit/variable_unit_test.rb
index d175af2..17fc8de 100644
--- a/test/unit/variable_unit_test.rb
+++ b/test/unit/variable_unit_test.rb
@@ -11,59 +11,59 @@ class VariableUnitTest < Minitest::Test
def test_filters
var = Variable.new('hello | textileze')
assert_equal VariableLookup.new('hello'), var.name
- assert_equal [['textileze',[]]], var.filters
+ assert_equal [['textileze', []]], var.filters
var = Variable.new('hello | textileze | paragraph')
assert_equal VariableLookup.new('hello'), var.name
- assert_equal [['textileze',[]], ['paragraph',[]]], var.filters
+ assert_equal [['textileze', []], ['paragraph', []]], var.filters
- var = Variable.new(%! hello | strftime: '%Y'!)
+ var = Variable.new(%( hello | strftime: '%Y'))
assert_equal VariableLookup.new('hello'), var.name
- assert_equal [['strftime',['%Y']]], var.filters
+ assert_equal [['strftime', ['%Y']]], var.filters
- var = Variable.new(%! 'typo' | link_to: 'Typo', true !)
+ var = Variable.new(%( 'typo' | link_to: 'Typo', true ))
assert_equal 'typo', var.name
- assert_equal [['link_to',['Typo', true]]], var.filters
+ assert_equal [['link_to', ['Typo', true]]], var.filters
- var = Variable.new(%! 'typo' | link_to: 'Typo', false !)
+ var = Variable.new(%( 'typo' | link_to: 'Typo', false ))
assert_equal 'typo', var.name
- assert_equal [['link_to',['Typo', false]]], var.filters
+ assert_equal [['link_to', ['Typo', false]]], var.filters
- var = Variable.new(%! 'foo' | repeat: 3 !)
+ var = Variable.new(%( 'foo' | repeat: 3 ))
assert_equal 'foo', var.name
- assert_equal [['repeat',[3]]], var.filters
+ assert_equal [['repeat', [3]]], var.filters
- var = Variable.new(%! 'foo' | repeat: 3, 3 !)
+ var = Variable.new(%( 'foo' | repeat: 3, 3 ))
assert_equal 'foo', var.name
- assert_equal [['repeat',[3,3]]], var.filters
+ assert_equal [['repeat', [3, 3]]], var.filters
- var = Variable.new(%! 'foo' | repeat: 3, 3, 3 !)
+ var = Variable.new(%( 'foo' | repeat: 3, 3, 3 ))
assert_equal 'foo', var.name
- assert_equal [['repeat',[3,3,3]]], var.filters
+ assert_equal [['repeat', [3, 3, 3]]], var.filters
- var = Variable.new(%! hello | strftime: '%Y, okay?'!)
+ var = Variable.new(%( hello | strftime: '%Y, okay?'))
assert_equal VariableLookup.new('hello'), var.name
- assert_equal [['strftime',['%Y, okay?']]], var.filters
+ assert_equal [['strftime', ['%Y, okay?']]], var.filters
- var = Variable.new(%! hello | things: "%Y, okay?", 'the other one'!)
+ var = Variable.new(%( hello | things: "%Y, okay?", 'the other one'))
assert_equal VariableLookup.new('hello'), var.name
- assert_equal [['things',['%Y, okay?','the other one']]], var.filters
+ assert_equal [['things', ['%Y, okay?', 'the other one']]], var.filters
end
def test_filter_with_date_parameter
- var = Variable.new(%! '2006-06-06' | date: "%m/%d/%Y"!)
+ var = Variable.new(%( '2006-06-06' | date: "%m/%d/%Y"))
assert_equal '2006-06-06', var.name
- assert_equal [['date',['%m/%d/%Y']]], var.filters
+ assert_equal [['date', ['%m/%d/%Y']]], var.filters
end
def test_filters_without_whitespace
var = Variable.new('hello | textileze | paragraph')
assert_equal VariableLookup.new('hello'), var.name
- assert_equal [['textileze',[]], ['paragraph',[]]], var.filters
+ assert_equal [['textileze', []], ['paragraph', []]], var.filters
var = Variable.new('hello|textileze|paragraph')
assert_equal VariableLookup.new('hello'), var.name
- assert_equal [['textileze',[]], ['paragraph',[]]], var.filters
+ assert_equal [['textileze', []], ['paragraph', []]], var.filters
var = Variable.new("hello|replace:'foo','bar'|textileze")
assert_equal VariableLookup.new('hello'), var.name
@@ -73,32 +73,32 @@ class VariableUnitTest < Minitest::Test
def test_symbol
var = Variable.new("http://disney.com/logo.gif | image: 'med' ", :error_mode => :lax)
assert_equal VariableLookup.new('http://disney.com/logo.gif'), var.name
- assert_equal [['image',['med']]], var.filters
+ assert_equal [['image', ['med']]], var.filters
end
def test_string_to_filter
var = Variable.new("'http://disney.com/logo.gif' | image: 'med' ")
assert_equal 'http://disney.com/logo.gif', var.name
- assert_equal [['image',['med']]], var.filters
+ assert_equal [['image', ['med']]], var.filters
end
def test_string_single_quoted
- var = Variable.new(%| "hello" |)
+ var = Variable.new(%( "hello" ))
assert_equal 'hello', var.name
end
def test_string_double_quoted
- var = Variable.new(%| 'hello' |)
+ var = Variable.new(%( 'hello' ))
assert_equal 'hello', var.name
end
def test_integer
- var = Variable.new(%| 1000 |)
+ var = Variable.new(%( 1000 ))
assert_equal 1000, var.name
end
def test_float
- var = Variable.new(%| 1000.01 |)
+ var = Variable.new(%( 1000.01 ))
assert_equal 1000.01, var.name
end
@@ -114,37 +114,37 @@ class VariableUnitTest < Minitest::Test
end
def test_string_with_special_chars
- var = Variable.new(%| 'hello! $!@.;"ddasd" ' |)
+ var = Variable.new(%( 'hello! $!@.;"ddasd" ' ))
assert_equal 'hello! $!@.;"ddasd" ', var.name
end
def test_string_dot
- var = Variable.new(%| test.test |)
+ var = Variable.new(%( test.test ))
assert_equal VariableLookup.new('test.test'), var.name
end
def test_filter_with_keyword_arguments
- var = Variable.new(%! hello | things: greeting: "world", farewell: 'goodbye'!)
+ var = Variable.new(%( hello | things: greeting: "world", farewell: 'goodbye'))
assert_equal VariableLookup.new('hello'), var.name
assert_equal [['things', [], { 'greeting' => 'world', 'farewell' => 'goodbye' }]], var.filters
end
def test_lax_filter_argument_parsing
- var = Variable.new(%! number_of_comments | pluralize: 'comment': 'comments' !, :error_mode => :lax)
+ var = Variable.new(%( number_of_comments | pluralize: 'comment': 'comments' ), :error_mode => :lax)
assert_equal VariableLookup.new('number_of_comments'), var.name
- assert_equal [['pluralize',['comment','comments']]], var.filters
+ assert_equal [['pluralize', ['comment', 'comments']]], var.filters
end
def test_strict_filter_argument_parsing
with_error_mode(:strict) do
assert_raises(SyntaxError) do
- Variable.new(%! number_of_comments | pluralize: 'comment': 'comments' !)
+ Variable.new(%( number_of_comments | pluralize: 'comment': 'comments' ))
end
end
end
def test_output_raw_source_of_variable
- var = Variable.new(%! name_of_variable | upcase !)
+ var = Variable.new(%( name_of_variable | upcase ))
assert_equal " name_of_variable | upcase ", var.raw
end