spree_solr_search 0.30.0 → 0.40.0

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -21,8 +21,8 @@ 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']
25
- s.add_dependency 'acts_as_solr_reloaded', ['>= 1.4.0']
24
+ s.add_dependency 'spree_core', ['>= 0.30.1']
25
+ s.add_dependency 'acts_as_solr_reloaded', ['>= 1.5.0']
26
26
  s.has_rdoc = false
27
27
  #s.extra_rdoc_files = [ "README.rdoc"]
28
28
  #s.rdoc_options = ["--main", "README.rdoc", "--inline-source", "--line-numbers"]
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.30.0
1
+ 0.40.0
@@ -50,6 +50,7 @@ module Spree::Search
50
50
  facets = []
51
51
  price_ranges = YAML::load(Spree::Config[:product_price_ranges])
52
52
  facets_hash["facet_fields"].each do |name, options|
53
+ options = Hash[*options.flatten] if options.is_a?(Array)
53
54
  next if options.size <= 1
54
55
  facet = Facet.new(name.sub('_facet', ''))
55
56
  if name == 'price_range_facet'
@@ -4,7 +4,7 @@ require 'spree_solr_search_hooks'
4
4
  module SpreeSolrSearch
5
5
  class Engine < Rails::Engine
6
6
  def self.activate
7
- require 'acts_as_solr'
7
+ require 'websolr_acts_as_solr'
8
8
  ENV['RAILS_ENV'] = Rails.env
9
9
 
10
10
  if Spree::Config.instance
@@ -0,0 +1,53 @@
1
+ require "acts_as_solr"
2
+
3
+ if ENV["WEBSOLR_URL"]
4
+ require "json"
5
+ require "net/http"
6
+ require "uri"
7
+
8
+ api_key = ENV["WEBSOLR_URL"][/[0-9a-f]{11}/] or raise "Invalid WEBSOLR_URL: bad or no api key"
9
+
10
+ ENV["WEBSOLR_CONFIG_HOST"] ||= "www.websolr.com"
11
+
12
+ @pending = true
13
+ Rails.logger.info "Checking index availability..."
14
+
15
+ begin
16
+ schema_url = URI.parse("http://#{ENV["WEBSOLR_CONFIG_HOST"]}/schema/#{api_key}.json")
17
+ response = Net::HTTP.post_form(schema_url, "client" => "acts_as_solr-1.3")
18
+ json = JSON.parse(response.body.to_s)
19
+
20
+ case json["status"]
21
+ when "ok"
22
+ Rails.logger.info "Index is available!"
23
+ @pending = false
24
+ when "pending"
25
+ Rails.logger.info "Provisioning index, things may not be working for a few seconds ..."
26
+ sleep 5
27
+ when "error"
28
+ Rails.logger.error json["message"]
29
+ @pending = false
30
+ else
31
+ Rails.logger.error "wtf: #{json.inspect}"
32
+ end
33
+ rescue Exception => e
34
+ STDERR.puts "Error checking index status. It may or may not be available.\n" +
35
+ "Please email support@onemorecloud.com if this problem persists.\n" +
36
+ "Exception: #{e.message}"
37
+ end
38
+
39
+ module ActsAsSolr
40
+ class Post
41
+ def self.execute(request, core = nil)
42
+ begin
43
+ connection = Solr::Connection.new(ENV["WEBSOLR_URL"])
44
+ return connection.send(request)
45
+ rescue Exception => e
46
+ STDERR.puts "Couldn't connect to the Solr server at #{ENV["WEBSOLR_URL"]}. #{$!}\n" +
47
+ "Request: #{request.inspect}"
48
+ false
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -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"
8
+ s.version = "0.40.0"
9
9
 
10
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{2011-01-11}
12
+ s.date = %q{2011-02-22}
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 = [
@@ -34,6 +34,7 @@ Gem::Specification.new do |s|
34
34
  "lib/spree_solr_search.rb",
35
35
  "lib/spree_solr_search_hooks.rb",
36
36
  "lib/tasks/acts_as_solr.rake",
37
+ "lib/websolr_acts_as_solr.rb",
37
38
  "spree_solr_search.gemspec"
38
39
  ]
39
40
  s.homepage = %q{http://github.com/romul/spree-solr-search}
@@ -47,15 +48,15 @@ Gem::Specification.new do |s|
47
48
  s.specification_version = 3
48
49
 
49
50
  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
- s.add_runtime_dependency(%q<acts_as_solr_reloaded>, [">= 1.4.0"])
51
+ s.add_runtime_dependency(%q<spree_core>, [">= 0.30.1"])
52
+ s.add_runtime_dependency(%q<acts_as_solr_reloaded>, [">= 1.5.0"])
52
53
  else
53
- s.add_dependency(%q<spree_core>, [">= 0.30.0"])
54
- s.add_dependency(%q<acts_as_solr_reloaded>, [">= 1.4.0"])
54
+ s.add_dependency(%q<spree_core>, [">= 0.30.1"])
55
+ s.add_dependency(%q<acts_as_solr_reloaded>, [">= 1.5.0"])
55
56
  end
56
57
  else
57
- s.add_dependency(%q<spree_core>, [">= 0.30.0"])
58
- s.add_dependency(%q<acts_as_solr_reloaded>, [">= 1.4.0"])
58
+ s.add_dependency(%q<spree_core>, [">= 0.30.1"])
59
+ s.add_dependency(%q<acts_as_solr_reloaded>, [">= 1.5.0"])
59
60
  end
60
61
  end
61
62
 
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 30
7
+ - 40
8
8
  - 0
9
- version: 0.30.0
9
+ version: 0.40.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Roman Smirnov
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-01-11 00:00:00 +03:00
17
+ date: 2011-02-22 00:00:00 +03:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -27,8 +27,8 @@ dependencies:
27
27
  segments:
28
28
  - 0
29
29
  - 30
30
- - 0
31
- version: 0.30.0
30
+ - 1
31
+ version: 0.30.1
32
32
  type: :runtime
33
33
  version_requirements: *id001
34
34
  - !ruby/object:Gem::Dependency
@@ -40,9 +40,9 @@ dependencies:
40
40
  - !ruby/object:Gem::Version
41
41
  segments:
42
42
  - 1
43
- - 4
43
+ - 5
44
44
  - 0
45
- version: 1.4.0
45
+ version: 1.5.0
46
46
  type: :runtime
47
47
  version_requirements: *id002
48
48
  description: Provides search via Apache Solr for a Spree store.
@@ -72,6 +72,7 @@ files:
72
72
  - lib/spree_solr_search.rb
73
73
  - lib/spree_solr_search_hooks.rb
74
74
  - lib/tasks/acts_as_solr.rake
75
+ - lib/websolr_acts_as_solr.rb
75
76
  - spree_solr_search.gemspec
76
77
  has_rdoc: true
77
78
  homepage: http://github.com/romul/spree-solr-search