yc-algoliasearch-rails 2.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.rspec +1 -0
  4. data/CHANGELOG.MD +566 -0
  5. data/Gemfile +38 -0
  6. data/Gemfile.lock +213 -0
  7. data/LICENSE +21 -0
  8. data/README.md +1171 -0
  9. data/Rakefile +17 -0
  10. data/algoliasearch-rails.gemspec +95 -0
  11. data/lib/algoliasearch/algolia_job.rb +9 -0
  12. data/lib/algoliasearch/configuration.rb +30 -0
  13. data/lib/algoliasearch/pagination/kaminari.rb +40 -0
  14. data/lib/algoliasearch/pagination/will_paginate.rb +15 -0
  15. data/lib/algoliasearch/pagination.rb +19 -0
  16. data/lib/algoliasearch/railtie.rb +11 -0
  17. data/lib/algoliasearch/tasks/algoliasearch.rake +19 -0
  18. data/lib/algoliasearch/utilities.rb +48 -0
  19. data/lib/algoliasearch/version.rb +3 -0
  20. data/lib/algoliasearch-rails.rb +1083 -0
  21. data/spec/spec_helper.rb +52 -0
  22. data/spec/utilities_spec.rb +30 -0
  23. data/vendor/assets/javascripts/algolia/algoliasearch.angular.js +2678 -0
  24. data/vendor/assets/javascripts/algolia/algoliasearch.angular.min.js +7 -0
  25. data/vendor/assets/javascripts/algolia/algoliasearch.jquery.js +2678 -0
  26. data/vendor/assets/javascripts/algolia/algoliasearch.jquery.min.js +7 -0
  27. data/vendor/assets/javascripts/algolia/algoliasearch.js +2663 -0
  28. data/vendor/assets/javascripts/algolia/algoliasearch.min.js +7 -0
  29. data/vendor/assets/javascripts/algolia/bloodhound.js +727 -0
  30. data/vendor/assets/javascripts/algolia/bloodhound.min.js +7 -0
  31. data/vendor/assets/javascripts/algolia/typeahead.bundle.js +1782 -0
  32. data/vendor/assets/javascripts/algolia/typeahead.bundle.min.js +7 -0
  33. data/vendor/assets/javascripts/algolia/typeahead.jquery.js +1184 -0
  34. data/vendor/assets/javascripts/algolia/typeahead.jquery.min.js +7 -0
  35. data/vendor/assets/javascripts/algolia/v2/algoliasearch.angular.js +2678 -0
  36. data/vendor/assets/javascripts/algolia/v2/algoliasearch.angular.min.js +7 -0
  37. data/vendor/assets/javascripts/algolia/v2/algoliasearch.jquery.js +2678 -0
  38. data/vendor/assets/javascripts/algolia/v2/algoliasearch.jquery.min.js +7 -0
  39. data/vendor/assets/javascripts/algolia/v2/algoliasearch.js +2663 -0
  40. data/vendor/assets/javascripts/algolia/v2/algoliasearch.min.js +7 -0
  41. data/vendor/assets/javascripts/algolia/v3/algoliasearch.angular.js +6277 -0
  42. data/vendor/assets/javascripts/algolia/v3/algoliasearch.angular.min.js +3 -0
  43. data/vendor/assets/javascripts/algolia/v3/algoliasearch.jquery.js +6223 -0
  44. data/vendor/assets/javascripts/algolia/v3/algoliasearch.jquery.min.js +3 -0
  45. data/vendor/assets/javascripts/algolia/v3/algoliasearch.js +6070 -0
  46. data/vendor/assets/javascripts/algolia/v3/algoliasearch.min.js +3 -0
  47. metadata +174 -0
@@ -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