acts_as_ferret 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. data/README +6 -0
  2. data/doc/demo/Gemfile +18 -0
  3. data/doc/demo/Rakefile +3 -6
  4. data/doc/demo/app/controllers/application_controller.rb +3 -0
  5. data/doc/demo/app/helpers/application_helper.rb +0 -1
  6. data/doc/demo/app/views/admin/backend/search.rhtml +1 -1
  7. data/doc/demo/app/views/contents/edit.rhtml +1 -1
  8. data/doc/demo/app/views/contents/new.rhtml +1 -1
  9. data/doc/demo/app/views/searches/search.html.erb +1 -1
  10. data/doc/demo/config.ru +4 -0
  11. data/doc/demo/config/application.rb +57 -0
  12. data/doc/demo/config/boot.rb +4 -107
  13. data/doc/demo/config/database.yml +16 -24
  14. data/doc/demo/config/environment.rb +4 -68
  15. data/doc/demo/config/environments/development.rb +22 -12
  16. data/doc/demo/config/environments/production.rb +43 -13
  17. data/doc/demo/config/environments/test.rb +32 -16
  18. data/doc/demo/config/initializers/backtrace_silencers.rb +7 -0
  19. data/doc/demo/config/initializers/inflections.rb +10 -0
  20. data/doc/demo/config/initializers/mime_types.rb +5 -0
  21. data/doc/demo/config/initializers/secret_token.rb +7 -0
  22. data/doc/demo/config/initializers/session_store.rb +13 -0
  23. data/doc/demo/config/locales/en.yml +5 -0
  24. data/doc/demo/config/routes.rb +4 -5
  25. data/doc/demo/public/404.html +23 -5
  26. data/doc/demo/public/422.html +26 -0
  27. data/doc/demo/public/500.html +23 -5
  28. data/doc/demo/public/images/rails.png +0 -0
  29. data/doc/demo/public/index.html +50 -88
  30. data/doc/demo/public/javascripts/application.js +2 -0
  31. data/doc/demo/public/javascripts/controls.js +965 -0
  32. data/doc/demo/public/javascripts/dragdrop.js +974 -0
  33. data/doc/demo/public/javascripts/effects.js +1123 -0
  34. data/doc/demo/public/javascripts/prototype.js +6001 -0
  35. data/doc/demo/public/javascripts/rails.js +191 -0
  36. data/doc/demo/public/robots.txt +5 -1
  37. data/doc/demo/script/rails +6 -0
  38. data/doc/demo/test/functional/admin/backend_controller_test.rb +1 -1
  39. data/doc/demo/test/functional/contents_controller_test.rb +1 -2
  40. data/doc/demo/test/functional/searches_controller_test.rb +1 -2
  41. data/doc/demo/test/performance/browsing_test.rb +9 -0
  42. data/doc/demo/test/test_helper.rb +13 -18
  43. data/doc/demo/test/unit/comment_test.rb +4 -4
  44. data/doc/demo/test/unit/content_test.rb +6 -4
  45. data/doc/demo/test/unit/ferret_result_test.rb +2 -3
  46. data/doc/demo/test/unit/multi_index_test.rb +2 -3
  47. data/doc/demo/test/unit/remote_index_test.rb +2 -2
  48. data/doc/demo/test/unit/shared_index1_test.rb +2 -3
  49. data/doc/demo/test/unit/shared_index2_test.rb +2 -3
  50. data/doc/demo/test/unit/sort_test.rb +2 -2
  51. data/doc/demo/test/unit/special_content_test.rb +3 -4
  52. data/lib/acts_as_ferret.rb +17 -3
  53. data/lib/acts_as_ferret/blank_slate.rb +11 -10
  54. data/lib/acts_as_ferret/class_methods.rb +9 -7
  55. data/lib/acts_as_ferret/ferret_find_methods.rb +5 -1
  56. data/lib/acts_as_ferret/ferret_result.rb +11 -4
  57. data/lib/acts_as_ferret/multi_index.rb +8 -1
  58. data/lib/acts_as_ferret/search_results.rb +0 -1
  59. data/lib/acts_as_ferret/version.rb +1 -1
  60. metadata +23 -44
  61. data/doc/demo/test/fixtures/remote_contents.yml +0 -9
  62. data/doc/demo/vendor/plugins/will_paginate/LICENSE +0 -18
  63. data/doc/demo/vendor/plugins/will_paginate/README +0 -108
  64. data/doc/demo/vendor/plugins/will_paginate/Rakefile +0 -23
  65. data/doc/demo/vendor/plugins/will_paginate/init.rb +0 -21
  66. data/doc/demo/vendor/plugins/will_paginate/lib/will_paginate/collection.rb +0 -45
  67. data/doc/demo/vendor/plugins/will_paginate/lib/will_paginate/core_ext.rb +0 -44
  68. data/doc/demo/vendor/plugins/will_paginate/lib/will_paginate/finder.rb +0 -159
  69. data/doc/demo/vendor/plugins/will_paginate/lib/will_paginate/view_helpers.rb +0 -95
  70. data/doc/demo/vendor/plugins/will_paginate/test/array_pagination_test.rb +0 -23
  71. data/doc/demo/vendor/plugins/will_paginate/test/boot.rb +0 -27
  72. data/doc/demo/vendor/plugins/will_paginate/test/console +0 -10
  73. data/doc/demo/vendor/plugins/will_paginate/test/finder_test.rb +0 -219
  74. data/doc/demo/vendor/plugins/will_paginate/test/fixtures/admin.rb +0 -3
  75. data/doc/demo/vendor/plugins/will_paginate/test/fixtures/companies.yml +0 -24
  76. data/doc/demo/vendor/plugins/will_paginate/test/fixtures/company.rb +0 -23
  77. data/doc/demo/vendor/plugins/will_paginate/test/fixtures/developer.rb +0 -11
  78. data/doc/demo/vendor/plugins/will_paginate/test/fixtures/developers_projects.yml +0 -13
  79. data/doc/demo/vendor/plugins/will_paginate/test/fixtures/project.rb +0 -4
  80. data/doc/demo/vendor/plugins/will_paginate/test/fixtures/projects.yml +0 -7
  81. data/doc/demo/vendor/plugins/will_paginate/test/fixtures/replies.yml +0 -20
  82. data/doc/demo/vendor/plugins/will_paginate/test/fixtures/reply.rb +0 -5
  83. data/doc/demo/vendor/plugins/will_paginate/test/fixtures/schema.sql +0 -44
  84. data/doc/demo/vendor/plugins/will_paginate/test/fixtures/topic.rb +0 -19
  85. data/doc/demo/vendor/plugins/will_paginate/test/fixtures/topics.yml +0 -30
  86. data/doc/demo/vendor/plugins/will_paginate/test/fixtures/user.rb +0 -2
  87. data/doc/demo/vendor/plugins/will_paginate/test/fixtures/users.yml +0 -35
  88. data/doc/demo/vendor/plugins/will_paginate/test/helper.rb +0 -42
  89. data/doc/demo/vendor/plugins/will_paginate/test/lib/activerecord_test_connector.rb +0 -64
  90. data/doc/demo/vendor/plugins/will_paginate/test/lib/load_fixtures.rb +0 -10
  91. data/doc/demo/vendor/plugins/will_paginate/test/pagination_test.rb +0 -136
