Sha256: 06f3aad8010a87738ae158cb5cb22366f2db9862eaa0a99b03ecf997ccd6bd42

Contents?: true

Size: 1.6 KB

Versions: 24

Compression:

Stored size: 1.6 KB

Contents

# -*- encoding : utf-8 -*-
require 'spec_helper'

describe ActsAsTaggableOn::DefaultParser do
  it '#parse should return empty array if empty array is passed' do
    parser = ActsAsTaggableOn::DefaultParser.new([])
    expect(parser.parse).to be_empty
  end

  describe 'Multiple Delimiter' do
    before do
      @old_delimiter = ActsAsTaggableOn.delimiter
    end

    after do
      ActsAsTaggableOn.delimiter = @old_delimiter
    end

    it 'should separate tags by delimiters' do
      ActsAsTaggableOn.delimiter = [',', ' ', '\|']
      parser = ActsAsTaggableOn::DefaultParser.new('cool, data|I have')
      expect(parser.parse.to_s).to eq('cool, data, I, have')
    end

    it 'should escape quote' do
      ActsAsTaggableOn.delimiter = [',', ' ', '\|']
      parser = ActsAsTaggableOn::DefaultParser.new("'I have'|cool, data")
      expect(parser.parse.to_s).to eq('"I have", cool, data')

      parser = ActsAsTaggableOn::DefaultParser.new('"I, have"|cool, data')
      expect(parser.parse.to_s).to eq('"I, have", cool, data')
    end

    it 'should work for utf8 delimiter and long delimiter' do
      ActsAsTaggableOn.delimiter = [',', '的', '可能是']
      parser = ActsAsTaggableOn::DefaultParser.new('我的东西可能是不见了,还好有备份')
      expect(parser.parse.to_s).to eq('我, 东西, 不见了, 还好有备份')
    end

    it 'should work for multiple quoted tags' do
      ActsAsTaggableOn.delimiter = [',']
      parser = ActsAsTaggableOn::DefaultParser.new('"Ruby Monsters","eat Katzenzungen"')
      expect(parser.parse.to_s).to eq('Ruby Monsters, eat Katzenzungen')
    end
  end

end

Version data entries

24 entries across 23 versions & 4 rubygems

Version Path
acts-as-taggable-on-12.0.0 spec/acts_as_taggable_on/default_parser_spec.rb
acts-as-taggable-on-11.0.0 spec/acts_as_taggable_on/default_parser_spec.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/acts-as-taggable-on-10.0.0/spec/acts_as_taggable_on/default_parser_spec.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/acts-as-taggable-on-9.0.1/spec/acts_as_taggable_on/default_parser_spec.rb
acts-as-taggable-on-10.0.0 spec/acts_as_taggable_on/default_parser_spec.rb
acts-as-taggable-on-9.0.1 spec/acts_as_taggable_on/default_parser_spec.rb
acts-as-taggable-on-9.0.0 spec/acts_as_taggable_on/default_parser_spec.rb
acts-as-taggable-on-fix-8.1.1 spec/acts_as_taggable_on/default_parser_spec.rb
acts-as-taggable-on-fix-8.1.0 spec/acts_as_taggable_on/default_parser_spec.rb
acts-as-taggable-on-8.1.0 spec/acts_as_taggable_on/default_parser_spec.rb
acts-as-taggable-on-8.0.0 spec/acts_as_taggable_on/default_parser_spec.rb
acts-as-taggable-on-7.0.0 spec/acts_as_taggable_on/default_parser_spec.rb
acts-as-taggable-on-6.5.0 spec/acts_as_taggable_on/default_parser_spec.rb
sb-acts-as-taggable-on-6.5.0 spec/acts_as_taggable_on/default_parser_spec.rb
acts-as-taggable-on-6.0.0 spec/acts_as_taggable_on/default_parser_spec.rb
acts-as-taggable-on-5.0.0 spec/acts_as_taggable_on/default_parser_spec.rb
acts-as-taggable-on-4.0.0 spec/acts_as_taggable_on/default_parser_spec.rb
acts-as-taggable-on-4.0.0.pre spec/acts_as_taggable_on/default_parser_spec.rb
acts-as-taggable-on-3.5.0 spec/acts_as_taggable_on/default_parser_spec.rb
acts-as-taggable-on-3.4.4 spec/acts_as_taggable_on/default_parser_spec.rb