Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/liquid-validations.rb
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ def check_occurance(patterns, value, max)
def get_max_tag(tag, value, max)
max_tag = ""
tag.each do |ele|
if value.scan(/{% #{ele} %}/).size > max
if value.scan(/{%\s+#{ele}\s+(.*?)%}/).size > max
max_tag << "{% #{ele} %}"
end
end
Expand Down
14 changes: 14 additions & 0 deletions spec/liquid_validations_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -279,5 +279,19 @@ class Mixin < ActiveRecord::Base
@mixin.errors.full_messages.any? { |e| e == "content must not have more than 2 {% josh_is_awesome %}" }.must_equal true
end
end

describe "When tag contanis array of tag, complex pattern and presence is false" do
before do
Mixin.instance_eval do
validates_liquid_tag :content, tag: ['date_of_birth', 'national_id_no', 'street', 'postal_code', 'city', 'country_code', 'count', 'note'], max: 1, presence: false, :allow_blank => true
end
@mixin = Mixin.new
end
it "must be valid when the content is nil" do
@mixin.content = "{% name %} {% email %} {% street 'Adresse', 'data-required=true' %} {% street 'Sted', 'data-required=true' %}"
@mixin.valid?
@mixin.errors.full_messages.any? { |e| e == "content must not have more than 1 {% street %}" }.must_equal true
end
end
end
end