supernova 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.5
1
+ 0.3.6
@@ -90,11 +90,12 @@ class Supernova::SolrCriteria < Supernova::Criteria
90
90
  return hash if !hash["type"].respond_to?(:constantize)
91
91
  doc = hash["type"].constantize.new
92
92
  doc.instance_variable_set("@solr_doc", hash)
93
- hash.each do |key, value|
94
- if key == "id"
95
- doc.id = value.to_s.split("/").last if doc.respond_to?(:id=)
96
- else
97
- set_first_responding_attribute(doc, key, value)
93
+ atts = convert_doc_attributes(hash)
94
+ if doc.instance_variables.include?("@attributes")
95
+ doc.instance_variable_set("@attributes", atts.except("type"))
96
+ else
97
+ atts.each do |key, value|
98
+ doc.send(:"#{key}=", value) if doc.respond_to?(:"#{key}=")
98
99
  end
99
100
  end
100
101
  doc.instance_variable_set("@readonly", true)
@@ -102,6 +103,17 @@ class Supernova::SolrCriteria < Supernova::Criteria
102
103
  doc
103
104
  end
104
105
 
106
+ def convert_doc_attributes(hash)
107
+ hash.inject({}) do |ret, (key, value)|
108
+ if key == "id"
109
+ ret["id"] = value.to_s.split("/").last
110
+ else
111
+ ret[reverse_lookup_solr_field(key).to_s] = value
112
+ end
113
+ ret
114
+ end
115
+ end
116
+
105
117
  def set_first_responding_attribute(doc, solr_key, value)
106
118
  [reverse_lookup_solr_field(solr_key), solr_key].each do |key|
107
119
  meth = :"#{key}="
@@ -48,7 +48,8 @@ class Supernova::SolrIndexer
48
48
  :float => :f,
49
49
  :date => :dt,
50
50
  :boolean => :b,
51
- :location => :p
51
+ :location => :p,
52
+ :double => :d
52
53
  }
53
54
 
54
55
  def initialize(options = {})
@@ -268,6 +268,12 @@ describe Supernova::SolrCriteria do
268
268
  end
269
269
  end
270
270
 
271
+ it "updates the attributes hash when defined" do
272
+ atts = { "type" => "Offer", "some_other" => "Test", "id" => "offers/1", "enabled" => false, "popularity" => 10 }
273
+ doc = criteria.build_doc(atts)
274
+ doc.instance_variable_get("@attributes").should == { "popularity" => 10, "enabled" => false, "id" => "1", "some_other" => "Test"}
275
+ end
276
+
271
277
  it "returns a Hash when type does not response to " do
272
278
  type = double("type")
273
279
  type.should_receive(:respond_to?).with(:constantize).and_return false
@@ -97,6 +97,7 @@ describe Supernova::SolrIndexer do
97
97
  [:lat, :float] => "lat AS lat_f",
98
98
  [:text, :boolean] => "text AS text_b",
99
99
  [:loc, :location] => "loc AS loc_p",
100
+ [:big_int, :double] => "big_int AS big_int_d",
100
101
  [:deleted_at, :date] => %(IF(deleted_at IS NULL, NULL, CONCAT(REPLACE(deleted_at, " ", "T"), "Z")) AS deleted_at_dt),
101
102
  }.each do |(field, type), name|
102
103
  it "maps #{field} with #{type} to #{name}" do
@@ -5,17 +5,16 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{supernova}
8
- s.version = "0.3.5"
8
+ s.version = "0.3.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Tobias Schwab"]
12
- s.date = %q{2011-06-12}
12
+ s.date = %q{2011-06-13}
13
13
  s.description = %q{Unified search scopes}
14
14
  s.email = %q{tobias.schwab@dynport.de}
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
17
- "README.rdoc",
18
- "TODO"
17
+ "README.rdoc"
19
18
  ]
