supernova 0.7.5 → 0.7.6
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/Gemfile +2 -0
- data/Gemfile.lock +9 -2
- data/Guardfile +29 -0
- data/VERSION +1 -1
- data/lib/supernova.rb +4 -1
- data/lib/supernova/attr_initializer.rb +22 -0
- data/lib/supernova/circle.rb +6 -0
- data/lib/supernova/condition.rb +2 -0
- data/lib/supernova/coordinate.rb +4 -0
- data/lib/supernova/solr_criteria.rb +52 -4
- data/spec/integration/solr_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -24
- data/spec/spec_helper_ar.rb +27 -0
- data/spec/supernova/attr_initializer_spec.rb +14 -0
- data/spec/supernova/circle_spec.rb +17 -0
- data/spec/supernova/condition_spec.rb +6 -0
- data/spec/supernova/coordinate_spec.rb +15 -0
- data/spec/supernova/solr_criteria_spec.rb +31 -1
- data/spec/supernova_spec.rb +1 -1
- data/supernova.gemspec +17 -3
- metadata +74 -44
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -27,13 +27,18 @@ GEM
|
|
27
27
|
rb-appscript
|
28
28
|
guard (0.8.4)
|
29
29
|
thor (~> 0.14.6)
|
30
|
+
guard-bundler (0.1.3)
|
31
|
+
bundler (>= 1.0.0)
|
32
|
+
guard (>= 0.2.2)
|
33
|
+
guard-rspec (0.5.0)
|
34
|
+
guard (>= 0.8.4)
|
30
35
|
i18n (0.5.0)
|
31
36
|
jeweler (1.6.4)
|
32
37
|
bundler (~> 1.0)
|
33
38
|
git (>= 1.2.5)
|
34
39
|
rake
|
35
40
|
json (1.5.3)
|
36
|
-
linecache19 (0.5.
|
41
|
+
linecache19 (0.5.13)
|
37
42
|
ruby_core_source (>= 0.1.4)
|
38
43
|
mime-types (1.17.2)
|
39
44
|
mysql2 (0.2.18)
|
@@ -49,7 +54,7 @@ GEM
|
|
49
54
|
rspec-expectations (2.8.0)
|
50
55
|
diff-lcs (~> 1.1.2)
|
51
56
|
rspec-mocks (2.8.0)
|
52
|
-
ruby-debug-base19 (0.11.
|
57
|
+
ruby-debug-base19 (0.11.26)
|
53
58
|
columnize (>= 0.3.1)
|
54
59
|
linecache19 (>= 0.5.11)
|
55
60
|
ruby_core_source (>= 0.1.4)
|
@@ -79,6 +84,8 @@ DEPENDENCIES
|
|
79
84
|
growl
|
80
85
|
growl_notify
|
81
86
|
guard
|
87
|
+
guard-bundler
|
88
|
+
guard-rspec
|
82
89
|
i18n
|
83
90
|
jeweler (~> 1.6.0)
|
84
91
|
json
|
data/Guardfile
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# A sample Guardfile
|
2
|
+
# More info at https://github.com/guard/guard#readme
|
3
|
+
|
4
|
+
require "rubygems"
|
5
|
+
require "guard/guard"
|
6
|
+
|
7
|
+
guard :bundler do
|
8
|
+
watch('Gemfile')
|
9
|
+
end
|
10
|
+
|
11
|
+
def spec_helper_cmd
|
12
|
+
"-r ./spec/spec_helper.rb" if File.exists?(File.expand_path("../spec/spec_helper.rb", __FILE__))
|
13
|
+
end
|
14
|
+
|
15
|
+
guard 'rspec', :version => 2, :cli => "#{spec_helper_cmd} --color -t wip", :notification => :growl do
|
16
|
+
watch(%r{^spec/.+_spec\.rb$})
|
17
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| ["spec/lib/#{m[1]}_spec.rb", "spec/#{m[1]}_spec.rb"] }
|
18
|
+
watch('spec/spec_helper.rb') { "spec" }
|
19
|
+
|
20
|
+
# Rails example
|
21
|
+
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
22
|
+
watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
|
23
|
+
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
|
24
|
+
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
|
25
|
+
watch('config/routes.rb') { "spec/routing" }
|
26
|
+
watch('app/controllers/application_controller.rb') { "spec/controllers" }
|
27
|
+
# Capybara request specs
|
28
|
+
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
|
29
|
+
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.7.
|
1
|
+
0.7.6
|
data/lib/supernova.rb
CHANGED
@@ -42,4 +42,7 @@ require "supernova/symbol_extensions"
|
|
42
42
|
require "supernova/condition"
|
43
43
|
require "supernova/collection"
|
44
44
|
require "supernova/criteria"
|
45
|
-
require "supernova/solr"
|
45
|
+
require "supernova/solr"
|
46
|
+
require "supernova/attr_initializer"
|
47
|
+
require "supernova/coordinate"
|
48
|
+
require "supernova/circle"
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Supernova::AttrInitializer
|
2
|
+
module InstanceMethods
|
3
|
+
def initialize(attributes = {})
|
4
|
+
attributes.each do |key, value|
|
5
|
+
self.send(:"#{key}=", value)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
module ClassMethods
|
11
|
+
def attr_initializer(*args)
|
12
|
+
args.each do |arg|
|
13
|
+
attr_accessor arg
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.included(base)
|
19
|
+
base.send(:include, Supernova::AttrInitializer::InstanceMethods)
|
20
|
+
base.extend(Supernova::AttrInitializer::ClassMethods)
|
21
|
+
end
|
22
|
+
end
|
data/lib/supernova/condition.rb
CHANGED
@@ -50,6 +50,8 @@ class Supernova::Condition
|
|
50
50
|
"#{key}:[#{values.first} TO #{values.last}]"
|
51
51
|
elsif values.respond_to?(:ne) && values.respond_to?(:sw)
|
52
52
|
"#{key}:#{type == :inside ? "{" : "["}#{values.sw.lat},#{values.sw.lng} TO #{values.ne.lat},#{values.ne.lng}#{type == :inside ? "}" : "]"}"
|
53
|
+
elsif values.is_a?(Supernova::Circle)
|
54
|
+
"{!geofilt}"
|
53
55
|
else
|
54
56
|
values.map { |v| v.nil? ? "!#{nil_filter}" : "#{key}:#{v}"}.join(" OR ")
|
55
57
|
end
|
@@ -1,6 +1,44 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
|
3
3
|
class Supernova::SolrCriteria < Supernova::Criteria
|
4
|
+
def geo_circle_from_with
|
5
|
+
geo_filter_in_with.at(1) if geo_filter_in_with
|
6
|
+
end
|
7
|
+
|
8
|
+
def geo_center_from_with
|
9
|
+
geo_circle_from_with.center if geo_circle_from_with
|
10
|
+
end
|
11
|
+
|
12
|
+
def geo_distance_in_meters_from_with
|
13
|
+
geo_circle_from_with.radius_in_meters if geo_circle_from_with
|
14
|
+
end
|
15
|
+
|
16
|
+
def geo_distance_in_meters
|
17
|
+
self.search_options[:geo_distance] || geo_distance_in_meters_from_with
|
18
|
+
end
|
19
|
+
|
20
|
+
def geo_center
|
21
|
+
if hash = self.search_options[:geo_center]
|
22
|
+
Supernova::Coordinate.new(hash)
|
23
|
+
else
|
24
|
+
geo_center_from_with
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def geo_filed_key
|
29
|
+
geo_filter_in_with ? geo_filter_in_with.first : :location
|
30
|
+
end
|
31
|
+
|
32
|
+
def geo_attributes_from_center_distance_in_meters_and_key(center, distance_in_meters, key)
|
33
|
+
if center && distance_in_meters
|
34
|
+
{
|
35
|
+
:pt => "#{center.lat},#{center.lng}",
|
36
|
+
:d => (distance_in_meters.to_f / Supernova::KM_TO_METER),
|
37
|
+
:sfield => solr_field_from_field(key)
|
38
|
+
}
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
4
42
|
# move this into separate methods (test each separatly)
|
5
43
|
def to_params
|
6
44
|
solr_options = { :fq => [], :q => "*:*" }
|
@@ -16,12 +54,11 @@ class Supernova::SolrCriteria < Supernova::Criteria
|
|
16
54
|
solr_options[:q] = self.search_options[:search].map { |query| "(#{query})" }.join(" AND ")
|
17
55
|
end
|
18
56
|
|
19
|
-
if
|
20
|
-
solr_options
|
21
|
-
solr_options[:d] = self.search_options[:geo_distance].to_f / Supernova::KM_TO_METER
|
22
|
-
solr_options[:sfield] = solr_field_from_field(:location)
|
57
|
+
if geo_options = geo_attributes_from_center_distance_in_meters_and_key(geo_center, geo_distance_in_meters, geo_filed_key)
|
58
|
+
solr_options.merge!(geo_options)
|
23
59
|
solr_options[:fq] << "{!geofilt}"
|
24
60
|
end
|
61
|
+
|
25
62
|
if self.search_options[:select]
|
26
63
|
self.search_options[:select] << "id" if !self.search_options[:select].map(&:to_s).include?("id")
|
27
64
|
solr_options[:fl] = self.search_options[:select].compact.map { |field| solr_field_from_field(field) }.join(",")
|
@@ -44,6 +81,17 @@ class Supernova::SolrCriteria < Supernova::Criteria
|
|
44
81
|
solr_options
|
45
82
|
end
|
46
83
|
|
84
|
+
def geo_filter_in_with
|
85
|
+
(search_options[:with] || []).each do |option|
|
86
|
+
if option.is_a?(Hash)
|
87
|
+
option.each do |condition, value|
|
88
|
+
return [condition.key, value] if value.is_a?(Supernova::Circle)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
nil
|
93
|
+
end
|
94
|
+
|
47
95
|
def include_facets?
|
48
96
|
self.search_options[:facets] || self.search_options[:facet_queries]
|
49
97
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,13 +1,11 @@
|
|
1
1
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
2
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
3
|
require 'rspec'
|
4
|
-
require
|
5
|
-
require "mysql2"
|
4
|
+
require File.expand_path("../../lib/supernova.rb", __FILE__)
|
6
5
|
require "logger"
|
7
6
|
require "fileutils"
|
8
7
|
require "ruby-debug"
|
9
8
|
require "geokit"
|
10
|
-
require "active_record"
|
11
9
|
|
12
10
|
def project_root
|
13
11
|
Pathname.new(File.expand_path("..", File.dirname(__FILE__)))
|
@@ -25,33 +23,12 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
|
25
23
|
RSpec.configure do |config|
|
26
24
|
config.run_all_when_everything_filtered = true
|
27
25
|
config.before(:each) do
|
28
|
-
ActiveRecord::Base.connection.execute("TRUNCATE offers")
|
29
26
|
Supernova::Criteria.mutable_by_default!
|
30
27
|
end
|
31
28
|
end
|
32
29
|
|
33
|
-
|
34
|
-
ActiveRecord::Base.establish_connection(
|
35
|
-
:adapter => "mysql2",
|
36
|
-
:host => "localhost",
|
37
|
-
:database => "supernova_test",
|
38
|
-
:username => "root",
|
39
|
-
:encoding => "utf8"
|
40
|
-
)
|
41
|
-
|
42
|
-
|
43
30
|
FileUtils.mkdir_p(project_root.join("log"))
|
44
31
|
|
45
|
-
ActiveRecord::Base.connection.execute("DROP TABLE IF EXISTS offers")
|
46
|
-
ActiveRecord::Base.connection.execute("CREATE TABLE offers (id SERIAL, text TEXT, user_id INTEGER, enabled BOOLEAN, popularity INTEGER, lat FLOAT, lng FLOAT)")
|
47
|
-
|
48
|
-
class Offer < ActiveRecord::Base
|
49
|
-
include Supernova::Solr
|
50
|
-
named_search_scope :for_user_ids do |*ids|
|
51
|
-
with(:user_id => ids.flatten)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
32
|
class Host
|
56
33
|
attr_accessor :id
|
57
34
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "active_record"
|
3
|
+
require "mysql2"
|
4
|
+
|
5
|
+
ActiveRecord::Base.establish_connection(
|
6
|
+
:adapter => "mysql2",
|
7
|
+
:host => "localhost",
|
8
|
+
:database => "supernova_test",
|
9
|
+
:username => "root",
|
10
|
+
:encoding => "utf8"
|
11
|
+
)
|
12
|
+
|
13
|
+
ActiveRecord::Base.connection.execute("DROP TABLE IF EXISTS offers")
|
14
|
+
ActiveRecord::Base.connection.execute("CREATE TABLE offers (id SERIAL, text TEXT, user_id INTEGER, enabled BOOLEAN, popularity INTEGER, lat FLOAT, lng FLOAT)")
|
15
|
+
|
16
|
+
class Offer < ActiveRecord::Base
|
17
|
+
include Supernova::Solr
|
18
|
+
named_search_scope :for_user_ids do |*ids|
|
19
|
+
with(:user_id => ids.flatten)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
RSpec.configure do |config|
|
24
|
+
config.before(:each) do
|
25
|
+
ActiveRecord::Base.connection.execute("TRUNCATE offers")
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require "supernova/attr_initializer"
|
2
|
+
|
3
|
+
describe "Supernova::AttrInitializer" do
|
4
|
+
it "implements attr_initializer" do
|
5
|
+
class User
|
6
|
+
include Supernova::AttrInitializer
|
7
|
+
attr_initializer :name, :age
|
8
|
+
end
|
9
|
+
|
10
|
+
usr = User.new(:name => "Hans", :age => 10)
|
11
|
+
usr.name.should == "Hans"
|
12
|
+
usr.age.should == 10
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require "supernova/circle"
|
2
|
+
|
3
|
+
describe "Supernova::Circle" do
|
4
|
+
let(:center) { Supernova::Coordinate.new(:lat => 47, :lng => 11) }
|
5
|
+
|
6
|
+
it "can be initialized" do
|
7
|
+
Supernova::Circle.new
|
8
|
+
end
|
9
|
+
|
10
|
+
it "can be initialized with center" do
|
11
|
+
Supernova::Circle.new(:center => center).center.should == center
|
12
|
+
end
|
13
|
+
|
14
|
+
it "allows setting of radius_in_meters" do
|
15
|
+
Supernova::Circle.new(:radius_in_meters => 101_00).radius_in_meters.should == 101_00
|
16
|
+
end
|
17
|
+
end
|
@@ -57,6 +57,12 @@ describe "Supernova::Condition" do
|
|
57
57
|
:pt.inside.or_key_and_value(bounding_box).should == "pt:{47.0,11.0 TO 48.0,12.0}"
|
58
58
|
end
|
59
59
|
|
60
|
+
it "returns {!geofilt} when center" do
|
61
|
+
center = Supernova::Coordinate.new(:lat => 47, :lng => 11)
|
62
|
+
circle = Supernova::Circle.new(:center => center, :radius_in_meters => 10)
|
63
|
+
:center.in.or_key_and_value(circle).should == "{!geofilt}"
|
64
|
+
end
|
65
|
+
|
60
66
|
end
|
61
67
|
|
62
68
|
describe "solr_filter_for", :wip => true do
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require "supernova/coordinate"
|
2
|
+
|
3
|
+
describe "Supernova::Coordinate" do
|
4
|
+
it "can be initialized" do
|
5
|
+
Supernova::Coordinate.new
|
6
|
+
end
|
7
|
+
|
8
|
+
it "allows setting of lat" do
|
9
|
+
Supernova::Coordinate.new(:lat => 10).lat.should == 10
|
10
|
+
end
|
11
|
+
|
12
|
+
it "allows setting of lng" do
|
13
|
+
Supernova::Coordinate.new(:lng => 10).lng.should == 10
|
14
|
+
end
|
15
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'spec_helper_ar'
|
2
2
|
require "ostruct"
|
3
3
|
|
4
4
|
describe "Supernova::SolrCriteria" do
|
@@ -203,6 +203,36 @@ describe "Supernova::SolrCriteria" do
|
|
203
203
|
end
|
204
204
|
end
|
205
205
|
|
206
|
+
let(:center) { Supernova::Coordinate.new(:lat => 10.1, :lng => 11.2) }
|
207
|
+
let(:circle) { Supernova::Circle.new(:center => center, :radius_in_meters => 100) }
|
208
|
+
let(:circle_criteria) { criteria.where(:center.in => circle) }
|
209
|
+
|
210
|
+
describe "geo_filter_in_with" do
|
211
|
+
it "finds the correct geo search filter" do
|
212
|
+
circle_criteria.geo_filter_in_with.should be_kind_of(Array)
|
213
|
+
circle_criteria.geo_filter_in_with.first.should == :center
|
214
|
+
circle_criteria.geo_filter_in_with.at(1).should == circle
|
215
|
+
end
|
216
|
+
|
217
|
+
it "returns nil by default" do
|
218
|
+
criteria.geo_filter_in_with.should be_nil
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
222
|
+
describe "searching with circle" do
|
223
|
+
it "sets the correct center" do
|
224
|
+
circle_criteria.to_params[:pt].should == "10.1,11.2"
|
225
|
+
end
|
226
|
+
|
227
|
+
it "sets the correct distance" do
|
228
|
+
circle_criteria.to_params[:d].should == 0.1
|
229
|
+
end
|
230
|
+
|
231
|
+
it "sets the sfield to location" do
|
232
|
+
circle_criteria.to_params[:sfield].should == "center"
|
233
|
+
end
|
234
|
+
end
|
235
|
+
|
206
236
|
describe "with a nearby search" do
|
207
237
|
let(:nearby_criteria) { Supernova::SolrCriteria.new.near(47, 11).within(10.kms) }
|
208
238
|
|
data/spec/supernova_spec.rb
CHANGED
data/supernova.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "supernova"
|
8
|
-
s.version = "0.7.
|
8
|
+
s.version = "0.7.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Tobias Schwab"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-03-12"
|
13
13
|
s.description = "Unified search scopes"
|
14
14
|
s.email = "tobias.schwab@dynport.de"
|
15
15
|
s.executables = ["start_solr"]
|
@@ -24,6 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
".rspec",
|
25
25
|
"Gemfile",
|
26
26
|
"Gemfile.lock",
|
27
|
+
"Guardfile",
|
27
28
|
"LICENSE.txt",
|
28
29
|
"README.rdoc",
|
29
30
|
"Rakefile",
|
@@ -32,8 +33,11 @@ Gem::Specification.new do |s|
|
|
32
33
|
"autotest/discover.rb",
|
33
34
|
"bin/start_solr",
|
34
35
|
"lib/supernova.rb",
|
36
|
+
"lib/supernova/attr_initializer.rb",
|
37
|
+
"lib/supernova/circle.rb",
|
35
38
|
"lib/supernova/collection.rb",
|
36
39
|
"lib/supernova/condition.rb",
|
40
|
+
"lib/supernova/coordinate.rb",
|
37
41
|
"lib/supernova/criteria.rb",
|
38
42
|
"lib/supernova/numeric_extensions.rb",
|
39
43
|
"lib/supernova/solr.rb",
|
@@ -81,8 +85,12 @@ Gem::Specification.new do |s|
|
|
81
85
|
"spec/database.sql",
|
82
86
|
"spec/integration/solr_spec.rb",
|
83
87
|
"spec/spec_helper.rb",
|
88
|
+
"spec/spec_helper_ar.rb",
|
89
|
+
"spec/supernova/attr_initializer_spec.rb",
|
90
|
+
"spec/supernova/circle_spec.rb",
|
84
91
|
"spec/supernova/collection_spec.rb",
|
85
92
|
"spec/supernova/condition_spec.rb",
|
93
|
+
"spec/supernova/coordinate_spec.rb",
|
86
94
|
"spec/supernova/criteria_spec.rb",
|
87
95
|
"spec/supernova/numeric_extensions_spec.rb",
|
88
96
|
"spec/supernova/solr_criteria_spec.rb",
|
@@ -95,7 +103,7 @@ Gem::Specification.new do |s|
|
|
95
103
|
s.homepage = "http://github.com/dynport/supernova"
|
96
104
|
s.licenses = ["MIT"]
|
97
105
|
s.require_paths = ["lib"]
|
98
|
-
s.rubygems_version = "1.8.
|
106
|
+
s.rubygems_version = "1.8.16"
|
99
107
|
s.summary = "Unified search scopes"
|
100
108
|
|
101
109
|
if s.respond_to? :specification_version then
|
@@ -113,6 +121,8 @@ Gem::Specification.new do |s|
|
|
113
121
|
s.add_development_dependency(%q<ZenTest>, ["= 4.5.0"])
|
114
122
|
s.add_development_dependency(%q<geokit>, [">= 0"])
|
115
123
|
s.add_development_dependency(%q<guard>, [">= 0"])
|
124
|
+
s.add_development_dependency(%q<guard-bundler>, [">= 0"])
|
125
|
+
s.add_development_dependency(%q<guard-rspec>, [">= 0"])
|
116
126
|
s.add_development_dependency(%q<rb-fsevent>, [">= 0"])
|
117
127
|
s.add_development_dependency(%q<growl>, [">= 0"])
|
118
128
|
s.add_development_dependency(%q<growl_notify>, [">= 0"])
|
@@ -134,6 +144,8 @@ Gem::Specification.new do |s|
|
|
134
144
|
s.add_dependency(%q<ZenTest>, ["= 4.5.0"])
|
135
145
|
s.add_dependency(%q<geokit>, [">= 0"])
|
136
146
|
s.add_dependency(%q<guard>, [">= 0"])
|
147
|
+
s.add_dependency(%q<guard-bundler>, [">= 0"])
|
148
|
+
s.add_dependency(%q<guard-rspec>, [">= 0"])
|
137
149
|
s.add_dependency(%q<rb-fsevent>, [">= 0"])
|
138
150
|
s.add_dependency(%q<growl>, [">= 0"])
|
139
151
|
s.add_dependency(%q<growl_notify>, [">= 0"])
|
@@ -156,6 +168,8 @@ Gem::Specification.new do |s|
|
|
156
168
|
s.add_dependency(%q<ZenTest>, ["= 4.5.0"])
|
157
169
|
s.add_dependency(%q<geokit>, [">= 0"])
|
158
170
|
s.add_dependency(%q<guard>, [">= 0"])
|
171
|
+
s.add_dependency(%q<guard-bundler>, [">= 0"])
|
172
|
+
s.add_dependency(%q<guard-rspec>, [">= 0"])
|
159
173
|
s.add_dependency(%q<rb-fsevent>, [">= 0"])
|
160
174
|
s.add_dependency(%q<growl>, [">= 0"])
|
161
175
|
s.add_dependency(%q<growl_notify>, [">= 0"])
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: supernova
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.6
|
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-
|
12
|
+
date: 2012-03-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: will_paginate
|
16
|
-
requirement: &
|
16
|
+
requirement: &70106658325520 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70106658325520
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: json
|
27
|
-
requirement: &
|
27
|
+
requirement: &70106658325040 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70106658325040
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activesupport
|
38
|
-
requirement: &
|
38
|
+
requirement: &70106658324560 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70106658324560
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: typhoeus
|
49
|
-
requirement: &
|
49
|
+
requirement: &70106658340460 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - =
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 0.3.3
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70106658340460
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: i18n
|
60
|
-
requirement: &
|
60
|
+
requirement: &70106658339980 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70106658339980
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: activerecord
|
71
|
-
requirement: &
|
71
|
+
requirement: &70106658339120 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 3.0.7
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70106658339120
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: ruby-debug19
|
82
|
-
requirement: &
|
82
|
+
requirement: &70106658338120 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70106658338120
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: mysql2
|
93
|
-
requirement: &
|
93
|
+
requirement: &70106658337240 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ~>
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: 0.2.18
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70106658337240
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: ZenTest
|
104
|
-
requirement: &
|
104
|
+
requirement: &70106658336500 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - =
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: 4.5.0
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *70106658336500
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: geokit
|
115
|
-
requirement: &
|
115
|
+
requirement: &70106658335440 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ! '>='
|
@@ -120,10 +120,10 @@ dependencies:
|
|
120
120
|
version: '0'
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *70106658335440
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: guard
|
126
|
-
requirement: &
|
126
|
+
requirement: &70106658334340 !ruby/object:Gem::Requirement
|
127
127
|
none: false
|
128
128
|
requirements:
|
129
129
|
- - ! '>='
|
@@ -131,10 +131,32 @@ dependencies:
|
|
131
131
|
version: '0'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
|
-
version_requirements: *
|
134
|
+
version_requirements: *70106658334340
|
135
|
+
- !ruby/object:Gem::Dependency
|
136
|
+
name: guard-bundler
|
137
|
+
requirement: &70106658333460 !ruby/object:Gem::Requirement
|
138
|
+
none: false
|
139
|
+
requirements:
|
140
|
+
- - ! '>='
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
143
|
+
type: :development
|
144
|
+
prerelease: false
|
145
|
+
version_requirements: *70106658333460
|
146
|
+
- !ruby/object:Gem::Dependency
|
147
|
+
name: guard-rspec
|
148
|
+
requirement: &70106658332780 !ruby/object:Gem::Requirement
|
149
|
+
none: false
|
150
|
+
requirements:
|
151
|
+
- - ! '>='
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
type: :development
|
155
|
+
prerelease: false
|
156
|
+
version_requirements: *70106658332780
|
135
157
|
- !ruby/object:Gem::Dependency
|
136
158
|
name: rb-fsevent
|
137
|
-
requirement: &
|
159
|
+
requirement: &70106658348640 !ruby/object:Gem::Requirement
|
138
160
|
none: false
|
139
161
|
requirements:
|
140
162
|
- - ! '>='
|
@@ -142,10 +164,10 @@ dependencies:
|
|
142
164
|
version: '0'
|
143
165
|
type: :development
|
144
166
|
prerelease: false
|
145
|
-
version_requirements: *
|
167
|
+
version_requirements: *70106658348640
|
146
168
|
- !ruby/object:Gem::Dependency
|
147
169
|
name: growl
|
148
|
-
requirement: &
|
170
|
+
requirement: &70106658348160 !ruby/object:Gem::Requirement
|
149
171
|
none: false
|
150
172
|
requirements:
|
151
173
|
- - ! '>='
|
@@ -153,10 +175,10 @@ dependencies:
|
|
153
175
|
version: '0'
|
154
176
|
type: :development
|
155
177
|
prerelease: false
|
156
|
-
version_requirements: *
|
178
|
+
version_requirements: *70106658348160
|
157
179
|
- !ruby/object:Gem::Dependency
|
158
180
|
name: growl_notify
|
159
|
-
requirement: &
|
181
|
+
requirement: &70106658347680 !ruby/object:Gem::Requirement
|
160
182
|
none: false
|
161
183
|
requirements:
|
162
184
|
- - ! '>='
|
@@ -164,10 +186,10 @@ dependencies:
|
|
164
186
|
version: '0'
|
165
187
|
type: :development
|
166
188
|
prerelease: false
|
167
|
-
version_requirements: *
|
189
|
+
version_requirements: *70106658347680
|
168
190
|
- !ruby/object:Gem::Dependency
|
169
191
|
name: autotest
|
170
|
-
requirement: &
|
192
|
+
requirement: &70106658345480 !ruby/object:Gem::Requirement
|
171
193
|
none: false
|
172
194
|
requirements:
|
173
195
|
- - ! '>='
|
@@ -175,10 +197,10 @@ dependencies:
|
|
175
197
|
version: '0'
|
176
198
|
type: :development
|
177
199
|
prerelease: false
|
178
|
-
version_requirements: *
|
200
|
+
version_requirements: *70106658345480
|
179
201
|
- !ruby/object:Gem::Dependency
|
180
202
|
name: autotest-growl
|
181
|
-
requirement: &
|
203
|
+
requirement: &70106658341980 !ruby/object:Gem::Requirement
|
182
204
|
none: false
|
183
205
|
requirements:
|
184
206
|
- - ! '>='
|
@@ -186,10 +208,10 @@ dependencies:
|
|
186
208
|
version: '0'
|
187
209
|
type: :development
|
188
210
|
prerelease: false
|
189
|
-
version_requirements: *
|
211
|
+
version_requirements: *70106658341980
|
190
212
|
- !ruby/object:Gem::Dependency
|
191
213
|
name: rspec
|
192
|
-
requirement: &
|
214
|
+
requirement: &70106658341500 !ruby/object:Gem::Requirement
|
193
215
|
none: false
|
194
216
|
requirements:
|
195
217
|
- - ~>
|
@@ -197,10 +219,10 @@ dependencies:
|
|
197
219
|
version: 2.8.0
|
198
220
|
type: :development
|
199
221
|
prerelease: false
|
200
|
-
version_requirements: *
|
222
|
+
version_requirements: *70106658341500
|
201
223
|
- !ruby/object:Gem::Dependency
|
202
224
|
name: bundler
|
203
|
-
requirement: &
|
225
|
+
requirement: &70106658340880 !ruby/object:Gem::Requirement
|
204
226
|
none: false
|
205
227
|
requirements:
|
206
228
|
- - ~>
|
@@ -208,10 +230,10 @@ dependencies:
|
|
208
230
|
version: 1.0.0
|
209
231
|
type: :development
|
210
232
|
prerelease: false
|
211
|
-
version_requirements: *
|
233
|
+
version_requirements: *70106658340880
|
212
234
|
- !ruby/object:Gem::Dependency
|
213
235
|
name: jeweler
|
214
|
-
requirement: &
|
236
|
+
requirement: &70106658356540 !ruby/object:Gem::Requirement
|
215
237
|
none: false
|
216
238
|
requirements:
|
217
239
|
- - ~>
|
@@ -219,10 +241,10 @@ dependencies:
|
|
219
241
|
version: 1.6.0
|
220
242
|
type: :development
|
221
243
|
prerelease: false
|
222
|
-
version_requirements: *
|
244
|
+
version_requirements: *70106658356540
|
223
245
|
- !ruby/object:Gem::Dependency
|
224
246
|
name: rcov
|
225
|
-
requirement: &
|
247
|
+
requirement: &70106658355840 !ruby/object:Gem::Requirement
|
226
248
|
none: false
|
227
249
|
requirements:
|
228
250
|
- - ! '>='
|
@@ -230,7 +252,7 @@ dependencies:
|
|
230
252
|
version: '0'
|
231
253
|
type: :development
|
232
254
|
prerelease: false
|
233
|
-
version_requirements: *
|
255
|
+
version_requirements: *70106658355840
|
234
256
|
description: Unified search scopes
|
235
257
|
email: tobias.schwab@dynport.de
|
236
258
|
executables:
|
@@ -246,6 +268,7 @@ files:
|
|
246
268
|
- .rspec
|
247
269
|
- Gemfile
|
248
270
|
- Gemfile.lock
|
271
|
+
- Guardfile
|
249
272
|
- LICENSE.txt
|
250
273
|
- README.rdoc
|
251
274
|
- Rakefile
|
@@ -254,8 +277,11 @@ files:
|
|
254
277
|
- autotest/discover.rb
|
255
278
|
- bin/start_solr
|
256
279
|
- lib/supernova.rb
|
280
|
+
- lib/supernova/attr_initializer.rb
|
281
|
+
- lib/supernova/circle.rb
|
257
282
|
- lib/supernova/collection.rb
|
258
283
|
- lib/supernova/condition.rb
|
284
|
+
- lib/supernova/coordinate.rb
|
259
285
|
- lib/supernova/criteria.rb
|
260
286
|
- lib/supernova/numeric_extensions.rb
|
261
287
|
- lib/supernova/solr.rb
|
@@ -303,8 +329,12 @@ files:
|
|
303
329
|
- spec/database.sql
|
304
330
|
- spec/integration/solr_spec.rb
|
305
331
|
- spec/spec_helper.rb
|
332
|
+
- spec/spec_helper_ar.rb
|
333
|
+
- spec/supernova/attr_initializer_spec.rb
|
334
|
+
- spec/supernova/circle_spec.rb
|
306
335
|
- spec/supernova/collection_spec.rb
|
307
336
|
- spec/supernova/condition_spec.rb
|
337
|
+
- spec/supernova/coordinate_spec.rb
|
308
338
|
- spec/supernova/criteria_spec.rb
|
309
339
|
- spec/supernova/numeric_extensions_spec.rb
|
310
340
|
- spec/supernova/solr_criteria_spec.rb
|
@@ -328,7 +358,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
328
358
|
version: '0'
|
329
359
|
segments:
|
330
360
|
- 0
|
331
|
-
hash:
|
361
|
+
hash: 1564723688025824690
|
332
362
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
333
363
|
none: false
|
334
364
|
requirements:
|
@@ -337,7 +367,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
337
367
|
version: '0'
|
338
368
|
requirements: []
|
339
369
|
rubyforge_project:
|
340
|
-
rubygems_version: 1.8.
|
370
|
+
rubygems_version: 1.8.16
|
341
371
|
signing_key:
|
342
372
|
specification_version: 3
|
343
373
|
summary: Unified search scopes
|