Sha256: daeb12bbf52767cc1e2f0aaf56a7f0c374432d9cb1a76716699aaab41aebadbe

Contents?: true

Size: 1.28 KB

Versions: 38

Compression:

Stored size: 1.28 KB

Contents

require 'spec_helper'

describe Picky::API::Category::Similarity do
  let(:object) do
    Class.new do
      include Picky::API::Category::Similarity

      def index_name
        :some_index
      end
      def name
        :some_category
      end
    end.new
  end
  context 'encode' do
    context 'with nil' do
      it 'returns the default' do
        object.extract_similarity(nil).should == Picky::Similarity::Default
      end
    end
    context 'with a similarity object' do
      let(:similarizer) do
        Class.new do
          def encode text
            :encoded
          end
          def prioritize ary, encoded

          end
        end.new
      end
      it 'returns the encoded string' do
        object.extract_similarity(similarizer).encode('whatevs').should == :encoded
      end
    end
    context 'invalid weight' do
      it 'raises with a nice error message' do
        expect {
          object.extract_similarity Object.new
        }.to raise_error(<<-ERROR)
similarity options for some_index:some_category should be either
* for example a Similarity::Phonetic.new(n), Similarity::Metaphone.new(n), Similarity::DoubleMetaphone.new(n) etc.
or
* an object that responds to #encode(text) => encoded_text and #prioritize(array_of_encoded, encoded)
ERROR
      end
    end
  end
end

Version data entries

38 entries across 38 versions & 1 rubygems

Version Path
picky-4.6.3 spec/lib/api/category/similarity_spec.rb
picky-4.6.2 spec/lib/api/category/similarity_spec.rb
picky-4.6.1 spec/lib/api/category/similarity_spec.rb
picky-4.6.0 spec/lib/api/category/similarity_spec.rb
picky-4.5.12 spec/lib/api/category/similarity_spec.rb
picky-4.5.11 spec/lib/api/category/similarity_spec.rb
picky-4.5.10 spec/lib/api/category/similarity_spec.rb
picky-4.5.9 spec/lib/api/category/similarity_spec.rb
picky-4.5.8 spec/lib/api/category/similarity_spec.rb
picky-4.5.7 spec/lib/api/category/similarity_spec.rb
picky-4.5.6 spec/lib/api/category/similarity_spec.rb
picky-4.5.5 spec/lib/api/category/similarity_spec.rb
picky-4.5.4 spec/lib/api/category/similarity_spec.rb
picky-4.5.3 spec/lib/api/category/similarity_spec.rb
picky-4.5.2 spec/lib/api/category/similarity_spec.rb
picky-4.5.1 spec/lib/api/category/similarity_spec.rb
picky-4.5.0 spec/lib/api/category/similarity_spec.rb
picky-4.4.2 spec/lib/api/category/similarity_spec.rb
picky-4.4.1 spec/lib/api/category/similarity_spec.rb
picky-4.4.0 spec/lib/api/category/similarity_spec.rb