mebla 1.0.2 → 1.0.3
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.
- data/Gemfile.lock +1 -1
- data/VERSION +1 -1
- data/lib/mebla/mongoid/mebla.rb +4 -3
- data/mebla.gemspec +25 -1
- data/spec/fixtures/models.rb +9 -0
- data/spec/mebla/indexing_spec.rb +16 -0
- data/spec/mebla/searching_spec.rb +19 -0
- data/spec/mebla/synchronization_spec.rb +9 -0
- metadata +114 -26
data/Gemfile.lock
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.3
|
data/lib/mebla/mongoid/mebla.rb
CHANGED
@@ -10,8 +10,7 @@ module Mongoid
|
|
10
10
|
included do
|
11
11
|
# Used to properly represent data types
|
12
12
|
unless defined?(SLINGSHOT_TYPE_MAPPING)
|
13
|
-
SLINGSHOT_TYPE_MAPPING = {
|
14
|
-
'Array' => 'array',
|
13
|
+
SLINGSHOT_TYPE_MAPPING = {
|
15
14
|
'Date' => 'date',
|
16
15
|
'DateTime' => 'date',
|
17
16
|
'Time' => 'date',
|
@@ -106,7 +105,9 @@ module Mongoid
|
|
106
105
|
attrs_mappings = {}
|
107
106
|
|
108
107
|
attrs.each do |attribute|
|
109
|
-
|
108
|
+
unless (field_type = self.fields[attribute.to_s].type.to_s) == "Array" # arrays don't need mappings
|
109
|
+
attrs_mappings[attribute] = {:type => SLINGSHOT_TYPE_MAPPING[field_type] || "string"}
|
110
|
+
end
|
110
111
|
end
|
111
112
|
|
112
113
|
# Generate advanced indeces' mappings
|
data/mebla.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{mebla}
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Omar Mekky"]
|
@@ -162,6 +162,14 @@ Gem::Specification.new do |s|
|
|
162
162
|
s.add_development_dependency(%q<mongoid-rspec>, ["= 1.4.1"])
|
163
163
|
s.add_development_dependency(%q<database_cleaner>, ["= 0.6.4"])
|
164
164
|
s.add_development_dependency(%q<bluecloth>, ["~> 2.1.0"])
|
165
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
166
|
+
s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
|
167
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
168
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
169
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
170
|
+
s.add_development_dependency(%q<mongoid-rspec>, ["= 1.4.1"])
|
171
|
+
s.add_development_dependency(%q<database_cleaner>, ["= 0.6.4"])
|
172
|
+
s.add_development_dependency(%q<bluecloth>, ["~> 2.1.0"])
|
165
173
|
s.add_runtime_dependency(%q<slingshot-rb>, ["~> 0.0.6"])
|
166
174
|
s.add_runtime_dependency(%q<mongoid>, ["= 2.0.0.rc.7"])
|
167
175
|
s.add_runtime_dependency(%q<bson>, ["= 1.2.0"])
|
@@ -257,6 +265,14 @@ Gem::Specification.new do |s|
|
|
257
265
|
s.add_dependency(%q<mongoid-rspec>, ["= 1.4.1"])
|
258
266
|
s.add_dependency(%q<database_cleaner>, ["= 0.6.4"])
|
259
267
|
s.add_dependency(%q<bluecloth>, ["~> 2.1.0"])
|
268
|
+
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
269
|
+
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
270
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
271
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
272
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
273
|
+
s.add_dependency(%q<mongoid-rspec>, ["= 1.4.1"])
|
274
|
+
s.add_dependency(%q<database_cleaner>, ["= 0.6.4"])
|
275
|
+
s.add_dependency(%q<bluecloth>, ["~> 2.1.0"])
|
260
276
|
s.add_dependency(%q<slingshot-rb>, ["~> 0.0.6"])
|
261
277
|
s.add_dependency(%q<mongoid>, ["= 2.0.0.rc.7"])
|
262
278
|
s.add_dependency(%q<bson>, ["= 1.2.0"])
|
@@ -353,6 +369,14 @@ Gem::Specification.new do |s|
|
|
353
369
|
s.add_dependency(%q<mongoid-rspec>, ["= 1.4.1"])
|
354
370
|
s.add_dependency(%q<database_cleaner>, ["= 0.6.4"])
|
355
371
|
s.add_dependency(%q<bluecloth>, ["~> 2.1.0"])
|
372
|
+
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
373
|
+
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
374
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
375
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
376
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
377
|
+
s.add_dependency(%q<mongoid-rspec>, ["= 1.4.1"])
|
378
|
+
s.add_dependency(%q<database_cleaner>, ["= 0.6.4"])
|
379
|
+
s.add_dependency(%q<bluecloth>, ["~> 2.1.0"])
|
356
380
|
s.add_dependency(%q<slingshot-rb>, ["~> 0.0.6"])
|
357
381
|
s.add_dependency(%q<mongoid>, ["= 2.0.0.rc.7"])
|
358
382
|
s.add_dependency(%q<bson>, ["= 1.2.0"])
|
data/spec/fixtures/models.rb
CHANGED
@@ -43,6 +43,15 @@ class MongoidOmega < MongoidDelta
|
|
43
43
|
search_in :name
|
44
44
|
end
|
45
45
|
|
46
|
+
class MongoidZeta
|
47
|
+
include Mongoid::Document
|
48
|
+
include Mongoid::Mebla
|
49
|
+
field :name
|
50
|
+
field :an_array, :type => Array
|
51
|
+
|
52
|
+
search_in :name, :an_array
|
53
|
+
end
|
54
|
+
|
46
55
|
class MongoidGamma
|
47
56
|
include Mongoid::Document
|
48
57
|
include Mongoid::Mebla
|
data/spec/mebla/indexing_spec.rb
CHANGED
@@ -30,6 +30,22 @@ describe "Mebla" do
|
|
30
30
|
maps["cost"]["type"].should == "float"
|
31
31
|
end
|
32
32
|
|
33
|
+
describe "array fields" do
|
34
|
+
it "should index arrays" do
|
35
|
+
Mebla.context.drop_index
|
36
|
+
|
37
|
+
zeta = nil
|
38
|
+
|
39
|
+
MongoidZeta.without_indexing do
|
40
|
+
zeta = MongoidZeta.create! :name => "Document with an array", :an_array => [:item, :item2]
|
41
|
+
end
|
42
|
+
|
43
|
+
Mebla.context.index_data
|
44
|
+
|
45
|
+
lambda {Mebla.context.slingshot_index.retrieve(:mongoid_zeta, zeta.id.to_s)}.should_not raise_error
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
33
49
|
describe "for sub-classed documents" do
|
34
50
|
it "should index existing records" do
|
35
51
|
Mebla.context.drop_index
|
@@ -19,6 +19,25 @@ describe "Mebla" do
|
|
19
19
|
results.first.class.should == MongoidAlpha
|
20
20
|
end
|
21
21
|
|
22
|
+
describe "documents with arrays" do
|
23
|
+
before(:each) do
|
24
|
+
Mebla.context.rebuild_index
|
25
|
+
MongoidZeta.create! :name => "Document with array", :an_array => [:item, :item2]
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should return arrays correctly" do
|
29
|
+
results = MongoidZeta.search "Document with array"
|
30
|
+
|
31
|
+
results.first.an_array.class.should == Array
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should search within arrays" do
|
35
|
+
results = MongoidZeta.search "item2"
|
36
|
+
|
37
|
+
results.count.should == 1
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
22
41
|
describe "multiple types" do
|
23
42
|
before(:each) do
|
24
43
|
MongoidBeta.create! :name => "Testing index"
|
@@ -47,6 +47,15 @@ describe "Mebla" do
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
+
describe "array fields documents" do
|
51
|
+
it "should index array fields and retrieve them correctly" do
|
52
|
+
Mebla.context.rebuild_index
|
53
|
+
zdocument = MongoidZeta.create :name => "Document with array", :an_array => [:index, :index2, :index2]
|
54
|
+
|
55
|
+
lambda {Mebla.context.slingshot_index.retrieve(:mongoid_zeta, zdocument.id.to_s)}.should_not raise_error
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
50
59
|
describe "embedded documents" do
|
51
60
|
before(:each) do
|
52
61
|
Mebla.context.rebuild_index
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: mebla
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.0.
|
5
|
+
version: 1.0.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Omar Mekky
|
@@ -916,8 +916,96 @@ dependencies:
|
|
916
916
|
prerelease: false
|
917
917
|
version_requirements: *id082
|
918
918
|
- !ruby/object:Gem::Dependency
|
919
|
-
name:
|
919
|
+
name: rspec
|
920
920
|
requirement: &id083 !ruby/object:Gem::Requirement
|
921
|
+
none: false
|
922
|
+
requirements:
|
923
|
+
- - ~>
|
924
|
+
- !ruby/object:Gem::Version
|
925
|
+
version: 2.3.0
|
926
|
+
type: :development
|
927
|
+
prerelease: false
|
928
|
+
version_requirements: *id083
|
929
|
+
- !ruby/object:Gem::Dependency
|
930
|
+
name: yard
|
931
|
+
requirement: &id084 !ruby/object:Gem::Requirement
|
932
|
+
none: false
|
933
|
+
requirements:
|
934
|
+
- - ~>
|
935
|
+
- !ruby/object:Gem::Version
|
936
|
+
version: 0.6.0
|
937
|
+
type: :development
|
938
|
+
prerelease: false
|
939
|
+
version_requirements: *id084
|
940
|
+
- !ruby/object:Gem::Dependency
|
941
|
+
name: bundler
|
942
|
+
requirement: &id085 !ruby/object:Gem::Requirement
|
943
|
+
none: false
|
944
|
+
requirements:
|
945
|
+
- - ~>
|
946
|
+
- !ruby/object:Gem::Version
|
947
|
+
version: 1.0.0
|
948
|
+
type: :development
|
949
|
+
prerelease: false
|
950
|
+
version_requirements: *id085
|
951
|
+
- !ruby/object:Gem::Dependency
|
952
|
+
name: jeweler
|
953
|
+
requirement: &id086 !ruby/object:Gem::Requirement
|
954
|
+
none: false
|
955
|
+
requirements:
|
956
|
+
- - ~>
|
957
|
+
- !ruby/object:Gem::Version
|
958
|
+
version: 1.5.2
|
959
|
+
type: :development
|
960
|
+
prerelease: false
|
961
|
+
version_requirements: *id086
|
962
|
+
- !ruby/object:Gem::Dependency
|
963
|
+
name: rcov
|
964
|
+
requirement: &id087 !ruby/object:Gem::Requirement
|
965
|
+
none: false
|
966
|
+
requirements:
|
967
|
+
- - ">="
|
968
|
+
- !ruby/object:Gem::Version
|
969
|
+
version: "0"
|
970
|
+
type: :development
|
971
|
+
prerelease: false
|
972
|
+
version_requirements: *id087
|
973
|
+
- !ruby/object:Gem::Dependency
|
974
|
+
name: mongoid-rspec
|
975
|
+
requirement: &id088 !ruby/object:Gem::Requirement
|
976
|
+
none: false
|
977
|
+
requirements:
|
978
|
+
- - "="
|
979
|
+
- !ruby/object:Gem::Version
|
980
|
+
version: 1.4.1
|
981
|
+
type: :development
|
982
|
+
prerelease: false
|
983
|
+
version_requirements: *id088
|
984
|
+
- !ruby/object:Gem::Dependency
|
985
|
+
name: database_cleaner
|
986
|
+
requirement: &id089 !ruby/object:Gem::Requirement
|
987
|
+
none: false
|
988
|
+
requirements:
|
989
|
+
- - "="
|
990
|
+
- !ruby/object:Gem::Version
|
991
|
+
version: 0.6.4
|
992
|
+
type: :development
|
993
|
+
prerelease: false
|
994
|
+
version_requirements: *id089
|
995
|
+
- !ruby/object:Gem::Dependency
|
996
|
+
name: bluecloth
|
997
|
+
requirement: &id090 !ruby/object:Gem::Requirement
|
998
|
+
none: false
|
999
|
+
requirements:
|
1000
|
+
- - ~>
|
1001
|
+
- !ruby/object:Gem::Version
|
1002
|
+
version: 2.1.0
|
1003
|
+
type: :development
|
1004
|
+
prerelease: false
|
1005
|
+
version_requirements: *id090
|
1006
|
+
- !ruby/object:Gem::Dependency
|
1007
|
+
name: slingshot-rb
|
1008
|
+
requirement: &id091 !ruby/object:Gem::Requirement
|
921
1009
|
none: false
|
922
1010
|
requirements:
|
923
1011
|
- - ~>
|
@@ -925,10 +1013,10 @@ dependencies:
|
|
925
1013
|
version: 0.0.6
|
926
1014
|
type: :runtime
|
927
1015
|
prerelease: false
|
928
|
-
version_requirements: *
|
1016
|
+
version_requirements: *id091
|
929
1017
|
- !ruby/object:Gem::Dependency
|
930
1018
|
name: mongoid
|
931
|
-
requirement: &
|
1019
|
+
requirement: &id092 !ruby/object:Gem::Requirement
|
932
1020
|
none: false
|
933
1021
|
requirements:
|
934
1022
|
- - "="
|
@@ -936,10 +1024,10 @@ dependencies:
|
|
936
1024
|
version: 2.0.0.rc.7
|
937
1025
|
type: :runtime
|
938
1026
|
prerelease: false
|
939
|
-
version_requirements: *
|
1027
|
+
version_requirements: *id092
|
940
1028
|
- !ruby/object:Gem::Dependency
|
941
1029
|
name: bson
|
942
|
-
requirement: &
|
1030
|
+
requirement: &id093 !ruby/object:Gem::Requirement
|
943
1031
|
none: false
|
944
1032
|
requirements:
|
945
1033
|
- - "="
|
@@ -947,10 +1035,10 @@ dependencies:
|
|
947
1035
|
version: 1.2.0
|
948
1036
|
type: :runtime
|
949
1037
|
prerelease: false
|
950
|
-
version_requirements: *
|
1038
|
+
version_requirements: *id093
|
951
1039
|
- !ruby/object:Gem::Dependency
|
952
1040
|
name: bson_ext
|
953
|
-
requirement: &
|
1041
|
+
requirement: &id094 !ruby/object:Gem::Requirement
|
954
1042
|
none: false
|
955
1043
|
requirements:
|
956
1044
|
- - "="
|
@@ -958,10 +1046,10 @@ dependencies:
|
|
958
1046
|
version: 1.2.0
|
959
1047
|
type: :runtime
|
960
1048
|
prerelease: false
|
961
|
-
version_requirements: *
|
1049
|
+
version_requirements: *id094
|
962
1050
|
- !ruby/object:Gem::Dependency
|
963
1051
|
name: rspec
|
964
|
-
requirement: &
|
1052
|
+
requirement: &id095 !ruby/object:Gem::Requirement
|
965
1053
|
none: false
|
966
1054
|
requirements:
|
967
1055
|
- - ~>
|
@@ -969,10 +1057,10 @@ dependencies:
|
|
969
1057
|
version: 2.3.0
|
970
1058
|
type: :development
|
971
1059
|
prerelease: false
|
972
|
-
version_requirements: *
|
1060
|
+
version_requirements: *id095
|
973
1061
|
- !ruby/object:Gem::Dependency
|
974
1062
|
name: yard
|
975
|
-
requirement: &
|
1063
|
+
requirement: &id096 !ruby/object:Gem::Requirement
|
976
1064
|
none: false
|
977
1065
|
requirements:
|
978
1066
|
- - ~>
|
@@ -980,10 +1068,10 @@ dependencies:
|
|
980
1068
|
version: 0.6.0
|
981
1069
|
type: :development
|
982
1070
|
prerelease: false
|
983
|
-
version_requirements: *
|
1071
|
+
version_requirements: *id096
|
984
1072
|
- !ruby/object:Gem::Dependency
|
985
1073
|
name: bundler
|
986
|
-
requirement: &
|
1074
|
+
requirement: &id097 !ruby/object:Gem::Requirement
|
987
1075
|
none: false
|
988
1076
|
requirements:
|
989
1077
|
- - ~>
|
@@ -991,10 +1079,10 @@ dependencies:
|
|
991
1079
|
version: 1.0.0
|
992
1080
|
type: :development
|
993
1081
|
prerelease: false
|
994
|
-
version_requirements: *
|
1082
|
+
version_requirements: *id097
|
995
1083
|
- !ruby/object:Gem::Dependency
|
996
1084
|
name: jeweler
|
997
|
-
requirement: &
|
1085
|
+
requirement: &id098 !ruby/object:Gem::Requirement
|
998
1086
|
none: false
|
999
1087
|
requirements:
|
1000
1088
|
- - ~>
|
@@ -1002,10 +1090,10 @@ dependencies:
|
|
1002
1090
|
version: 1.5.2
|
1003
1091
|
type: :development
|
1004
1092
|
prerelease: false
|
1005
|
-
version_requirements: *
|
1093
|
+
version_requirements: *id098
|
1006
1094
|
- !ruby/object:Gem::Dependency
|
1007
1095
|
name: rcov
|
1008
|
-
requirement: &
|
1096
|
+
requirement: &id099 !ruby/object:Gem::Requirement
|
1009
1097
|
none: false
|
1010
1098
|
requirements:
|
1011
1099
|
- - ">="
|
@@ -1013,10 +1101,10 @@ dependencies:
|
|
1013
1101
|
version: "0"
|
1014
1102
|
type: :development
|
1015
1103
|
prerelease: false
|
1016
|
-
version_requirements: *
|
1104
|
+
version_requirements: *id099
|
1017
1105
|
- !ruby/object:Gem::Dependency
|
1018
1106
|
name: mongoid-rspec
|
1019
|
-
requirement: &
|
1107
|
+
requirement: &id100 !ruby/object:Gem::Requirement
|
1020
1108
|
none: false
|
1021
1109
|
requirements:
|
1022
1110
|
- - "="
|
@@ -1024,10 +1112,10 @@ dependencies:
|
|
1024
1112
|
version: 1.4.1
|
1025
1113
|
type: :development
|
1026
1114
|
prerelease: false
|
1027
|
-
version_requirements: *
|
1115
|
+
version_requirements: *id100
|
1028
1116
|
- !ruby/object:Gem::Dependency
|
1029
1117
|
name: database_cleaner
|
1030
|
-
requirement: &
|
1118
|
+
requirement: &id101 !ruby/object:Gem::Requirement
|
1031
1119
|
none: false
|
1032
1120
|
requirements:
|
1033
1121
|
- - "="
|
@@ -1035,10 +1123,10 @@ dependencies:
|
|
1035
1123
|
version: 0.6.4
|
1036
1124
|
type: :development
|
1037
1125
|
prerelease: false
|
1038
|
-
version_requirements: *
|
1126
|
+
version_requirements: *id101
|
1039
1127
|
- !ruby/object:Gem::Dependency
|
1040
1128
|
name: bluecloth
|
1041
|
-
requirement: &
|
1129
|
+
requirement: &id102 !ruby/object:Gem::Requirement
|
1042
1130
|
none: false
|
1043
1131
|
requirements:
|
1044
1132
|
- - ~>
|
@@ -1046,7 +1134,7 @@ dependencies:
|
|
1046
1134
|
version: 2.1.0
|
1047
1135
|
type: :development
|
1048
1136
|
prerelease: false
|
1049
|
-
version_requirements: *
|
1137
|
+
version_requirements: *id102
|
1050
1138
|
description: "\n An elasticsearch wrapper for mongoid odm based on slingshot. Makes integration between ElasticSearch full-text \n search engine and Mongoid documents seemless and simple.\n "
|
1051
1139
|
email: omar.mekky@mashsolvents.com
|
1052
1140
|
executables: []
|
@@ -1109,7 +1197,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1109
1197
|
requirements:
|
1110
1198
|
- - ">="
|
1111
1199
|
- !ruby/object:Gem::Version
|
1112
|
-
hash: -
|
1200
|
+
hash: -929217804110582376
|
1113
1201
|
segments:
|
1114
1202
|
- 0
|
1115
1203
|
version: "0"
|