spree_solr_search 0.30.0.beta1 → 0.30.0

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