@@ -1,42 +0,0 @@
1
- require 'test/unit'
2
- require 'rubygems'
3
-
4
- # gem install redgreen for colored test output
5
- begin require 'redgreen'; rescue LoadError; end
6
-
7
- dirname = File.dirname(__FILE__)
8
- require File.join(dirname, 'boot') unless defined?(ActiveRecord)
9
- require 'action_controller/test_process'
10
- require File.join(dirname, 'lib', 'activerecord_test_connector')
11
-
12
- # add plugin's main lib dir to load paths
13
- $:.unshift(File.join(dirname, '..', 'lib')).uniq!
14
-
15
- # Test case for inheritance
16
- class ActiveRecordTestCase < Test::Unit::TestCase
17
- # Set our fixture path
18
- if ActiveRecordTestConnector.able_to_connect
19
- self.fixture_path = File.join(File.dirname(__FILE__), 'fixtures')
20
- self.use_transactional_fixtures = false
21
- end
22
-
23
- def self.fixtures(*args)
24
- super if ActiveRecordTestConnector.connected
25
- end
26
-
27
- def run(*args)
28
- super if ActiveRecordTestConnector.connected
29
- end
30
-
31
- # Default so Test::Unit::TestCase doesn't complain
32
- def test_truth
33
- end
34
- end
35
-
36
- ActiveRecordTestConnector.setup
37
- ActionController::Routing::Routes.reload rescue nil
38
- ActionController::Routing::Routes.draw do |map|
39
- map.connect ':controller/:action/:id'
40
- end
41
-
42
- ActionController::Base.perform_caching = false
@@ -1,64 +0,0 @@
1
- class ActiveRecordTestConnector
2
- cattr_accessor :able_to_connect
3
- cattr_accessor :connected
4
-
5
- # Set our defaults
6
- self.connected = false
7
- self.able_to_connect = true
8
-
9
- def self.setup
10
- unless self.connected || !self.able_to_connect
11
- setup_connection
12
- load_schema
13
- require_fixture_models
14
- self.connected = true
15
- end
16
- rescue Exception => e # errors from ActiveRecord setup
17
- $stderr.puts "\nSkipping ActiveRecord assertion tests: #{e}"
18
- #$stderr.puts " #{e.backtrace.join("\n ")}\n"
19
- self.able_to_connect = false
20
- end
21
-
22
- private
23
-
24
- def self.setup_connection
25
- if Object.const_defined?(:ActiveRecord)
26
- defaults = { :database => ':memory:' }
27
- # ActiveRecord::Base.logger = Logger.new STDOUT
28
-
29
- begin
30
- options = defaults.merge :adapter => 'sqlite3', :timeout => 500
31
- ActiveRecord::Base.establish_connection(options)
32
- ActiveRecord::Base.configurations = { 'sqlite3_ar_integration' => options }
33
- ActiveRecord::Base.connection
34
- rescue Exception # errors from establishing a connection
35
- $stderr.puts 'SQLite 3 unavailable; trying SQLite 2.'
36
- options = defaults.merge :adapter => 'sqlite'
37
- ActiveRecord::Base.establish_connection(options)
38
- ActiveRecord::Base.configurations = { 'sqlite2_ar_integration' => options }
39
- ActiveRecord::Base.connection
40
- end
41
-
42
- unless Object.const_defined?(:QUOTED_TYPE)
43
- Object.send :const_set, :QUOTED_TYPE, ActiveRecord::Base.connection.quote_column_name('type')
44
- end
45
- else
46
- raise "Can't setup connection since ActiveRecord isn't loaded."
47
- end
48
- end
49
-
50
- # Load actionpack sqlite tables
51
- def self.load_schema
52
- ActiveRecord::Base.silence do
53
- File.read(File.dirname(__FILE__) + "/../fixtures/schema.sql").split(';').each do |sql|
54
- ActiveRecord::Base.connection.execute(sql) unless sql.blank?
55
- end
56
- end
57
- end
58
-
59
- def self.require_fixture_models
60
- models = Dir.glob(File.dirname(__FILE__) + "/../fixtures/*.rb")
61
- models = (models.grep(/user.rb/) + models).uniq
62
- models.each {|f| require f}
63
- end
64
- end
@@ -1,10 +0,0 @@
1
- dirname = File.dirname(__FILE__)
2
- require File.join(dirname, '..', 'boot')
3
- require File.join(dirname, 'activerecord_test_connector')
4
-
5
- # setup the connection
6
- ActiveRecordTestConnector.setup
7
-
8
- # load all fixtures
9
- fixture_path = File.join(dirname, '..', 'fixtures')
10
- Fixtures.create_fixtures(fixture_path, ActiveRecord::Base.connection.tables)
@@ -1,136 +0,0 @@
1
- require File.dirname(__FILE__) + '/helper'
2
- require File.dirname(__FILE__) + '/../init'
3
-
4
- class PaginationTest < ActiveRecordTestCase
5
- fixtures :users
6
-
7
- class PaginationController < ActionController::Base
8
- def list_developers
9
- @developers = Developer.paginate :page => params[params[:param_name] || :page],
10
- :per_page => (params[:per_page] || 4).to_i
11
-
12
- @options = params.except(:count, :order)
13
- WillPaginate::ViewHelpers.pagination_options.keys.each { |key| params.delete key }
14
-
15
- render :inline => '<%= will_paginate @developers, @options %>'
16
- end
17
-
18
- def no_pagination
19
- @developers = Developer.paginate :page => params[:page], :per_page => 15
20
- render :inline => '<%= will_paginate @developers %>'
21
- end
22
-
23
- protected
24
- def rescue_errors(e) raise e end
25
- def rescue_action(e) raise e end
26
- end
27
-
28
- def setup
29
- @controller = PaginationController.new
30
- @request = ActionController::TestRequest.new
31
- @response = ActionController::TestResponse.new
32
- super
33
- end
34
-
35
- def test_will_paginate
36
- get :list_developers
37
-
38
- entries = assigns :developers
39
- assert entries
40
- assert_equal 4, entries.size
41
-
42
- assert_select 'div.pagination', 1, 'no main DIV' do |el|
43
- assert_select 'a[href]', 3 do |elements|
44
- validate_page_numbers [2,3,2], elements
45
- assert_select elements.last, ':last-child', "Next &raquo;"
46
- end
47
- assert_select 'span', 2
48
- assert_select 'span.disabled:first-child', "&laquo; Previous"
49
- assert_select 'span.current', entries.current_page.to_s
50
- end
51
- end
52
-
53
- def test_will_paginate_with_options
54
- get :list_developers, :page => 2, :class => 'will_paginate', :prev_label => 'Prev', :next_label => 'Next'
55
- assert_response :success
56
-
57
- entries = assigns :developers
58
- assert entries
59
- assert_equal 4, entries.size
60
-
61
- assert_select 'div.will_paginate', 1, 'no main DIV' do
62
- assert_select 'a[href]', 4 do |elements|
63
- validate_page_numbers [nil,nil,3,3], elements
64
- assert_select elements.first, 'a', "Prev"
65
- assert_select elements.last, 'a', "Next"
66
- end
67
- assert_select 'span.current', entries.current_page.to_s
68
- end
69
- end
70
-
71
- def test_will_paginate_preserves_parameters
72
- get :list_developers, :foo => { :bar => 'baz' }
73
- assert_response :success
74
-
75
- assert_select 'div.pagination', 1, 'no main DIV' do
76
- assert_select 'a[href]', 3 do |elements|
77
- elements.each do |el|
78
- assert_match /foo%5Bbar%5D=baz/, el['href']
79
- end
80
- end
81
- end
82
- end
83
-
84
- def test_will_paginate_with_custom_page_param
85
- get :list_developers, :developers_page => 2, :param_name => :developers_page
86
- assert_response :success
87
-
88
- entries = assigns :developers
89
- assert entries
90
- assert_equal 4, entries.size
91
-
92
- assert_select 'div.pagination', 1, 'no main DIV' do
93
- assert_select 'a[href]', 4 do |elements|
94
- validate_page_numbers [nil,nil,3,3], elements, :developers_page
95
- end
96
- assert_select 'span.current', entries.current_page.to_s
97
- end
98
- end
99
-
100
- def test_will_paginate_windows
101
- get :list_developers, :page => 6, :per_page => 1, :inner_window => 2
102
- assert_response :success
103
-
104
- entries = assigns :developers
105
- assert entries
106
- assert_equal 1, entries.size
107
-
108
- assert_select 'div.pagination', 1, 'no main DIV' do
109
- assert_select 'a[href]', 10 do |elements|
110
- validate_page_numbers [5,nil,2,4,5,7,8,10,11,7], elements
111
- assert_select elements.first, 'a', "&laquo; Previous"
112
- assert_select elements.last, 'a', "Next &raquo;"
113
- end
114
- assert_select 'span.current', entries.current_page.to_s
115
- end
116
- end
117
-
118
- def test_no_pagination
119
- get :no_pagination
120
- entries = assigns :developers
121
- assert_equal 1, entries.page_count
122
- assert_equal Developer.count, entries.size
123
-
124
- assert_select 'div', false
125
- assert_equal '', @response.body
126
- end
127
-
128
- protected
129
-
130
- def validate_page_numbers expected, links, param_name = :page
131
- assert_equal(expected, links.map { |e|
132
- e['href'] =~ /\W#{param_name}=([^&]*)/
133
- $1 ? $1.to_i : $1
134
- })
135
- end
136
- end