elastic_record 1.1.8 → 1.2.1
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.
- 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
|