20
19
  s.files = [
21
20
  ".autotest",
@@ -94,7 +93,7 @@ Gem::Specification.new do |s|
94
93
  s.homepage = %q{http://github.com/dynport/supernova}
95
94
  s.licenses = ["MIT"]
96
95
  s.require_paths = ["lib"]
97
- s.rubygems_version = %q{1.6.2}
96
+ s.rubygems_version = %q{1.7.2}
98
97
  s.summary = %q{Unified search scopes}
99
98
 
100
99
  if s.respond_to? :specification_version then
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: supernova
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 5
10
- version: 0.3.5
9
+ - 6
10
+ version: 0.3.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tobias Schwab
@@ -15,11 +15,9 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-06-12 00:00:00 +02:00
19
- default_executable:
18
+ date: 2011-06-13 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
- type: :runtime
23
21
  requirement: &id001 !ruby/object:Gem::Requirement
24
22
  none: false
25
23
  requirements:
@@ -31,11 +29,11 @@ dependencies:
31
29
  - 0
32
30
  - 3
33
31
  version: 2.0.3
34
- name: thinking-sphinx
35
32
  version_requirements: *id001
33
+ name: thinking-sphinx
36
34
  prerelease: false
37
- - !ruby/object:Gem::Dependency
38
35
  type: :runtime
36
+ - !ruby/object:Gem::Dependency
39
37
  requirement: &id002 !ruby/object:Gem::Requirement
40
38
  none: false
41
39
  requirements:
@@ -45,11 +43,11 @@ dependencies:
45
43
  segments:
46
44
  - 0
47
45
  version: "0"
48
- name: rsolr
49
46
  version_requirements: *id002
47
+ name: rsolr
50
48
  prerelease: false
51
- - !ruby/object:Gem::Dependency
52
49
  type: :runtime
50
+ - !ruby/object:Gem::Dependency
53
51
  requirement: &id003 !ruby/object:Gem::Requirement
54
52
  none: false
55
53
  requirements:
@@ -59,11 +57,11 @@ dependencies:
59
57
  segments:
60
58
  - 0
61
59
  version: "0"
62
- name: will_paginate
63
60
  version_requirements: *id003
61
+ name: will_paginate
64
62
  prerelease: false
65
- - !ruby/object:Gem::Dependency
66
63
  type: :runtime
64
+ - !ruby/object:Gem::Dependency
67
65
  requirement: &id004 !ruby/object:Gem::Requirement
68
66
  none: false
69
67
  requirements:
@@ -73,11 +71,11 @@ dependencies:
73
71
  segments:
74
72
  - 0
75
73
  version: "0"
76
- name: json
77
74
  version_requirements: *id004
75
+ name: json
78
76
  prerelease: false
77
+ type: :runtime
79
78
  - !ruby/object:Gem::Dependency
80
- type: :development
81
79
  requirement: &id005 !ruby/object:Gem::Requirement
82
80
  none: false
83
81
  requirements:
@@ -87,11 +85,11 @@ dependencies:
87
85
  segments:
88
86
  - 0
89
87
  version: "0"
90
- name: ruby-debug
91
88
  version_requirements: *id005
89
+ name: ruby-debug
92
90
  prerelease: false
93
- - !ruby/object:Gem::Dependency
94
91
  type: :development
92
+ - !ruby/object:Gem::Dependency
95
93
  requirement: &id006 !ruby/object:Gem::Requirement
96
94
  none: false
97
95
  requirements:
@@ -103,11 +101,11 @@ dependencies:
103
101
  - 2
104
102
  - 7
105
103
  version: 0.2.7
106
- name: mysql2
107
104
  version_requirements: *id006
105
+ name: mysql2
108
106
  prerelease: false
109
- - !ruby/object:Gem::Dependency
110
107
  type: :development
108
+ - !ruby/object:Gem::Dependency
111
109
  requirement: &id007 !ruby/object:Gem::Requirement
112
110
  none: false
113
111
  requirements:
@@ -117,11 +115,11 @@ dependencies:
117
115
  segments:
118
116
  - 0
119
117
  version: "0"
120
- name: geokit
121
118
  version_requirements: *id007
119
+ name: geokit
122
120
  prerelease: false
123
- - !ruby/object:Gem::Dependency
124
121
  type: :development
122
+ - !ruby/object:Gem::Dependency
125
123
  requirement: &id008 !ruby/object:Gem::Requirement
126
124
  none: false
127
125
  requirements:
@@ -131,11 +129,11 @@ dependencies:
131
129
  segments:
132
130
  - 0
133
131
  version: "0"
134
- name: autotest
135
132
  version_requirements: *id008
133
+ name: autotest
136
134
  prerelease: false
137
- - !ruby/object:Gem::Dependency
138
135
  type: :development
136
+ - !ruby/object:Gem::Dependency
139
137
  requirement: &id009 !ruby/object:Gem::Requirement
140
138
  none: false
141
139
  requirements:
@@ -145,11 +143,11 @@ dependencies:
145
143
  segments:
146
144
  - 0
147
145
  version: "0"
148
- name: autotest-growl
149
146
  version_requirements: *id009
147
+ name: autotest-growl
150
148
  prerelease: false
151
- - !ruby/object:Gem::Dependency
152
149
  type: :development
150
+ - !ruby/object:Gem::Dependency
153
151
  requirement: &id010 !ruby/object:Gem::Requirement
154
152
  none: false
155
153
  requirements:
@@ -161,11 +159,11 @@ dependencies:
161
159
  - 3
162
160
  - 0
163
161
  version: 2.3.0
164
- name: rspec
165
162
  version_requirements: *id010
163
+ name: rspec
166
164
  prerelease: false
167
- - !ruby/object:Gem::Dependency
168
165
  type: :development
166
+ - !ruby/object:Gem::Dependency
169
167
  requirement: &id011 !ruby/object:Gem::Requirement
170
168
  none: false
171
169
  requirements:
@@ -177,11 +175,11 @@ dependencies:
177
175
  - 0
178
176
  - 0
179
177
  version: 1.0.0
180
- name: bundler
181
178
  version_requirements: *id011
179
+ name: bundler
182
180
  prerelease: false
183
- - !ruby/object:Gem::Dependency
184
181
  type: :development
182
+ - !ruby/object:Gem::Dependency
185
183
  requirement: &id012 !ruby/object:Gem::Requirement
186
184
  none: false
187
185
  requirements:
@@ -193,11 +191,11 @@ dependencies:
193
191
  - 6
194
192
  - 0
195
193
  version: 1.6.0
196
- name: jeweler
197
194
  version_requirements: *id012
195
+ name: jeweler
198
196
  prerelease: false
199
- - !ruby/object:Gem::Dependency
200
197
  type: :development
198
+ - !ruby/object:Gem::Dependency
201
199
  requirement: &id013 !ruby/object:Gem::Requirement
202
200
  none: false
203
201
  requirements:
@@ -207,9 +205,10 @@ dependencies:
207
205
  segments:
208
206
  - 0
209
207
  version: "0"
210
- name: rcov
211
208
  version_requirements: *id013
209
+ name: rcov
212
210
  prerelease: false
211
+ type: :development
213
212
  description: Unified search scopes
214
213
  email: tobias.schwab@dynport.de
215
214
  executables: []
@@ -219,7 +218,6 @@ extensions: []
219
218
  extra_rdoc_files:
220
219
  - LICENSE.txt
221
220
  - README.rdoc
222
- - TODO
223
221
  files:
224
222
  - .autotest
225
223
  - .document
@@ -293,8 +291,6 @@ files:
293
291
  - spec/supernova/thinking_sphinx_criteria_spec.rb
294
292
  - spec/supernova_spec.rb
295
293
  - supernova.gemspec
296
- - TODO
297
- has_rdoc: true
298
294
  homepage: http://github.com/dynport/supernova
299
295
  licenses:
300
296
  - MIT
@@ -324,7 +320,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
324
320
  requirements: []
325
321
 
326
322
  rubyforge_project:
327
- rubygems_version: 1.6.2
323
+ rubygems_version: 1.7.2
328
324
  signing_key:
329
325
  specification_version: 3
330
326
  summary: Unified search scopes
data/TODO DELETED
@@ -1,3 +0,0 @@
1
- - mapping von dynamic zu static fields in load_document
2
- - setzen von solr_row in load document
3
- - speichern von :type in :type_s