searchlogic-heroku 2.4.19

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.
Files changed (35) hide show
  1. data/.gitignore +7 -0
  2. data/LICENSE +20 -0
  3. data/README.rdoc +308 -0
  4. data/Rakefile +35 -0
  5. data/VERSION.yml +5 -0
  6. data/init.rb +1 -0
  7. data/lib/searchlogic.rb +56 -0
  8. data/lib/searchlogic/active_record/association_proxy.rb +19 -0
  9. data/lib/searchlogic/active_record/consistency.rb +49 -0
  10. data/lib/searchlogic/active_record/named_scope_tools.rb +101 -0
  11. data/lib/searchlogic/core_ext/object.rb +43 -0
  12. data/lib/searchlogic/core_ext/proc.rb +17 -0
  13. data/lib/searchlogic/named_scopes/alias_scope.rb +67 -0
  14. data/lib/searchlogic/named_scopes/association_conditions.rb +131 -0
  15. data/lib/searchlogic/named_scopes/association_ordering.rb +44 -0
  16. data/lib/searchlogic/named_scopes/conditions.rb +226 -0
  17. data/lib/searchlogic/named_scopes/or_conditions.rb +141 -0
  18. data/lib/searchlogic/named_scopes/ordering.rb +48 -0
  19. data/lib/searchlogic/rails_helpers.rb +79 -0
  20. data/lib/searchlogic/search.rb +251 -0
  21. data/rails/init.rb +1 -0
  22. data/searchlogic.gemspec +89 -0
  23. data/spec/searchlogic/active_record/association_proxy_spec.rb +23 -0
  24. data/spec/searchlogic/active_record/consistency_spec.rb +28 -0
  25. data/spec/searchlogic/core_ext/object_spec.rb +9 -0
  26. data/spec/searchlogic/core_ext/proc_spec.rb +8 -0
  27. data/spec/searchlogic/named_scopes/alias_scope_spec.rb +23 -0
  28. data/spec/searchlogic/named_scopes/association_conditions_spec.rb +198 -0
  29. data/spec/searchlogic/named_scopes/association_ordering_spec.rb +27 -0
  30. data/spec/searchlogic/named_scopes/conditions_spec.rb +319 -0
  31. data/spec/searchlogic/named_scopes/or_conditions_spec.rb +66 -0
  32. data/spec/searchlogic/named_scopes/ordering_spec.rb +34 -0
  33. data/spec/searchlogic/search_spec.rb +459 -0
  34. data/spec/spec_helper.rb +132 -0
  35. metadata +128 -0
