spree_solr_search 0.30.0 → 0.40.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,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