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 CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mebla (1.0.1)
4
+ mebla (1.0.2)
5
5
  bson (= 1.2.0)
6
6
  bson_ext (= 1.2.0)
7
7
  mebla
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.2
1
+ 1.0.3
@@ -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
- attrs_mappings[attribute] = {:type => SLINGSHOT_TYPE_MAPPING[self.fields[attribute.to_s].type.to_s] || "string"}
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.2"
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"])
@@ -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
@@ -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.2
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: slingshot-rb
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: *id083
1016
+ version_requirements: *id091
929
1017
  - !ruby/object:Gem::Dependency
930
1018
  name: mongoid
931
- requirement: &id084 !ruby/object:Gem::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: *id084
1027
+ version_requirements: *id092
940
1028
  - !ruby/object:Gem::Dependency
941
1029
  name: bson
942
- requirement: &id085 !ruby/object:Gem::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: *id085
1038
+ version_requirements: *id093
951
1039
  - !ruby/object:Gem::Dependency
952
1040
  name: bson_ext
953
- requirement: &id086 !ruby/object:Gem::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: *id086
1049
+ version_requirements: *id094
962
1050
  - !ruby/object:Gem::Dependency
963
1051
  name: rspec
964
- requirement: &id087 !ruby/object:Gem::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: *id087
1060
+ version_requirements: *id095
973
1061
  - !ruby/object:Gem::Dependency
974
1062
  name: yard
975
- requirement: &id088 !ruby/object:Gem::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: *id088
1071
+ version_requirements: *id096
984
1072
  - !ruby/object:Gem::Dependency
985
1073
  name: bundler
986
- requirement: &id089 !ruby/object:Gem::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: *id089
1082
+ version_requirements: *id097
995
1083
  - !ruby/object:Gem::Dependency
996
1084
  name: jeweler
997
- requirement: &id090 !ruby/object:Gem::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: *id090
1093
+ version_requirements: *id098
1006
1094
  - !ruby/object:Gem::Dependency
1007
1095
  name: rcov
1008
- requirement: &id091 !ruby/object:Gem::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: *id091
1104
+ version_requirements: *id099
1017
1105
  - !ruby/object:Gem::Dependency
1018
1106
  name: mongoid-rspec
1019
- requirement: &id092 !ruby/object:Gem::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: *id092
1115
+ version_requirements: *id100
1028
1116
  - !ruby/object:Gem::Dependency
1029
1117
  name: database_cleaner
1030
- requirement: &id093 !ruby/object:Gem::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: *id093
1126
+ version_requirements: *id101
1039
1127
  - !ruby/object:Gem::Dependency
1040
1128
  name: bluecloth
1041
- requirement: &id094 !ruby/object:Gem::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: *id094
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: -1595562442589662284
1200
+ hash: -929217804110582376
1113
1201
  segments:
1114
1202
  - 0
1115
1203
  version: "0"