elastic_record 1.1.8 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +4 -1
- data/Gemfile +3 -1
- data/elastic_record.gemspec +1 -1
- data/lib/elastic_record/callbacks.rb +2 -0
- data/lib/elastic_record/connection.rb +5 -9
- data/lib/elastic_record/index/mapping.rb +2 -2
- data/lib/elastic_record/model.rb +1 -1
- data/lib/elastic_record/relation/search_methods.rb +0 -9
- data/lib/elastic_record/relation/value_methods.rb +1 -1
- data/lib/elastic_record/relation.rb +7 -26
- data/lib/elastic_record.rb +0 -1
- data/test/elastic_record/config_test.rb +1 -1
- data/test/elastic_record/connection_test.rb +2 -2
- data/test/elastic_record/index/mapping_test.rb +11 -1
- data/test/elastic_record/integration/active_record_test.rb +62 -25
- data/test/elastic_record/relation_test.rb +0 -47
- data/test/helper.rb +1 -7
- data/test/support/models/test_model.rb +1 -19
- data/test/support/models/warehouse.rb +0 -1
- data/test/support/models/widget.rb +0 -2
- metadata +11 -24
- data/lib/elastic_record/searches_many/association.rb +0 -149
- data/lib/elastic_record/searches_many/autosave.rb +0 -72
- data/lib/elastic_record/searches_many/builder.rb +0 -42
- data/lib/elastic_record/searches_many/collection_proxy.rb +0 -26
- data/lib/elastic_record/searches_many/reflection.rb +0 -45
- data/lib/elastic_record/searches_many.rb +0 -100
- data/test/elastic_record/searches_many/association_test.rb +0 -47
- data/test/elastic_record/searches_many/autosave_test.rb +0 -32
- data/test/elastic_record/searches_many/collection_proxy_test.rb +0 -23
- data/test/elastic_record/searches_many/reflection_test.rb +0 -33
- data/test/elastic_record/searches_many_test.rb +0 -76
- data/test/support/models/option.rb +0 -24
- data/test/support/query_counter.rb +0 -56
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 87cc4a4cf72e33d968d2d7ffaa9a28eab62e3bfb
|
4
|
+
data.tar.gz: ca646f6157b72b51cd77c0886c71bc935418e456
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d64bd38ead974d0e42b65b1fa472779661f0a48f3e9c7aea831228f87655cf1c3e63f1b1277fc69df3c806cd5ca6c5491debba14029c64e99d125c5a0887d1ea
|
7
|
+
data.tar.gz: bed6b22da214f2aadccb6f01a7a39afe02ce3faf8bd0da29348d03562f9769b5daff9b0e7b95f69f875338467fe7617e8ae2d4132efeeb651ee6ab24d32bf855
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/elastic_record.gemspec
CHANGED
@@ -7,11 +7,7 @@ module ElasticRecord
|
|
7
7
|
attr_accessor :max_request_count
|
8
8
|
attr_accessor :bulk_stack
|
9
9
|
def initialize(servers, options = {})
|
10
|
-
|
11
|
-
self.servers = servers
|
12
|
-
else
|
13
|
-
self.servers = servers.split(',')
|
14
|
-
end
|
10
|
+
self.servers = Array(servers)
|
15
11
|
|
16
12
|
self.current_server = next_server
|
17
13
|
self.request_count = 0
|
@@ -51,10 +47,10 @@ module ElasticRecord
|
|
51
47
|
end
|
52
48
|
|
53
49
|
METHODS = {
|
54
|
-
head:
|
55
|
-
get:
|
56
|
-
post:
|
57
|
-
put:
|
50
|
+
head: Net::HTTP::Head,
|
51
|
+
get: Net::HTTP::Get,
|
52
|
+
post: Net::HTTP::Post,
|
53
|
+
put: Net::HTTP::Put,
|
58
54
|
delete: Net::HTTP::Delete
|
59
55
|
}
|
60
56
|
|
data/lib/elastic_record/model.rb
CHANGED
@@ -4,7 +4,7 @@ module ElasticRecord
|
|
4
4
|
base.class_eval do
|
5
5
|
extend Searching
|
6
6
|
extend ClassMethods
|
7
|
-
include
|
7
|
+
include Callbacks
|
8
8
|
|
9
9
|
class_attribute :elastic_connection
|
10
10
|
self.elastic_connection = ElasticRecord::Connection.new(ElasticRecord::Config.servers, ElasticRecord::Config.connection_options)
|
@@ -47,15 +47,6 @@ module ElasticRecord
|
|
47
47
|
filter(*args).first!
|
48
48
|
end
|
49
49
|
|
50
|
-
def eager_load!(*args)
|
51
|
-
self.eager_load_values += args.flatten
|
52
|
-
self
|
53
|
-
end
|
54
|
-
|
55
|
-
def eager_load(*args)
|
56
|
-
clone.eager_load! *args
|
57
|
-
end
|
58
|
-
|
59
50
|
def limit!(value)
|
60
51
|
self.limit_value = value
|
61
52
|
self
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module ElasticRecord
|
2
2
|
class Relation
|
3
|
-
MULTI_VALUE_METHODS = [:extending, :facet, :filter, :order, :select
|
3
|
+
MULTI_VALUE_METHODS = [:extending, :facet, :filter, :order, :select]
|
4
4
|
SINGLE_VALUE_METHODS = [:query, :limit, :offset, :reverse_order]
|
5
5
|
end
|
6
6
|
end
|
@@ -35,16 +35,8 @@ module ElasticRecord
|
|
35
35
|
reset
|
36
36
|
end
|
37
37
|
|
38
|
-
def eager_loading?
|
39
|
-
@should_eager_load ||= eager_load_values.any?
|
40
|
-
end
|
41
|
-
|
42
38
|
def to_a
|
43
|
-
@records ||=
|
44
|
-
records = load_hits(to_ids)
|
45
|
-
eager_load_associations(records) if eager_loading?
|
46
|
-
records
|
47
|
-
end
|
39
|
+
@records ||= load_hits(to_ids)
|
48
40
|
end
|
49
41
|
|
50
42
|
def to_ids
|
@@ -69,7 +61,6 @@ module ElasticRecord
|
|
69
61
|
private
|
70
62
|
def reset
|
71
63
|
@search_results = @records = nil
|
72
|
-
@should_eager_load = nil
|
73
64
|
end
|
74
65
|
|
75
66
|
def search_hits
|
@@ -83,24 +74,14 @@ module ElasticRecord
|
|
83
74
|
def load_hits(ids)
|
84
75
|
scope = select_values.any? ? klass.select(select_values) : klass
|
85
76
|
if defined?(ActiveRecord::Base) && klass < ActiveRecord::Base
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
def eager_load_associations(records)
|
92
|
-
records = records.reject(&:marked_for_destruction?)
|
93
|
-
ids = records.map(&:id)
|
94
|
-
eager_load_values.each do |to_load|
|
95
|
-
reflection = klass.searches_many_reflections[to_load] ||(raise "searches_many #{to_load} does not exist on #{klass}")
|
96
|
-
foreign_key = reflection.foreign_key.to_sym
|
97
|
-
grouped_children = reflection.klass.elastic_search.filter(foreign_key => ids).limit(1000000).group_by(&foreign_key)
|
98
|
-
records.each do |record|
|
99
|
-
children = grouped_children.fetch(record.id, [])
|
100
|
-
record.send(to_load).eager_loaded(children)
|
77
|
+
case klass.connection.adapter_name
|
78
|
+
when /Mysql/
|
79
|
+
scope = scope.order("FIELD(#{connection.quote_column_name(primary_key)}, #{ids.join(',')})")
|
80
|
+
when /Pos/
|
81
|
+
scope = scope.order(ids.map { |id| "ID=#{connection.quote(id)} DESC" }.join(','))
|
101
82
|
end
|
102
83
|
end
|
103
|
-
|
84
|
+
scope.find(ids)
|
104
85
|
end
|
105
86
|
end
|
106
87
|
end
|
data/lib/elastic_record.rb
CHANGED
@@ -11,7 +11,6 @@ module ElasticRecord
|
|
11
11
|
autoload :Lucene, 'elastic_record/lucene'
|
12
12
|
autoload :Model, 'elastic_record/model'
|
13
13
|
autoload :Relation, 'elastic_record/relation'
|
14
|
-
autoload :SearchesMany, 'elastic_record/searches_many'
|
15
14
|
autoload :Searching, 'elastic_record/searching'
|
16
15
|
|
17
16
|
class << self
|
@@ -8,6 +8,6 @@ class ElasticRecord::ConfigTest < MiniTest::Unit::TestCase
|
|
8
8
|
def test_models
|
9
9
|
ElasticRecord::Config.model_names = %w(Widget)
|
10
10
|
|
11
|
-
assert_equal [Warehouse, Widget
|
11
|
+
assert_equal [Warehouse, Widget], ElasticRecord::Config.models
|
12
12
|
end
|
13
13
|
end
|
@@ -2,7 +2,7 @@ require 'helper'
|
|
2
2
|
|
3
3
|
class ElasticRecord::ConnectionTest < MiniTest::Unit::TestCase
|
4
4
|
def test_servers
|
5
|
-
assert_equal ['foo'
|
5
|
+
assert_equal ['foo'], ElasticRecord::Connection.new('foo').servers
|
6
6
|
assert_equal ['foo', 'bar'], ElasticRecord::Connection.new(['foo', 'bar']).servers
|
7
7
|
end
|
8
8
|
|
@@ -43,7 +43,7 @@ class ElasticRecord::ConnectionTest < MiniTest::Unit::TestCase
|
|
43
43
|
|
44
44
|
ElasticRecord::Connection.new(ElasticRecord::Config.servers, retries: 0).tap do |connection|
|
45
45
|
FakeWeb.register_uri :get, %r[/error], responses
|
46
|
-
assert_raises(Errno::ECONNREFUSED) { connection.json_get("/error") }
|
46
|
+
assert_raises(Errno::ECONNREFUSED) { connection.json_get("/error") }
|
47
47
|
end
|
48
48
|
|
49
49
|
ElasticRecord::Connection.new(ElasticRecord::Config.servers, retries: 1).tap do |connection|
|
@@ -6,7 +6,7 @@ class ElasticRecord::Index::MappingTest < MiniTest::Unit::TestCase
|
|
6
6
|
index.get_mapping(index_name)
|
7
7
|
|
8
8
|
index.delete_mapping(index_name)
|
9
|
-
|
9
|
+
|
10
10
|
assert_raises ElasticRecord::ConnectionError do
|
11
11
|
index.get_mapping(index_name)
|
12
12
|
end
|
@@ -19,6 +19,16 @@ class ElasticRecord::Index::MappingTest < MiniTest::Unit::TestCase
|
|
19
19
|
refute_nil mapping[:properties]
|
20
20
|
end
|
21
21
|
|
22
|
+
def test_merge_mapping
|
23
|
+
index.mapping.clear
|
24
|
+
index.mapping[:properties] = {color: {type: 'string'}}
|
25
|
+
|
26
|
+
custom = {properties: {color: {type: 'integer'}}, other: 'stuff'}
|
27
|
+
index.mapping = custom
|
28
|
+
|
29
|
+
assert_equal custom, index.mapping
|
30
|
+
end
|
31
|
+
|
22
32
|
private
|
23
33
|
def index
|
24
34
|
@index ||= ElasticRecord::Index.new(Widget)
|
@@ -1,45 +1,82 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
3
|
require 'active_record'
|
4
|
-
require 'mysql2'
|
5
|
-
|
6
|
-
ActiveSupport.on_load :active_record do
|
7
|
-
ActiveRecord::Base.establish_connection(
|
8
|
-
adapter: 'mysql2',
|
9
|
-
host: "localhost",
|
10
|
-
database: "elastic_record_test",
|
11
|
-
username: "root"
|
12
|
-
)
|
13
4
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
ActiveRecord::Migration.create_table :projects do |t|
|
18
|
-
t.string :name, null: false
|
19
|
-
end
|
20
|
-
end
|
5
|
+
require 'mysql2'
|
6
|
+
require 'pg'
|
21
7
|
|
22
8
|
class Project < ActiveRecord::Base
|
23
9
|
include ElasticRecord::Model
|
24
|
-
include ElasticRecord::Callbacks
|
25
10
|
|
26
11
|
self.elastic_index.mapping[:properties].update(
|
27
12
|
name: { type: 'string', index: 'not_analyzed' }
|
28
13
|
)
|
29
14
|
end
|
30
15
|
|
31
|
-
|
16
|
+
module ElasticRecord
|
17
|
+
module ActiveRecordIntegration
|
18
|
+
def setup_project_database(config)
|
19
|
+
ActiveRecord::Tasks::DatabaseTasks.drop config
|
20
|
+
ActiveRecord::Tasks::DatabaseTasks.create config
|
21
|
+
ActiveRecord::Base.establish_connection config
|
22
|
+
|
23
|
+
quietly do
|
24
|
+
ActiveRecord::Migration.create_table :projects do |t|
|
25
|
+
t.string :name, null: false
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
Project.elastic_index.create_and_deploy if Project.elastic_index.all_names.empty?
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_ordering
|
33
|
+
poo_product = Project.create! name: "Poo"
|
34
|
+
bear_product = Project.create! name: "Bear"
|
35
|
+
Project.elastic_index.refresh
|
36
|
+
|
37
|
+
assert_equal [bear_product, poo_product], Project.elastic_relation.order(name: 'asc')
|
38
|
+
assert_equal [poo_product, bear_product], Project.elastic_relation.order(name: 'desc')
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_update_callback
|
42
|
+
project = Project.create! name: "Ideas"
|
43
|
+
Project.elastic_index.refresh
|
44
|
+
project.update! name: 'Terrible Stuff'
|
45
|
+
Project.elastic_index.refresh
|
46
|
+
|
47
|
+
assert_equal [project], Project.elastic_relation.filter(name: 'Terrible Stuff')
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
class ElasticRecord::Mysql2Test < MiniTest::Unit::TestCase
|
53
|
+
include ElasticRecord::ActiveRecordIntegration
|
54
|
+
|
32
55
|
def setup
|
33
56
|
super
|
34
|
-
|
57
|
+
|
58
|
+
setup_project_database(
|
59
|
+
'adapter' => 'mysql2',
|
60
|
+
'host' => "localhost",
|
61
|
+
'database' => 'elastic_record_test',
|
62
|
+
'username' => 'root'
|
63
|
+
)
|
35
64
|
end
|
65
|
+
end
|
66
|
+
|
67
|
+
class ElasticRecord::PostgresqlTest < MiniTest::Unit::TestCase
|
68
|
+
include ElasticRecord::ActiveRecordIntegration
|
36
69
|
|
37
|
-
def
|
38
|
-
|
39
|
-
bear_product = Project.create! name: "Bear"
|
40
|
-
Project.elastic_index.refresh
|
70
|
+
def setup
|
71
|
+
super
|
41
72
|
|
42
|
-
|
43
|
-
|
73
|
+
setup_project_database(
|
74
|
+
'adapter' => 'postgresql',
|
75
|
+
'encoding' => 'unicode',
|
76
|
+
'database' => 'content_system_development',
|
77
|
+
'pool' => 5,
|
78
|
+
'username' => 'postgres',
|
79
|
+
'password' => ''
|
80
|
+
)
|
44
81
|
end
|
45
82
|
end
|
@@ -25,53 +25,6 @@ class ElasticRecord::RelationTest < MiniTest::Unit::TestCase
|
|
25
25
|
# assert Widget.elastic_relation.search_results.is_a?(ElasticSearch::Api::Hits)
|
26
26
|
end
|
27
27
|
|
28
|
-
def test_eager_loading?
|
29
|
-
assert Widget.elastic_relation.eager_load(:options).eager_loading?
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_eager_loading_is_not_default
|
33
|
-
assert !Widget.elastic_relation.eager_loading?
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_eager_load_on_collection_proxy
|
37
|
-
|
38
|
-
warehouse = Warehouse.new
|
39
|
-
widget = Widget.new(warehouse_id: warehouse.id)
|
40
|
-
Widget.elastic_index.bulk_add [ widget ]
|
41
|
-
|
42
|
-
Option.elastic_index.bulk_add [
|
43
|
-
Option.new(id: 5, widget_id: widget.id),
|
44
|
-
Option.new(id: 10, widget_id: widget.id),
|
45
|
-
]
|
46
|
-
|
47
|
-
widgets = warehouse.widgets.eager_load(:options)
|
48
|
-
widgets = widgets.to_a
|
49
|
-
|
50
|
-
assert_no_queries do
|
51
|
-
assert_equal ["5", "10"].to_set, widgets.first.options.map(&:id).to_set
|
52
|
-
end
|
53
|
-
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_eager_load_on_relation
|
57
|
-
|
58
|
-
widget = Widget.new
|
59
|
-
Widget.elastic_index.bulk_add [ widget ]
|
60
|
-
|
61
|
-
Option.elastic_index.bulk_add [
|
62
|
-
Option.new(id: 5, widget_id: widget.id),
|
63
|
-
Option.new(id: 10, widget_id: widget.id),
|
64
|
-
]
|
65
|
-
|
66
|
-
widgets = Widget.elastic_relation.eager_load(:options)
|
67
|
-
widgets = widgets.to_a
|
68
|
-
|
69
|
-
assert_no_queries do
|
70
|
-
assert_equal ["5", "10"].to_set, widgets.first.options.map(&:id).to_set
|
71
|
-
end
|
72
|
-
|
73
|
-
end
|
74
|
-
|
75
28
|
def test_to_ids
|
76
29
|
create_widgets [Widget.new(id: 5, color: 'red'), Widget.new(id: 10, color: 'blue')]
|
77
30
|
|
data/test/helper.rb
CHANGED
@@ -4,14 +4,11 @@ Bundler.require
|
|
4
4
|
require 'minitest/autorun'
|
5
5
|
|
6
6
|
require 'support/connect'
|
7
|
-
require 'support/query_counter'
|
8
7
|
require 'support/models/test_model'
|
9
8
|
require 'support/models/warehouse'
|
10
9
|
require 'support/models/widget'
|
11
|
-
require 'support/models/option'
|
12
|
-
require 'pp'
|
13
10
|
|
14
|
-
ElasticRecord::Config.model_names = %w(Warehouse Widget
|
11
|
+
ElasticRecord::Config.model_names = %w(Warehouse Widget)
|
15
12
|
|
16
13
|
FakeWeb.allow_net_connect = %r[^https?://127.0.0.1]
|
17
14
|
|
@@ -19,9 +16,6 @@ module MiniTest
|
|
19
16
|
class Unit
|
20
17
|
class TestCase
|
21
18
|
def setup
|
22
|
-
Widget._test_cache.clear
|
23
|
-
Option._test_cache.clear
|
24
|
-
|
25
19
|
FakeWeb.clean_registry
|
26
20
|
|
27
21
|
ElasticRecord::Config.models.each do |model|
|
@@ -10,25 +10,11 @@ module TestModel
|
|
10
10
|
include ActiveModel::Validations
|
11
11
|
|
12
12
|
include ElasticRecord::Model
|
13
|
-
include ElasticRecord::Callbacks
|
14
|
-
|
15
13
|
end
|
16
14
|
|
17
15
|
module ClassMethods
|
18
|
-
|
19
|
-
def _test_cache
|
20
|
-
@_test_cache ||= []
|
21
|
-
end
|
22
|
-
|
23
|
-
def load_elastic_record_hits(*args)
|
24
|
-
find(*args)
|
25
|
-
end
|
26
|
-
|
27
16
|
def find(ids)
|
28
|
-
ids.map
|
29
|
-
record = _test_cache.detect { |m| m.id.to_s == id.to_s }
|
30
|
-
record.nil? ? new(id: id, color: 'red') : record.clone
|
31
|
-
end
|
17
|
+
ids.map { |id| new(id: id) }
|
32
18
|
end
|
33
19
|
|
34
20
|
def primary_key
|
@@ -67,10 +53,6 @@ module TestModel
|
|
67
53
|
|
68
54
|
def initialize(attrs = {})
|
69
55
|
self.attributes = attrs
|
70
|
-
cloned = self.clone
|
71
|
-
cloned.id = cloned.id.to_s
|
72
|
-
self.class._test_cache.delete_if { |record| record.id == cloned.id }
|
73
|
-
self.class._test_cache << cloned
|
74
56
|
end
|
75
57
|
|
76
58
|
def attributes=(attrs)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elastic_record
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Infogroup
|
@@ -9,34 +9,34 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-02-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: arelastic
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: 0.4.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 0.4.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: activemodel
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '0'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
42
|
description: Find your records with elastic search
|
@@ -46,8 +46,8 @@ extensions: []
|
|
46
46
|
extra_rdoc_files:
|
47
47
|
- README.rdoc
|
48
48
|
files:
|
49
|
-
- .gitignore
|
50
|
-
- .travis.yml
|
49
|
+
- ".gitignore"
|
50
|
+
- ".travis.yml"
|
51
51
|
- Gemfile
|
52
52
|
- LICENSE
|
53
53
|
- README.rdoc
|
@@ -81,12 +81,6 @@ files:
|
|
81
81
|
- lib/elastic_record/relation/none.rb
|
82
82
|
- lib/elastic_record/relation/search_methods.rb
|
83
83
|
- lib/elastic_record/relation/value_methods.rb
|
84
|
-
- lib/elastic_record/searches_many.rb
|
85
|
-
- lib/elastic_record/searches_many/association.rb
|
86
|
-
- lib/elastic_record/searches_many/autosave.rb
|
87
|
-
- lib/elastic_record/searches_many/builder.rb
|
88
|
-
- lib/elastic_record/searches_many/collection_proxy.rb
|
89
|
-
- lib/elastic_record/searches_many/reflection.rb
|
90
84
|
- lib/elastic_record/searching.rb
|
91
85
|
- lib/elastic_record/tasks/index.rake
|
92
86
|
- test/elastic_record/callbacks_test.rb
|
@@ -113,19 +107,12 @@ files:
|
|
113
107
|
- test/elastic_record/relation/none_test.rb
|
114
108
|
- test/elastic_record/relation/search_methods_test.rb
|
115
109
|
- test/elastic_record/relation_test.rb
|
116
|
-
- test/elastic_record/searches_many/association_test.rb
|
117
|
-
- test/elastic_record/searches_many/autosave_test.rb
|
118
|
-
- test/elastic_record/searches_many/collection_proxy_test.rb
|
119
|
-
- test/elastic_record/searches_many/reflection_test.rb
|
120
|
-
- test/elastic_record/searches_many_test.rb
|
121
110
|
- test/elastic_record/searching_test.rb
|
122
111
|
- test/helper.rb
|
123
112
|
- test/support/connect.rb
|
124
|
-
- test/support/models/option.rb
|
125
113
|
- test/support/models/test_model.rb
|
126
114
|
- test/support/models/warehouse.rb
|
127
115
|
- test/support/models/widget.rb
|
128
|
-
- test/support/query_counter.rb
|
129
116
|
homepage: http://github.com/data-axle/elastic_record
|
130
117
|
licenses:
|
131
118
|
- MIT
|
@@ -136,17 +123,17 @@ require_paths:
|
|
136
123
|
- lib
|
137
124
|
required_ruby_version: !ruby/object:Gem::Requirement
|
138
125
|
requirements:
|
139
|
-
- -
|
126
|
+
- - ">="
|
140
127
|
- !ruby/object:Gem::Version
|
141
128
|
version: 1.9.3
|
142
129
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
143
130
|
requirements:
|
144
|
-
- -
|
131
|
+
- - ">="
|
145
132
|
- !ruby/object:Gem::Version
|
146
133
|
version: 1.8.11
|
147
134
|
requirements: []
|
148
135
|
rubyforge_project:
|
149
|
-
rubygems_version: 2.
|
136
|
+
rubygems_version: 2.2.1
|
150
137
|
signing_key:
|
151
138
|
specification_version: 4
|
152
139
|
summary: Use Elastic Search with your objects
|