mebla 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
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"