solrsan 0.5.8 → 0.5.9

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/README.md CHANGED
@@ -110,6 +110,9 @@ A simple search query:
110
110
  More searching examples can be seen in test/unit/search_test.rb
111
111
 
112
112
  ## Changelog
113
+ 0.5.9
114
+ Reverted ability to custom modify solr 'type' attribute field.
115
+
113
116
  0.5.8
114
117
  Allow any version of activesupport > 3.1 for gem dependency.
115
118
 
@@ -2,44 +2,41 @@ module Solrsan
2
2
  module Search
3
3
  extend ActiveSupport::Concern
4
4
 
5
- module InstanceMethods
6
- def as_solr_document
7
- self.attributes
8
- end
9
-
10
- def indexed_fields
11
- raise "Object has have a valid as_solr_document defined" if as_solr_document.nil?
5
+ def as_solr_document
6
+ self.attributes
7
+ end
12
8
 
13
- doc = {:type => self.class.solr_type, :db_id => id_value, :id => solr_id_value}
9
+ def indexed_fields
10
+ raise "Object has have a valid as_solr_document defined" if as_solr_document.nil?
14
11
 
15
- initial_document_fields = as_solr_document.reject{|k,v| k == :id || k == :_id}
16
- converted_fields = initial_document_fields.reduce({}) do |acc, tuple|
17
- value = tuple[1]
18
- value = value.to_time.utc.xmlschema if value.respond_to?(:utc) || value.is_a?(Date)
19
- acc[tuple[0]] = value
20
- acc
21
- end
22
- doc.merge(converted_fields)
23
- end
12
+ doc = {:type => self.class.solr_type, :db_id => id_value, :id => solr_id_value}
24
13
 
25
- def solr_index(opts={:add_attributes => {:commitWithin => 10}})
26
- self.class.solr_index(self, opts)
14
+ initial_document_fields = as_solr_document.reject{|k,v| k == :id || k == :_id}
15
+ converted_fields = initial_document_fields.reduce({}) do |acc, tuple|
16
+ value = tuple[1]
17
+ value = value.to_time.utc.xmlschema if value.respond_to?(:utc) || value.is_a?(Date)
18
+ acc[tuple[0]] = value
19
+ acc
27
20
  end
21
+ doc.merge(converted_fields)
22
+ end
28
23
 
29
- def destroy_index_document
30
- self.class.destroy_index_document(self)
31
- end
24
+ def solr_index(opts={:add_attributes => {:commitWithin => 10}})
25
+ self.class.solr_index(self, opts)
26
+ end
32
27
 
33
- def id_value
34
- item_id = self.attributes[:_id] || self.attributes[:id] || self.id
35
- raise "Object must have an id attribute defined before being indexed" if item_id.nil?
36
- item_id
37
- end
28
+ def destroy_index_document
29
+ self.class.destroy_index_document(self)
30
+ end
38
31
 
39
- def solr_id_value
40
- "#{self.class.solr_type}-#{id_value.to_s}"
41
- end
32
+ def id_value
33
+ item_id = self.attributes[:_id] || self.attributes[:id] || self.id
34
+ raise "Object must have an id attribute defined before being indexed" if item_id.nil?
35
+ item_id
36
+ end
42
37
 
38
+ def solr_id_value
39
+ "#{self.class.solr_type}-#{id_value.to_s}"
43
40
  end
44
41
 
45
42
  module ClassMethods
@@ -1,5 +1,3 @@
1
- require 'active_support/core_ext/module/attribute_accessors'
2
-
3
1
  module Solrsan
4
2
  module Search
5
3
  extend ActiveSupport::Concern
@@ -8,8 +6,9 @@ module Solrsan
8
6
  HL_START_TAG = "<mark>"
9
7
  HL_END_TAG = "</mark>"
10
8
 
11
- @@solr_type = self.to_s.underscore
12
- mattr_accessor :solr_type
9
+ def solr_type
10
+ self.to_s.underscore
11
+ end
13
12
 
14
13
  def perform_solr_command
15
14
  @rsolr ||= Solrsan::Config.instance.rsolr_object
@@ -44,7 +43,7 @@ module Solrsan
44
43
  :'facet.mincount' => 1}.merge(search_params)
45
44
 
46
45
  solr_params[:hl] = true unless search_params[:'hl.fl'].blank?
47
- solr_params[:fq] = ["type:#{@@solr_type}"] + parse_fq(search_params[:fq])
46
+ solr_params[:fq] = ["type:#{solr_type}"] + parse_fq(search_params[:fq])
48
47
  solr_params
49
48
  end
50
49
 
@@ -180,7 +179,9 @@ if defined?(Rails) && Rails.env == "test"
180
179
  module Search
181
180
  extend ActiveSupport::Concern
182
181
  module ClassMethods
183
- @@solr_type = "#{self.to_s.underscore}_test"
182
+ def solr_type
183
+ "#{self.to_s.underscore}_test"
184
+ end
184
185
  end
185
186
  end
186
187
  end
@@ -1,3 +1,3 @@
1
1
  module Solrsan
2
- VERSION = "0.5.8"
2
+ VERSION = "0.5.9"
3
3
  end
@@ -13,6 +13,19 @@ class SearchTest < Test::Unit::TestCase
13
13
  Document.destroy_all_index_documents!
14
14
  end
15
15
 
16
+ def test_attributes
17
+ Document.solr_index(@document)
18
+ sleep 1
19
+ q = @document.attributes[:title]
20
+
21
+ response = Document.search(:q => q)
22
+ metadata = response[:metadata]
23
+ docs = response[:docs]
24
+ doc = docs.first
25
+
26
+ assert_equal "document_test", doc["type"]
27
+ end
28
+
16
29
  def test_simple_query
17
30
  Document.solr_index(@document)
18
31
  sleep 1
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solrsan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.8
4
+ version: 0.5.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-28 00:00:00.000000000 Z
12
+ date: 2012-02-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rsolr
16
- requirement: &70308054024800 !ruby/object:Gem::Requirement
16
+ requirement: &70361182665480 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.0.6
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70308054024800
24
+ version_requirements: *70361182665480
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activemodel
27
- requirement: &70308054024300 !ruby/object:Gem::Requirement
27
+ requirement: &70361182664500 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>'
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 3.1.1
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70308054024300
35
+ version_requirements: *70361182664500
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: activesupport
38
- requirement: &70308054023820 !ruby/object:Gem::Requirement
38
+ requirement: &70361182662680 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>'
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: 3.1.1
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70308054023820
46
+ version_requirements: *70361182662680
47
47
  description: solrsan is a lightweight wrapper for using Apache Solr within a Ruby
48
48
  application including Rails and Sinatra.
49
49
  email: