spree_solr_search 0.30.0.beta1 → 0.30.0

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/Rakefile CHANGED
@@ -21,7 +21,7 @@ Jeweler::Tasks.new do |s|
21
21
  s.email = "roman@railsdog.com"
22
22
  s.homepage = "http://github.com/romul/spree-solr-search"
23
23
  s.authors = ["Roman Smirnov"]
24
- # s.add_dependency 'spree_core', ['>= 0.30.0.beta1']
24
+ s.add_dependency 'spree_core', ['>= 0.30.0']
25
25
  s.add_dependency 'acts_as_solr_reloaded', ['>= 1.4.0']
26
26
  s.has_rdoc = false
27
27
  #s.extra_rdoc_files = [ "README.rdoc"]
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.30.0.beta1
1
+ 0.30.0
@@ -1,9 +1,4 @@
1
1
  Spree::BaseController.class_eval do
2
2
  helper :solr
3
- before_filter :set_searcher
4
3
  RAILS_ROOT = Rails.root.to_s
5
- private
6
- def set_searcher
7
- Spree::Config.searcher = Spree::Search::Solr.new
8
- end
9
4
  end
@@ -3,6 +3,7 @@ module SolrHelper
3
3
  facets_hash = params[:facets]
4
4
  facets_hash = {} unless facets_hash.is_a?(Hash)
5
5
  facets_hash = facets_hash.merge({name => ["\"#{value}\"", facets_hash[name]].join(',')})
6
+ request.params.delete(:page)
6
7
  link_to("#{value} (#{count})", url_for(request.params.merge({:facets => facets_hash})))
7
8
  end
8
9
  end
@@ -1,5 +1,5 @@
1
1
  <%
2
- facets = Spree::Config.searcher.facets || []
2
+ facets = @searcher.facets || []
3
3
  taxon_names = @taxon ? @taxon.self_and_descendants.map(&:name) : []
4
4
  for facet in facets
5
5
  options = facet.options
@@ -1,4 +1,4 @@
1
- <% if suggestion = Spree::Config.searcher.suggest %>
1
+ <% if suggestion = @searcher.suggest %>
2
2
  <p>
3
3
  <%= t(:did_you_mean, :default => "Did you mean") %>
4
4
  <%= link_to h(suggestion), url_for(request.params.merge({:keywords => suggestion})) %>?
@@ -1,7 +1,8 @@
1
1
  module Spree::Search
2
2
  class Solr < Spree::Search::Base
3
- # method should return hash with conditions {:conditions=> "..."} for Product model
4
- def get_products_conditions_for(query)
3
+ protected
4
+
5
+ def get_products_conditions_for(base_scope, query)
5
6
  facets = {
6
7
  :fields => [:price_range, :taxon_names, :brand_property, :color_option, :size_option],
7
8
  :browse => @properties[:facets_hash].map{|k,v| "#{k}:#{v}"},
@@ -18,11 +19,9 @@ module Spree::Search
18
19
  end
19
20
 
20
21
  result = Product.find_by_solr(full_query, search_options)
21
- @properties[:products] = result.records
22
- count = result.records.size
23
22
 
24
- products = Product.paginate(query, :finder => 'find_all_by_solr',
25
- :page => page, :per_page => per_page, :total_entries => count)
23
+ count = result.records.size
24
+ products = result.records.paginate(:page => page, :per_page => per_page, :total_entries => count)
26
25
 
27
26
  @properties[:products] = products
28
27
  @properties[:suggest] = nil
@@ -35,14 +34,12 @@ module Spree::Search
35
34
  end
36
35
 
37
36
  @properties[:facets] = parse_facets_hash(result.facets)
38
- {:conditions=> ["products.id IN (?)", products.map(&:id)]}
37
+ base_scope.where ["products.id IN (?)", products.map(&:id)]
39
38
  end
40
39
 
41
40
  def prepare(params)
41
+ super
42
42
  @properties[:facets_hash] = params[:facets] || {}
43
- @properties[:taxon] = params[:taxon].blank? ? nil : Taxon.find(params[:taxon])
44
- @properties[:per_page] = params[:per_page]
45
- @properties[:page] = params[:page]
46
43
  @properties[:manage_pagination] = true
47
44
  @properties[:order_by_price] = params[:order_by_price]
48
45
  end
@@ -5,11 +5,13 @@ module SpreeSolrSearch
5
5
  class Engine < Rails::Engine
6
6
  def self.activate
7
7
  require 'acts_as_solr'
8
- require 'solr_pagination'
9
8
  ENV['RAILS_ENV'] = Rails.env
10
-
11
- Spree::Config.set(:product_price_ranges =>
9
+
10
+ if Spree::Config.instance
11
+ Spree::Config.searcher_class = Spree::Search::Solr
12
+ Spree::Config.set(:product_price_ranges =>
12
13
  ["Under $25", "$25 to $50", "$50 to $100", "$100 to $200", "$200 and above"])
14
+ end
13
15
 
14
16
  Dir.glob(File.join(File.dirname(__FILE__), "../app/**/*_decorator*.rb")) do |c|
15
17
  Rails.env == "production" ? require(c) : load(c)
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{spree_solr_search}
8
- s.version = "0.30.0.beta1"
8
+ s.version = "0.30.0"
9
9
 
10
- s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Roman Smirnov"]
12
- s.date = %q{2010-08-26}
12
+ s.date = %q{2011-01-11}
13
13
  s.description = %q{Provides search via Apache Solr for a Spree store.}
14
14
  s.email = %q{roman@railsdog.com}
15
15
  s.extra_rdoc_files = [
@@ -30,7 +30,6 @@ Gem::Specification.new do |s|
30
30
  "config/locales/ru.yml",
31
31
  "lib/generators/spree_solr_search/install_generator.rb",
32
32
  "lib/generators/templates/solr.yml",
33
- "lib/solr_pagination.rb",
34
33
  "lib/spree/search/solr.rb",
35
34
  "lib/spree_solr_search.rb",
36
35
  "lib/spree_solr_search_hooks.rb",
@@ -48,11 +47,14 @@ Gem::Specification.new do |s|
48
47
  s.specification_version = 3
49
48
 
50
49
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
50
+ s.add_runtime_dependency(%q<spree_core>, [">= 0.30.0"])
51
51
  s.add_runtime_dependency(%q<acts_as_solr_reloaded>, [">= 1.4.0"])
52
52
  else
53
+ s.add_dependency(%q<spree_core>, [">= 0.30.0"])
53
54
  s.add_dependency(%q<acts_as_solr_reloaded>, [">= 1.4.0"])
54
55
  end
55
56
  else
57
+ s.add_dependency(%q<spree_core>, [">= 0.30.0"])
56
58
  s.add_dependency(%q<acts_as_solr_reloaded>, [">= 1.4.0"])
57
59
  end
58
60
  end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_solr_search
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: true
4
+ prerelease: false
5
5
  segments:
6
6
  - 0
7
7
  - 30
8
8
  - 0
9
- - beta1
10
- version: 0.30.0.beta1
9
+ version: 0.30.0
11
10
  platform: ruby
12
11
  authors:
13
12
  - Roman Smirnov
@@ -15,13 +14,27 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2010-08-26 00:00:00 +04:00
17
+ date: 2011-01-11 00:00:00 +03:00
19
18
  default_executable:
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
- name: acts_as_solr_reloaded
21
+ name: spree_core
23
22
  prerelease: false
24
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ - 30
30
+ - 0
31
+ version: 0.30.0
32
+ type: :runtime
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: acts_as_solr_reloaded
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
25
38
  requirements:
26
39
  - - ">="
27
40
  - !ruby/object:Gem::Version
@@ -31,7 +44,7 @@ dependencies:
31
44
  - 0
32
45
  version: 1.4.0
33
46
  type: :runtime
34
- version_requirements: *id001
47
+ version_requirements: *id002
35
48
  description: Provides search via Apache Solr for a Spree store.
36
49
  email: roman@railsdog.com
37
50
  executables: []
@@ -55,7 +68,6 @@ files:
55
68
  - config/locales/ru.yml
56
69
  - lib/generators/spree_solr_search/install_generator.rb
57
70
  - lib/generators/templates/solr.yml
58
- - lib/solr_pagination.rb
59
71
  - lib/spree/search/solr.rb
60
72
  - lib/spree_solr_search.rb
61
73
  - lib/spree_solr_search_hooks.rb
@@ -79,13 +91,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
79
91
  version: "0"
80
92
  required_rubygems_version: !ruby/object:Gem::Requirement
81
93
  requirements:
82
- - - ">"
94
+ - - ">="
83
95
  - !ruby/object:Gem::Version
84
96
  segments:
85
- - 1
86
- - 3
87
- - 1
88
- version: 1.3.1
97
+ - 0
98
+ version: "0"
89
99
  requirements: []
90
100
 
91
101
  rubyforge_project:
@@ -1,19 +0,0 @@
1
- # By Henrik Nyh <http://henrik.nyh.se> 2007-06-15.
2
- # Free to modify and redistribute with credit.
3
-
4
- # Adds a find_all_by_solr method to acts_as_solr models to enable
5
- # will_paginate for acts_as_solr search results.
6
-
7
- module ActsAsSolr
8
- module PaginationExtension
9
-
10
- def find_all_by_solr(query, options)
11
- Spree::Config.searcher.products.slice(options[:offset], options[:limit])
12
- end
13
-
14
- end
15
- end
16
-
17
- module ActsAsSolr::ClassMethods
18
- include ActsAsSolr::PaginationExtension
19
- end