yc-algoliasearch-rails 2.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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