Sha256: 61506d464efc832f759c16dd8d93626a3e48df50d8495f0635b7f2c270d9e87c

Contents?: true

Size: 1.98 KB

Versions: 48

Compression:

Stored size: 1.98 KB

Contents

require 'spec_helper'

describe Picky::Generators::Similarity do
  let(:similarity) { described_class } # "class", actually a module.
  context 'encode' do
    context 'with nil' do
      it 'returns the default' do
        similarity.from(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
        similarity.from(similarizer).encode('whatevs').should == :encoded
      end
    end
    context 'invalid weight' do
      it 'raises with a nice error message' do
        expect {
          similarity.from Object.new
        }.to raise_error(<<-ERROR)
similarity options 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
      it 'raises with a nice error message' do
        expect {
          similarity.from Object.new, 'some_index'
        }.to raise_error(<<-ERROR)
similarity options for some_index 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
      it 'raises with a nice error message' do
        expect {
          similarity.from Object.new, 'some_index', 'some_category'
        }.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

48 entries across 48 versions & 1 rubygems

Version Path
picky-4.21.2 spec/lib/generators/similarity_spec.rb
picky-4.21.1 spec/lib/generators/similarity_spec.rb
picky-4.21.0 spec/lib/generators/similarity_spec.rb
picky-4.20.2 spec/lib/generators/similarity_spec.rb
picky-4.20.1 spec/lib/generators/similarity_spec.rb
picky-4.20.0 spec/lib/generators/similarity_spec.rb
picky-4.19.7 spec/lib/generators/similarity_spec.rb
picky-4.19.6 spec/lib/generators/similarity_spec.rb
picky-4.19.5 spec/lib/generators/similarity_spec.rb
picky-4.19.4 spec/lib/generators/similarity_spec.rb
picky-4.19.3 spec/lib/generators/similarity_spec.rb
picky-4.19.2 spec/lib/generators/similarity_spec.rb
picky-4.19.1 spec/lib/generators/similarity_spec.rb
picky-4.19.0 spec/lib/generators/similarity_spec.rb
picky-4.18.0 spec/lib/generators/similarity_spec.rb
picky-4.17.1 spec/lib/generators/similarity_spec.rb
picky-4.17.0 spec/lib/generators/similarity_spec.rb
picky-4.16.0 spec/lib/generators/similarity_spec.rb
picky-4.15.1 spec/lib/generators/similarity_spec.rb
picky-4.15.0 spec/lib/generators/similarity_spec.rb