Commit b1d08c1c81f806871319775a64c62cd322c64487

Authored by Braulio Bhavamitra
1 parent bcd5cd44

solr-plugin: port to rails 3

plugins/solr/config/solr.yml.dist
... ... @@ -9,18 +9,18 @@
9 9 production:
10 10 url: http://127.0.0.1:8983/solr
11 11 jvm_options: -server -Xmx192M -Xms64M
12   - timeout: 0
  12 + timeout: 600
13 13 data_path: /var/lib/noosfero-data/solr/index
14 14  
15 15 development:
16 16 url: http://0.0.0.0:8982/solr
17 17 jvm_options: -server -Xmx128M -Xms16M
18   - timeout: 0
  18 + timeout: 600
19 19  
20 20 test: &TEST
21 21 url: http://0.0.0.0:8981/solr
22 22 jvm_options: -server -Xmx128M -Xms16M
23   - timeout: 0
  23 + timeout: 600
24 24  
25 25 cucumber:
26 26 <<: *TEST
... ...
plugins/solr/install.rb
1   -raise "Not ready yet. Some tests are failing."
  1 +#raise "Not ready yet. Some tests are failing."
2 2 require 'rubygems'
3 3 require 'rake'
4 4  
... ...
plugins/solr/lib/ext/product.rb
... ... @@ -27,7 +27,8 @@ class Product
27 27 {:name => {:type => :text, :boost => 2.0}},
28 28 {:description => :text}, {:category_full_name => :text},
29 29 # filtered fields
30   - {:solr_plugin_public => :boolean}, {:environment_id => :integer},
  30 + {:solr_plugin_public => :boolean},
  31 + {:environment_id => :integer}, {:profile_id => :integer},
31 32 {:enabled => :boolean}, {:solr_plugin_category_filter => :integer},
32 33 # ordered/query-boosted fields
33 34 {:solr_plugin_price_sortable => :decimal}, {:solr_plugin_name_sortable => :string},
... ...
plugins/solr/lib/ext/profile.rb
... ... @@ -42,7 +42,7 @@ class Profile
42 42 handle_asynchronously :solr_save
43 43 handle_asynchronously :solr_destroy
44 44  
45   - class_inheritable_accessor :solr_plugin_extra_index_methods
  45 + class_attribute :solr_plugin_extra_index_methods
46 46 self.solr_plugin_extra_index_methods = []
47 47  
48 48 def solr_plugin_extra_data_for_index
... ...
plugins/solr/lib/solr_plugin.rb
... ... @@ -33,8 +33,8 @@ class SolrPlugin &lt; Noosfero::Plugin
33 33  
34 34 solr_options = solr_options(class_asset(klass), category)
35 35 solr_options[:filter_queries] ||= []
36   - solr_options[:filter_queries] += scopes_to_solr_filters scope, klass, options
37   - solr_options.merge! products_options(user) if klass == Product and empty_query
  36 + solr_options[:filter_queries] += scopes_to_solr_options scope, klass, options
  37 + solr_options.merge! products_options(user) if asset == :products and empty_query
38 38 solr_options.merge! options.except(:category, :filter)
39 39  
40 40 scope.find_by_contents query, paginate_options, solr_options
... ... @@ -42,14 +42,14 @@ class SolrPlugin &lt; Noosfero::Plugin
42 42  
43 43 protected
44 44  
45   - def scopes_to_solr_filters scope, klass = nil, options = {}
  45 + def scopes_to_solr_options scope, klass = nil, options = {}
46 46 filter_queries = []
47 47 klass ||= scope.base_class
48 48 solr_fields = klass.configuration[:solr_fields].keys
49 49 scopes_applied = scope.scopes_applied.dup rescue [] #rescue association and class direct filtering
50 50  
51   - scope.current_scoped_methods[:create].each do |attr, value|
52   - next unless solr_fields.include? attr.to_sym
  51 + scope.scope_attributes.each do |attr, value|
  52 + raise "Non-indexed attribute '#{attr}' speficied in scope_attributes" unless solr_fields.include? attr.to_sym
53 53  
54 54 # if the filter is present here, then prefer it
55 55 scopes_applied.reject!{ |name| name == attr.to_sym }
... ...
plugins/solr/vendor/plugins/acts_as_solr_reloaded/lib/tasks/test.rake
... ... @@ -1,45 +0,0 @@
1   -
2   -desc "Default Task"
3   -task :default => [:test]
4   -
5   -desc "Runs the unit tests"
6   -task :test => "test:unit"
7   -
8   -namespace :test do
9   -
10   - task :migrate do
11   - ActiveRecord::Base.logger = Logger.new(STDOUT)
12   - ActiveRecord::Migrator.migrate("test/db/migrate/", ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
13   - end
14   -
15   - task :setup do
16   - DB ||= 'sqlite'
17   - puts "Using " + DB
18   - %x(mysql -u#{MYSQL_USER} < #{File.dirname(__FILE__) + "/test/fixtures/db_definitions/mysql.sql"}) if DB == 'mysql'
19   -
20   - Rake::Task["test:migrate"].invoke
21   - end
22   -
23   - desc 'Measures test coverage using rcov'
24   - task :rcov => :setup do
25   - rm_f "coverage"
26   - rm_f "coverage.data"
27   - rcov = "rcov --rails --aggregate coverage.data --text-summary -Ilib"
28   -
29   - system("#{rcov} --html #{Dir.glob('test/**/*_shoulda.rb').join(' ')}")
30   - system("open coverage/index.html") if PLATFORM['darwin']
31   - end
32   -
33   - desc 'Runs the functional tests, testing integration with Solr'
34   - Rake::TestTask.new(:functional => :setup) do |t|
35   - t.pattern = "test/functional/*_test.rb"
36   - t.verbose = true
37   - end
38   -
39   - desc "Unit tests"
40   - Rake::TestTask.new(:unit => :setup) do |t|
41   - t.libs << 'test/unit'
42   - t.pattern = "test/unit/*_shoulda.rb"
43   - t.verbose = true
44   - end
45   -end