yc-algoliasearch-rails 2.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.document +5 -0
- data/.rspec +1 -0
- data/CHANGELOG.MD +566 -0
- data/Gemfile +38 -0
- data/Gemfile.lock +213 -0
- data/LICENSE +21 -0
- data/README.md +1171 -0
- data/Rakefile +17 -0
- data/algoliasearch-rails.gemspec +95 -0
- data/lib/algoliasearch/algolia_job.rb +9 -0
- data/lib/algoliasearch/configuration.rb +30 -0
- data/lib/algoliasearch/pagination/kaminari.rb +40 -0
- data/lib/algoliasearch/pagination/will_paginate.rb +15 -0
- data/lib/algoliasearch/pagination.rb +19 -0
- data/lib/algoliasearch/railtie.rb +11 -0
- data/lib/algoliasearch/tasks/algoliasearch.rake +19 -0
- data/lib/algoliasearch/utilities.rb +48 -0
- data/lib/algoliasearch/version.rb +3 -0
- data/lib/algoliasearch-rails.rb +1083 -0
- data/spec/spec_helper.rb +52 -0
- data/spec/utilities_spec.rb +30 -0
- data/vendor/assets/javascripts/algolia/algoliasearch.angular.js +2678 -0
- data/vendor/assets/javascripts/algolia/algoliasearch.angular.min.js +7 -0
- data/vendor/assets/javascripts/algolia/algoliasearch.jquery.js +2678 -0
- data/vendor/assets/javascripts/algolia/algoliasearch.jquery.min.js +7 -0
- data/vendor/assets/javascripts/algolia/algoliasearch.js +2663 -0
- data/vendor/assets/javascripts/algolia/algoliasearch.min.js +7 -0
- data/vendor/assets/javascripts/algolia/bloodhound.js +727 -0
- data/vendor/assets/javascripts/algolia/bloodhound.min.js +7 -0
- data/vendor/assets/javascripts/algolia/typeahead.bundle.js +1782 -0
- data/vendor/assets/javascripts/algolia/typeahead.bundle.min.js +7 -0
- data/vendor/assets/javascripts/algolia/typeahead.jquery.js +1184 -0
- data/vendor/assets/javascripts/algolia/typeahead.jquery.min.js +7 -0
- data/vendor/assets/javascripts/algolia/v2/algoliasearch.angular.js +2678 -0
- data/vendor/assets/javascripts/algolia/v2/algoliasearch.angular.min.js +7 -0
- data/vendor/assets/javascripts/algolia/v2/algoliasearch.jquery.js +2678 -0
- data/vendor/assets/javascripts/algolia/v2/algoliasearch.jquery.min.js +7 -0
- data/vendor/assets/javascripts/algolia/v2/algoliasearch.js +2663 -0
- data/vendor/assets/javascripts/algolia/v2/algoliasearch.min.js +7 -0
- data/vendor/assets/javascripts/algolia/v3/algoliasearch.angular.js +6277 -0
- data/vendor/assets/javascripts/algolia/v3/algoliasearch.angular.min.js +3 -0
- data/vendor/assets/javascripts/algolia/v3/algoliasearch.jquery.js +6223 -0
- data/vendor/assets/javascripts/algolia/v3/algoliasearch.jquery.min.js +3 -0
- data/vendor/assets/javascripts/algolia/v3/algoliasearch.js +6070 -0
- data/vendor/assets/javascripts/algolia/v3/algoliasearch.min.js +3 -0
- metadata +174 -0
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
require 'timeout'
|
4
|
+
|
5
|
+
Bundler.setup :test
|
6
|
+
|
7
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
8
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
9
|
+
|
10
|
+
require 'algoliasearch-rails'
|
11
|
+
require 'rspec'
|
12
|
+
require 'rails/all'
|
13
|
+
|
14
|
+
raise "missing ALGOLIA_APPLICATION_ID or ALGOLIA_API_KEY environment variables" if ENV['ALGOLIA_APPLICATION_ID'].nil? || ENV['ALGOLIA_API_KEY'].nil?
|
15
|
+
|
16
|
+
Thread.current[:algolia_hosts] = nil
|
17
|
+
|
18
|
+
RSpec.configure do |c|
|
19
|
+
c.mock_with :rspec
|
20
|
+
c.filter_run :focus => true
|
21
|
+
c.run_all_when_everything_filtered = true
|
22
|
+
c.formatter = 'documentation'
|
23
|
+
|
24
|
+
c.around(:each) do |example|
|
25
|
+
Timeout::timeout(120) {
|
26
|
+
example.run
|
27
|
+
}
|
28
|
+
end
|
29
|
+
|
30
|
+
# Remove all indexes setup in this run in local or CI
|
31
|
+
c.after(:suite) do
|
32
|
+
safe_index_list.each do |i|
|
33
|
+
index = AlgoliaSearch.client.init_index(i['name'])
|
34
|
+
index.delete!
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# A unique prefix for your test run in local or CI
|
40
|
+
SAFE_INDEX_PREFIX = "rails_#{SecureRandom.hex(8)}".freeze
|
41
|
+
|
42
|
+
# avoid concurrent access to the same index in local or CI
|
43
|
+
def safe_index_name(name)
|
44
|
+
"#{SAFE_INDEX_PREFIX}_#{name}"
|
45
|
+
end
|
46
|
+
|
47
|
+
# get a list of safe indexes in local or CI
|
48
|
+
def safe_index_list
|
49
|
+
list = AlgoliaSearch.client.list_indexes['items']
|
50
|
+
list = list.select { |index| index["name"].include?(SAFE_INDEX_PREFIX) }
|
51
|
+
list.sort_by { |index| index["primary"] || "" }
|
52
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
|
2
|
+
|
3
|
+
AlgoliaSearch.configuration = { :application_id => ENV['ALGOLIA_APPLICATION_ID'], :api_key => ENV['ALGOLIA_API_KEY'] }
|
4
|
+
|
5
|
+
describe AlgoliaSearch::Utilities do
|
6
|
+
|
7
|
+
before(:each) do
|
8
|
+
@included_in = AlgoliaSearch.instance_variable_get :@included_in
|
9
|
+
AlgoliaSearch.instance_variable_set :@included_in, []
|
10
|
+
|
11
|
+
class Dummy
|
12
|
+
include AlgoliaSearch
|
13
|
+
|
14
|
+
def self.model_name
|
15
|
+
"Dummy"
|
16
|
+
end
|
17
|
+
|
18
|
+
algoliasearch
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
after(:each) do
|
23
|
+
AlgoliaSearch.instance_variable_set :@included_in, @included_in
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should get the models where AlgoliaSearch module was included" do
|
27
|
+
(AlgoliaSearch::Utilities.get_model_classes - [Dummy]).should == []
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|