@@ -0,0 +1,132 @@
1
+ require 'spec'
2
+ require 'rubygems'
3
+ require 'ruby-debug'
4
+ require 'active_record'
5
+
6
+ ENV['TZ'] = 'UTC'
7
+ Time.zone = 'Eastern Time (US & Canada)'
8
+
9
+ ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
10
+ ActiveRecord::Base.configurations = true
11
+
12
+ ActiveRecord::Schema.verbose = false
13
+ ActiveRecord::Schema.define(:version => 1) do
14
+ create_table :audits do |t|
15
+ t.string :auditable_type
16
+ t.integer :auditable_id
17
+ end
18
+
19
+ create_table :companies do |t|
20
+ t.datetime :created_at
21
+ t.datetime :updated_at
22
+ t.string :name
23
+ t.string :description
24
+ t.integer :users_count, :default => 0
25
+ end
26
+
27
+ create_table :user_groups do |t|
28
+ t.string :name
29
+ end
30
+
31
+ create_table :user_groups_users, :id => false do |t|
32
+ t.integer :user_group_id, :null => false
33
+ t.integer :user_id, :null => false
34
+ end
35
+
36
+ create_table :users do |t|
37
+ t.datetime :created_at
38
+ t.datetime :updated_at
39
+ t.integer :company_id
40
+ t.string :username
41
+ t.string :name
42
+ t.integer :age
43
+ t.boolean :male
44
+ t.string :some_type_id
45
+ t.datetime :whatever_at
46
+ end
47
+
48
+ create_table :carts do |t|
49
+ t.datetime :created_at
50
+ t.datetime :updated_at
51
+ t.integer :user_id
52
+ end
53
+
54
+ create_table :orders do |t|
55
+ t.datetime :created_at
56
+ t.datetime :updated_at
57
+ t.integer :user_id
58
+ t.date :shipped_on
59
+ t.float :taxes
60
+ t.float :total
61
+ end
62
+
63
+ create_table :fees do |t|
64
+ t.datetime :created_at
65
+ t.datetime :updated_at
66
+ t.string :owner_type
67
+ t.integer :owner_id
68
+ t.float :cost
69
+ end
70
+
71
+ create_table :line_items do |t|
72
+ t.datetime :created_at
73
+ t.datetime :updated_at
74
+ t.integer :order_id
75
+ t.float :price
76
+ end
77
+ end
78
+
79
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
80
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
81
+ require 'searchlogic'
82
+
83
+ Spec::Runner.configure do |config|
84
+ config.before(:each) do
85
+ class Audit < ActiveRecord::Base
86
+ belongs_to :auditable, :polymorphic => true
87
+ end
88
+
89
+ class Company < ActiveRecord::Base
90
+ has_many :orders, :through => :users
91
+ has_many :users, :dependent => :destroy
92
+ end
93
+
94
+ class UserGroup < ActiveRecord::Base
95
+ has_and_belongs_to_many :users
96
+ end
97
+
98
+ class User < ActiveRecord::Base
99
+ belongs_to :company, :counter_cache => true
100
+ has_many :orders, :dependent => :destroy
101
+ has_many :orders_big, :class_name => 'Order', :conditions => 'total > 100'
102
+ has_and_belongs_to_many :user_groups
103
+
104
+ self.skip_time_zone_conversion_for_attributes = [:whatever_at]
105
+ end
106
+
107
+ class Order < ActiveRecord::Base
108
+ belongs_to :user
109
+ has_many :line_items, :dependent => :destroy
110
+ end
111
+
112
+ class Fee < ActiveRecord::Base
113
+ belongs_to :owner, :polymorphic => true
114
+ end
115
+
116
+ class LineItem < ActiveRecord::Base
117
+ belongs_to :order
118
+ end
119
+
120
+ Company.destroy_all
121
+ User.destroy_all
122
+ Order.destroy_all
123
+ LineItem.destroy_all
124
+ end
125
+
126
+ config.after(:each) do
127
+ Object.send(:remove_const, :Company)
128
+ Object.send(:remove_const, :User)
129
+ Object.send(:remove_const, :Order)
130
+ Object.send(:remove_const, :LineItem)
131
+ end
132
+ end
metadata ADDED
@@ -0,0 +1,128 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: searchlogic-heroku
3
+ version: !ruby/object:Gem::Version
4
+ hash: 57
5
+ prerelease: false
6
+ segments:
7
+ - 2
8
+ - 4
9
+ - 19
10
+ version: 2.4.19
11
+ platform: ruby
12
+ authors:
13
+ - Ben Johnson of Binary Logic
14
+ - William
15
+ autorequire:
16
+ bindir: bin
17
+ cert_chain: []
18
+
19
+ date: 2010-07-26 00:00:00 +08:00
20
+ default_executable:
21
+ dependencies:
22
+ - !ruby/object:Gem::Dependency
23
+ name: activerecord
24
+ prerelease: false
25
+ requirement: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ hash: 15
31
+ segments:
32
+ - 2
33
+ - 0
34
+ - 0
35
+ version: 2.0.0
36
+ type: :runtime
37
+ version_requirements: *id001
38
+ description: Searchlogic makes using ActiveRecord named scopes easier and less repetitive.
39
+ email: bjohnson@binarylogic.com
40
+ executables: []
41
+
42
+ extensions: []
43
+
44
+ extra_rdoc_files:
45
+ - LICENSE
46
+ - README.rdoc
47
+ files:
48
+ - .gitignore
49
+ - LICENSE
50
+ - README.rdoc
51
+ - Rakefile
52
+ - VERSION.yml
53
+ - init.rb
54
+ - lib/searchlogic.rb
55
+ - lib/searchlogic/active_record/association_proxy.rb
56
+ - lib/searchlogic/active_record/consistency.rb
57
+ - lib/searchlogic/active_record/named_scope_tools.rb
58
+ - lib/searchlogic/core_ext/object.rb
59
+ - lib/searchlogic/core_ext/proc.rb
60
+ - lib/searchlogic/named_scopes/alias_scope.rb
61
+ - lib/searchlogic/named_scopes/association_conditions.rb
62
+ - lib/searchlogic/named_scopes/association_ordering.rb
63
+ - lib/searchlogic/named_scopes/conditions.rb
64
+ - lib/searchlogic/named_scopes/or_conditions.rb
65
+ - lib/searchlogic/named_scopes/ordering.rb
66
+ - lib/searchlogic/rails_helpers.rb
67
+ - lib/searchlogic/search.rb
68
+ - rails/init.rb
69
+ - searchlogic.gemspec
70
+ - spec/searchlogic/active_record/association_proxy_spec.rb
71
+ - spec/searchlogic/active_record/consistency_spec.rb
72
+ - spec/searchlogic/core_ext/object_spec.rb
73
+ - spec/searchlogic/core_ext/proc_spec.rb
74
+ - spec/searchlogic/named_scopes/alias_scope_spec.rb
75
+ - spec/searchlogic/named_scopes/association_conditions_spec.rb
76
+ - spec/searchlogic/named_scopes/association_ordering_spec.rb
77
+ - spec/searchlogic/named_scopes/conditions_spec.rb
78
+ - spec/searchlogic/named_scopes/or_conditions_spec.rb
79
+ - spec/searchlogic/named_scopes/ordering_spec.rb
80
+ - spec/searchlogic/search_spec.rb
81
+ - spec/spec_helper.rb
82
+ has_rdoc: true
83
+ homepage: http://github.com/binarylogic/searchlogic
84
+ licenses: []
85
+
86
+ post_install_message:
87
+ rdoc_options:
88
+ - --charset=UTF-8
89
+ require_paths:
90
+ - lib
91
+ required_ruby_version: !ruby/object:Gem::Requirement
92
+ none: false
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ hash: 3
97
+ segments:
98
+ - 0
99
+ version: "0"
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
+ none: false
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ hash: 3
106
+ segments:
107
+ - 0
108
+ version: "0"
109
+ requirements: []
110
+
111
+ rubyforge_project: searchlogic
112
+ rubygems_version: 1.3.7
113
+ signing_key:
114
+ specification_version: 3
115
+ summary: Searchlogic makes using ActiveRecord named scopes easier and less repetitive.
116
+ test_files:
117
+ - spec/searchlogic/active_record/association_proxy_spec.rb
118
+ - spec/searchlogic/active_record/consistency_spec.rb
119
+ - spec/searchlogic/core_ext/object_spec.rb
120
+ - spec/searchlogic/core_ext/proc_spec.rb
121
+ - spec/searchlogic/named_scopes/alias_scope_spec.rb
122
+ - spec/searchlogic/named_scopes/association_conditions_spec.rb
123
+ - spec/searchlogic/named_scopes/association_ordering_spec.rb
124
+ - spec/searchlogic/named_scopes/conditions_spec.rb
125
+ - spec/searchlogic/named_scopes/or_conditions_spec.rb
126
+ - spec/searchlogic/named_scopes/ordering_spec.rb
127
+ - spec/searchlogic/search_spec.rb
128
+ - spec/spec_helper.rb