searchlogic 1.5.4 → 1.5.6

Sign up to get free protection for your applications and to get access to all the features.
data/searchlogic.gemspec CHANGED
@@ -1,28 +1,30 @@
1
+ # -*- encoding: utf-8 -*-
2
+
1
3
  Gem::Specification.new do |s|
2
4
  s.name = %q{searchlogic}
3
- s.version = "1.5.4"
5
+ s.version = "1.5.6"
4
6
 
5
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
6
8
  s.authors = ["Ben Johnson of Binary Logic"]
7
- s.date = %q{2008-11-16}
9
+ s.date = %q{2008-11-29}
8
10
  s.description = %q{Object based ActiveRecord searching, ordering, pagination, and more!}
9
11
  s.email = %q{bjohnson@binarylogic.com}
10
- s.extra_rdoc_files = ["CHANGELOG.rdoc", "lib/searchlogic/active_record/associations.rb", "lib/searchlogic/active_record/base.rb", "lib/searchlogic/active_record/connection_adapters/mysql_adapter.rb", "lib/searchlogic/active_record/connection_adapters/postgresql_adapter.rb", "lib/searchlogic/active_record/connection_adapters/sqlite_adapter.rb", "lib/searchlogic/condition/base.rb", "lib/searchlogic/condition/begins_with.rb", "lib/searchlogic/condition/blank.rb", "lib/searchlogic/condition/child_of.rb", "lib/searchlogic/condition/descendant_of.rb", "lib/searchlogic/condition/ends_with.rb", "lib/searchlogic/condition/equals.rb", "lib/searchlogic/condition/greater_than.rb", "lib/searchlogic/condition/greater_than_or_equal_to.rb", "lib/searchlogic/condition/inclusive_descendant_of.rb", "lib/searchlogic/condition/keywords.rb", "lib/searchlogic/condition/less_than.rb", "lib/searchlogic/condition/less_than_or_equal_to.rb", "lib/searchlogic/condition/like.rb", "lib/searchlogic/condition/nil.rb", "lib/searchlogic/condition/not_begin_with.rb", "lib/searchlogic/condition/not_blank.rb", "lib/searchlogic/condition/not_end_with.rb", "lib/searchlogic/condition/not_equal.rb", "lib/searchlogic/condition/not_have_keywords.rb", "lib/searchlogic/condition/not_like.rb", "lib/searchlogic/condition/not_nil.rb", "lib/searchlogic/condition/sibling_of.rb", "lib/searchlogic/condition/tree.rb", "lib/searchlogic/conditions/base.rb", "lib/searchlogic/conditions/protection.rb", "lib/searchlogic/config/helpers.rb", "lib/searchlogic/config/search.rb", "lib/searchlogic/config.rb", "lib/searchlogic/core_ext/hash.rb", "lib/searchlogic/helpers/control_types/link.rb", "lib/searchlogic/helpers/control_types/links.rb", "lib/searchlogic/helpers/control_types/remote_link.rb", "lib/searchlogic/helpers/control_types/remote_links.rb", "lib/searchlogic/helpers/control_types/remote_select.rb", "lib/searchlogic/helpers/control_types/select.rb", "lib/searchlogic/helpers/form.rb", "lib/searchlogic/helpers/utilities.rb", "lib/searchlogic/modifiers/absolute.rb", "lib/searchlogic/modifiers/acos.rb", "lib/searchlogic/modifiers/asin.rb", "lib/searchlogic/modifiers/atan.rb", "lib/searchlogic/modifiers/base.rb", "lib/searchlogic/modifiers/ceil.rb", "lib/searchlogic/modifiers/char_length.rb", "lib/searchlogic/modifiers/cos.rb", "lib/searchlogic/modifiers/cot.rb", "lib/searchlogic/modifiers/day_of_month.rb", "lib/searchlogic/modifiers/day_of_week.rb", "lib/searchlogic/modifiers/day_of_year.rb", "lib/searchlogic/modifiers/degrees.rb", "lib/searchlogic/modifiers/exp.rb", "lib/searchlogic/modifiers/floor.rb", "lib/searchlogic/modifiers/hex.rb", "lib/searchlogic/modifiers/hour.rb", "lib/searchlogic/modifiers/log.rb", "lib/searchlogic/modifiers/log10.rb", "lib/searchlogic/modifiers/log2.rb", "lib/searchlogic/modifiers/lower.rb", "lib/searchlogic/modifiers/ltrim.rb", "lib/searchlogic/modifiers/md5.rb", "lib/searchlogic/modifiers/microseconds.rb", "lib/searchlogic/modifiers/milliseconds.rb", "lib/searchlogic/modifiers/minute.rb", "lib/searchlogic/modifiers/month.rb", "lib/searchlogic/modifiers/octal.rb", "lib/searchlogic/modifiers/radians.rb", "lib/searchlogic/modifiers/round.rb", "lib/searchlogic/modifiers/rtrim.rb", "lib/searchlogic/modifiers/second.rb", "lib/searchlogic/modifiers/sign.rb", "lib/searchlogic/modifiers/sin.rb", "lib/searchlogic/modifiers/square_root.rb", "lib/searchlogic/modifiers/tan.rb", "lib/searchlogic/modifiers/trim.rb", "lib/searchlogic/modifiers/upper.rb", "lib/searchlogic/modifiers/week.rb", "lib/searchlogic/modifiers/year.rb", "lib/searchlogic/search/base.rb", "lib/searchlogic/search/conditions.rb", "lib/searchlogic/search/ordering.rb", "lib/searchlogic/search/pagination.rb", "lib/searchlogic/search/protection.rb", "lib/searchlogic/search/searching.rb", "lib/searchlogic/shared/utilities.rb", "lib/searchlogic/shared/virtual_classes.rb", "lib/searchlogic/version.rb", "lib/searchlogic.rb", "README.rdoc", "TODO.rdoc"]
11
- s.files = ["CHANGELOG.rdoc", "init.rb", "lib/searchlogic/active_record/associations.rb", "lib/searchlogic/active_record/base.rb", "lib/searchlogic/active_record/connection_adapters/mysql_adapter.rb", "lib/searchlogic/active_record/connection_adapters/postgresql_adapter.rb", "lib/searchlogic/active_record/connection_adapters/sqlite_adapter.rb", "lib/searchlogic/condition/base.rb", "lib/searchlogic/condition/begins_with.rb", "lib/searchlogic/condition/blank.rb", "lib/searchlogic/condition/child_of.rb", "lib/searchlogic/condition/descendant_of.rb", "lib/searchlogic/condition/ends_with.rb", "lib/searchlogic/condition/equals.rb", "lib/searchlogic/condition/greater_than.rb", "lib/searchlogic/condition/greater_than_or_equal_to.rb", "lib/searchlogic/condition/inclusive_descendant_of.rb", "lib/searchlogic/condition/keywords.rb", "lib/searchlogic/condition/less_than.rb", "lib/searchlogic/condition/less_than_or_equal_to.rb", "lib/searchlogic/condition/like.rb", "lib/searchlogic/condition/nil.rb", "lib/searchlogic/condition/not_begin_with.rb", "lib/searchlogic/condition/not_blank.rb", "lib/searchlogic/condition/not_end_with.rb", "lib/searchlogic/condition/not_equal.rb", "lib/searchlogic/condition/not_have_keywords.rb", "lib/searchlogic/condition/not_like.rb", "lib/searchlogic/condition/not_nil.rb", "lib/searchlogic/condition/sibling_of.rb", "lib/searchlogic/condition/tree.rb", "lib/searchlogic/conditions/base.rb", "lib/searchlogic/conditions/protection.rb", "lib/searchlogic/config/helpers.rb", "lib/searchlogic/config/search.rb", "lib/searchlogic/config.rb", "lib/searchlogic/core_ext/hash.rb", "lib/searchlogic/helpers/control_types/link.rb", "lib/searchlogic/helpers/control_types/links.rb", "lib/searchlogic/helpers/control_types/remote_link.rb", "lib/searchlogic/helpers/control_types/remote_links.rb", "lib/searchlogic/helpers/control_types/remote_select.rb", "lib/searchlogic/helpers/control_types/select.rb", "lib/searchlogic/helpers/form.rb", "lib/searchlogic/helpers/utilities.rb", "lib/searchlogic/modifiers/absolute.rb", "lib/searchlogic/modifiers/acos.rb", "lib/searchlogic/modifiers/asin.rb", "lib/searchlogic/modifiers/atan.rb", "lib/searchlogic/modifiers/base.rb", "lib/searchlogic/modifiers/ceil.rb", "lib/searchlogic/modifiers/char_length.rb", "lib/searchlogic/modifiers/cos.rb", "lib/searchlogic/modifiers/cot.rb", "lib/searchlogic/modifiers/day_of_month.rb", "lib/searchlogic/modifiers/day_of_week.rb", "lib/searchlogic/modifiers/day_of_year.rb", "lib/searchlogic/modifiers/degrees.rb", "lib/searchlogic/modifiers/exp.rb", "lib/searchlogic/modifiers/floor.rb", "lib/searchlogic/modifiers/hex.rb", "lib/searchlogic/modifiers/hour.rb", "lib/searchlogic/modifiers/log.rb", "lib/searchlogic/modifiers/log10.rb", "lib/searchlogic/modifiers/log2.rb", "lib/searchlogic/modifiers/lower.rb", "lib/searchlogic/modifiers/ltrim.rb", "lib/searchlogic/modifiers/md5.rb", "lib/searchlogic/modifiers/microseconds.rb", "lib/searchlogic/modifiers/milliseconds.rb", "lib/searchlogic/modifiers/minute.rb", "lib/searchlogic/modifiers/month.rb", "lib/searchlogic/modifiers/octal.rb", "lib/searchlogic/modifiers/radians.rb", "lib/searchlogic/modifiers/round.rb", "lib/searchlogic/modifiers/rtrim.rb", "lib/searchlogic/modifiers/second.rb", "lib/searchlogic/modifiers/sign.rb", "lib/searchlogic/modifiers/sin.rb", "lib/searchlogic/modifiers/square_root.rb", "lib/searchlogic/modifiers/tan.rb", "lib/searchlogic/modifiers/trim.rb", "lib/searchlogic/modifiers/upper.rb", "lib/searchlogic/modifiers/week.rb", "lib/searchlogic/modifiers/year.rb", "lib/searchlogic/search/base.rb", "lib/searchlogic/search/conditions.rb", "lib/searchlogic/search/ordering.rb", "lib/searchlogic/search/pagination.rb", "lib/searchlogic/search/protection.rb", "lib/searchlogic/search/searching.rb", "lib/searchlogic/shared/utilities.rb", "lib/searchlogic/shared/virtual_classes.rb", "lib/searchlogic/version.rb", "lib/searchlogic.rb", "Manifest", "MIT-LICENSE", "Rakefile", "README.rdoc", "test/active_record_tests/associations_test.rb", "test/active_record_tests/base_test.rb", "test/condition_tests/base_test.rb", "test/condition_tests/begins_with_test.rb", "test/condition_tests/blank_test.rb", "test/condition_tests/child_of_test.rb", "test/condition_tests/descendant_of_test.rb", "test/condition_tests/ends_with_test.rb", "test/condition_tests/equals_test.rb", "test/condition_tests/greater_than_or_equal_to_test.rb", "test/condition_tests/greater_than_test.rb", "test/condition_tests/inclusive_descendant_of_test.rb", "test/condition_tests/keyswords_test.rb", "test/condition_tests/less_than_or_equal_to_test.rb", "test/condition_tests/less_than_test.rb", "test/condition_tests/like_test.rb", "test/condition_tests/nil_test.rb", "test/condition_tests/not_begin_with_test.rb", "test/condition_tests/not_blank_test.rb", "test/condition_tests/not_end_with_test.rb", "test/condition_tests/not_equal_test.rb", "test/condition_tests/not_have_keywords_test.rb", "test/condition_tests/not_like_test.rb", "test/condition_tests/not_nil_test.rb", "test/condition_tests/sibling_of_test.rb", "test/conditions_tests/base_test.rb", "test/conditions_tests/protection_test.rb", "test/config_test.rb", "test/fixtures/accounts.yml", "test/fixtures/animals.yml", "test/fixtures/orders.yml", "test/fixtures/user_groups.yml", "test/fixtures/users.yml", "test/libs/acts_as_tree.rb", "test/libs/rexml_fix.rb", "test/modifier_tests/day_of_month_test.rb", "test/search_tests/base_test.rb", "test/search_tests/conditions_test.rb", "test/search_tests/ordering_test.rb", "test/search_tests/pagination_test.rb", "test/search_tests/protection_test.rb", "test/test_helper.rb", "TODO.rdoc", "searchlogic.gemspec"]
12
+ s.extra_rdoc_files = ["CHANGELOG.rdoc", "lib/searchlogic/active_record/associations.rb", "lib/searchlogic/active_record/base.rb", "lib/searchlogic/active_record/connection_adapters/mysql_adapter.rb", "lib/searchlogic/active_record/connection_adapters/postgresql_adapter.rb", "lib/searchlogic/active_record/connection_adapters/sqlite_adapter.rb", "lib/searchlogic/condition/base.rb", "lib/searchlogic/condition/begins_with.rb", "lib/searchlogic/condition/blank.rb", "lib/searchlogic/condition/child_of.rb", "lib/searchlogic/condition/descendant_of.rb", "lib/searchlogic/condition/ends_with.rb", "lib/searchlogic/condition/equals.rb", "lib/searchlogic/condition/greater_than.rb", "lib/searchlogic/condition/greater_than_or_equal_to.rb", "lib/searchlogic/condition/inclusive_descendant_of.rb", "lib/searchlogic/condition/keywords.rb", "lib/searchlogic/condition/less_than.rb", "lib/searchlogic/condition/less_than_or_equal_to.rb", "lib/searchlogic/condition/like.rb", "lib/searchlogic/condition/nil.rb", "lib/searchlogic/condition/not_begin_with.rb", "lib/searchlogic/condition/not_blank.rb", "lib/searchlogic/condition/not_end_with.rb", "lib/searchlogic/condition/not_equal.rb", "lib/searchlogic/condition/not_have_keywords.rb", "lib/searchlogic/condition/not_like.rb", "lib/searchlogic/condition/not_nil.rb", "lib/searchlogic/condition/sibling_of.rb", "lib/searchlogic/condition/tree.rb", "lib/searchlogic/conditions/any_or_all.rb", "lib/searchlogic/conditions/base.rb", "lib/searchlogic/conditions/groups.rb", "lib/searchlogic/conditions/magic_methods.rb", "lib/searchlogic/conditions/protection.rb", "lib/searchlogic/config/helpers.rb", "lib/searchlogic/config/search.rb", "lib/searchlogic/config.rb", "lib/searchlogic/core_ext/hash.rb", "lib/searchlogic/helpers/control_types/link.rb", "lib/searchlogic/helpers/control_types/links.rb", "lib/searchlogic/helpers/control_types/remote_link.rb", "lib/searchlogic/helpers/control_types/remote_links.rb", "lib/searchlogic/helpers/control_types/remote_select.rb", "lib/searchlogic/helpers/control_types/select.rb", "lib/searchlogic/helpers/form.rb", "lib/searchlogic/helpers/utilities.rb", "lib/searchlogic/modifiers/absolute.rb", "lib/searchlogic/modifiers/acos.rb", "lib/searchlogic/modifiers/asin.rb", "lib/searchlogic/modifiers/atan.rb", "lib/searchlogic/modifiers/base.rb", "lib/searchlogic/modifiers/ceil.rb", "lib/searchlogic/modifiers/char_length.rb", "lib/searchlogic/modifiers/cos.rb", "lib/searchlogic/modifiers/cot.rb", "lib/searchlogic/modifiers/day_of_month.rb", "lib/searchlogic/modifiers/day_of_week.rb", "lib/searchlogic/modifiers/day_of_year.rb", "lib/searchlogic/modifiers/degrees.rb", "lib/searchlogic/modifiers/exp.rb", "lib/searchlogic/modifiers/floor.rb", "lib/searchlogic/modifiers/hex.rb", "lib/searchlogic/modifiers/hour.rb", "lib/searchlogic/modifiers/log.rb", "lib/searchlogic/modifiers/log10.rb", "lib/searchlogic/modifiers/log2.rb", "lib/searchlogic/modifiers/lower.rb", "lib/searchlogic/modifiers/ltrim.rb", "lib/searchlogic/modifiers/md5.rb", "lib/searchlogic/modifiers/microseconds.rb", "lib/searchlogic/modifiers/milliseconds.rb", "lib/searchlogic/modifiers/minute.rb", "lib/searchlogic/modifiers/month.rb", "lib/searchlogic/modifiers/octal.rb", "lib/searchlogic/modifiers/radians.rb", "lib/searchlogic/modifiers/round.rb", "lib/searchlogic/modifiers/rtrim.rb", "lib/searchlogic/modifiers/second.rb", "lib/searchlogic/modifiers/sign.rb", "lib/searchlogic/modifiers/sin.rb", "lib/searchlogic/modifiers/square_root.rb", "lib/searchlogic/modifiers/tan.rb", "lib/searchlogic/modifiers/trim.rb", "lib/searchlogic/modifiers/upper.rb", "lib/searchlogic/modifiers/week.rb", "lib/searchlogic/modifiers/year.rb", "lib/searchlogic/search/base.rb", "lib/searchlogic/search/conditions.rb", "lib/searchlogic/search/ordering.rb", "lib/searchlogic/search/pagination.rb", "lib/searchlogic/search/protection.rb", "lib/searchlogic/search/searching.rb", "lib/searchlogic/shared/utilities.rb", "lib/searchlogic/shared/virtual_classes.rb", "lib/searchlogic/version.rb", "lib/searchlogic.rb", "README.rdoc", "TODO.rdoc"]
13
+ s.files = ["CHANGELOG.rdoc", "init.rb", "lib/searchlogic/active_record/associations.rb", "lib/searchlogic/active_record/base.rb", "lib/searchlogic/active_record/connection_adapters/mysql_adapter.rb", "lib/searchlogic/active_record/connection_adapters/postgresql_adapter.rb", "lib/searchlogic/active_record/connection_adapters/sqlite_adapter.rb", "lib/searchlogic/condition/base.rb", "lib/searchlogic/condition/begins_with.rb", "lib/searchlogic/condition/blank.rb", "lib/searchlogic/condition/child_of.rb", "lib/searchlogic/condition/descendant_of.rb", "lib/searchlogic/condition/ends_with.rb", "lib/searchlogic/condition/equals.rb", "lib/searchlogic/condition/greater_than.rb", "lib/searchlogic/condition/greater_than_or_equal_to.rb", "lib/searchlogic/condition/inclusive_descendant_of.rb", "lib/searchlogic/condition/keywords.rb", "lib/searchlogic/condition/less_than.rb", "lib/searchlogic/condition/less_than_or_equal_to.rb", "lib/searchlogic/condition/like.rb", "lib/searchlogic/condition/nil.rb", "lib/searchlogic/condition/not_begin_with.rb", "lib/searchlogic/condition/not_blank.rb", "lib/searchlogic/condition/not_end_with.rb", "lib/searchlogic/condition/not_equal.rb", "lib/searchlogic/condition/not_have_keywords.rb", "lib/searchlogic/condition/not_like.rb", "lib/searchlogic/condition/not_nil.rb", "lib/searchlogic/condition/sibling_of.rb", "lib/searchlogic/condition/tree.rb", "lib/searchlogic/conditions/any_or_all.rb", "lib/searchlogic/conditions/base.rb", "lib/searchlogic/conditions/groups.rb", "lib/searchlogic/conditions/magic_methods.rb", "lib/searchlogic/conditions/protection.rb", "lib/searchlogic/config/helpers.rb", "lib/searchlogic/config/search.rb", "lib/searchlogic/config.rb", "lib/searchlogic/core_ext/hash.rb", "lib/searchlogic/helpers/control_types/link.rb", "lib/searchlogic/helpers/control_types/links.rb", "lib/searchlogic/helpers/control_types/remote_link.rb", "lib/searchlogic/helpers/control_types/remote_links.rb", "lib/searchlogic/helpers/control_types/remote_select.rb", "lib/searchlogic/helpers/control_types/select.rb", "lib/searchlogic/helpers/form.rb", "lib/searchlogic/helpers/utilities.rb", "lib/searchlogic/modifiers/absolute.rb", "lib/searchlogic/modifiers/acos.rb", "lib/searchlogic/modifiers/asin.rb", "lib/searchlogic/modifiers/atan.rb", "lib/searchlogic/modifiers/base.rb", "lib/searchlogic/modifiers/ceil.rb", "lib/searchlogic/modifiers/char_length.rb", "lib/searchlogic/modifiers/cos.rb", "lib/searchlogic/modifiers/cot.rb", "lib/searchlogic/modifiers/day_of_month.rb", "lib/searchlogic/modifiers/day_of_week.rb", "lib/searchlogic/modifiers/day_of_year.rb", "lib/searchlogic/modifiers/degrees.rb", "lib/searchlogic/modifiers/exp.rb", "lib/searchlogic/modifiers/floor.rb", "lib/searchlogic/modifiers/hex.rb", "lib/searchlogic/modifiers/hour.rb", "lib/searchlogic/modifiers/log.rb", "lib/searchlogic/modifiers/log10.rb", "lib/searchlogic/modifiers/log2.rb", "lib/searchlogic/modifiers/lower.rb", "lib/searchlogic/modifiers/ltrim.rb", "lib/searchlogic/modifiers/md5.rb", "lib/searchlogic/modifiers/microseconds.rb", "lib/searchlogic/modifiers/milliseconds.rb", "lib/searchlogic/modifiers/minute.rb", "lib/searchlogic/modifiers/month.rb", "lib/searchlogic/modifiers/octal.rb", "lib/searchlogic/modifiers/radians.rb", "lib/searchlogic/modifiers/round.rb", "lib/searchlogic/modifiers/rtrim.rb", "lib/searchlogic/modifiers/second.rb", "lib/searchlogic/modifiers/sign.rb", "lib/searchlogic/modifiers/sin.rb", "lib/searchlogic/modifiers/square_root.rb", "lib/searchlogic/modifiers/tan.rb", "lib/searchlogic/modifiers/trim.rb", "lib/searchlogic/modifiers/upper.rb", "lib/searchlogic/modifiers/week.rb", "lib/searchlogic/modifiers/year.rb", "lib/searchlogic/search/base.rb", "lib/searchlogic/search/conditions.rb", "lib/searchlogic/search/ordering.rb", "lib/searchlogic/search/pagination.rb", "lib/searchlogic/search/protection.rb", "lib/searchlogic/search/searching.rb", "lib/searchlogic/shared/utilities.rb", "lib/searchlogic/shared/virtual_classes.rb", "lib/searchlogic/version.rb", "lib/searchlogic.rb", "Manifest", "MIT-LICENSE", "Rakefile", "README.rdoc", "test/active_record_tests/associations_test.rb", "test/active_record_tests/base_test.rb", "test/condition_tests/base_test.rb", "test/condition_tests/begins_with_test.rb", "test/condition_tests/blank_test.rb", "test/condition_tests/child_of_test.rb", "test/condition_tests/descendant_of_test.rb", "test/condition_tests/ends_with_test.rb", "test/condition_tests/equals_test.rb", "test/condition_tests/greater_than_or_equal_to_test.rb", "test/condition_tests/greater_than_test.rb", "test/condition_tests/inclusive_descendant_of_test.rb", "test/condition_tests/keywords_test.rb", "test/condition_tests/less_than_or_equal_to_test.rb", "test/condition_tests/less_than_test.rb", "test/condition_tests/like_test.rb", "test/condition_tests/nil_test.rb", "test/condition_tests/not_begin_with_test.rb", "test/condition_tests/not_blank_test.rb", "test/condition_tests/not_end_with_test.rb", "test/condition_tests/not_equal_test.rb", "test/condition_tests/not_have_keywords_test.rb", "test/condition_tests/not_like_test.rb", "test/condition_tests/not_nil_test.rb", "test/condition_tests/sibling_of_test.rb", "test/conditions_tests/any_or_all_test.rb", "test/conditions_tests/base_test.rb", "test/conditions_tests/groups_test.rb", "test/conditions_tests/magic_methods_test.rb", "test/conditions_tests/protection_test.rb", "test/config_test.rb", "test/fixtures/accounts.yml", "test/fixtures/animals.yml", "test/fixtures/orders.yml", "test/fixtures/user_groups.yml", "test/fixtures/users.yml", "test/libs/acts_as_tree.rb", "test/libs/rexml_fix.rb", "test/modifier_tests/day_of_month_test.rb", "test/search_tests/base_test.rb", "test/search_tests/conditions_test.rb", "test/search_tests/ordering_test.rb", "test/search_tests/pagination_test.rb", "test/search_tests/protection_test.rb", "test/test_helper.rb", "TODO.rdoc", "searchlogic.gemspec"]
12
14
  s.has_rdoc = true
13
15
  s.homepage = %q{http://github.com/binarylogic/searchlogic}
14
16
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Searchlogic", "--main", "README.rdoc"]
15
17
  s.require_paths = ["lib"]
16
18
  s.rubyforge_project = %q{searchlogic}
17
- s.rubygems_version = %q{1.2.0}
19
+ s.rubygems_version = %q{1.3.1}
18
20
  s.summary = %q{Object based ActiveRecord searching, ordering, pagination, and more!}
19
- s.test_files = ["test/active_record_tests/associations_test.rb", "test/active_record_tests/base_test.rb", "test/condition_tests/base_test.rb", "test/condition_tests/begins_with_test.rb", "test/condition_tests/blank_test.rb", "test/condition_tests/child_of_test.rb", "test/condition_tests/descendant_of_test.rb", "test/condition_tests/ends_with_test.rb", "test/condition_tests/equals_test.rb", "test/condition_tests/greater_than_or_equal_to_test.rb", "test/condition_tests/greater_than_test.rb", "test/condition_tests/inclusive_descendant_of_test.rb", "test/condition_tests/keyswords_test.rb", "test/condition_tests/less_than_or_equal_to_test.rb", "test/condition_tests/less_than_test.rb", "test/condition_tests/like_test.rb", "test/condition_tests/nil_test.rb", "test/condition_tests/not_begin_with_test.rb", "test/condition_tests/not_blank_test.rb", "test/condition_tests/not_end_with_test.rb", "test/condition_tests/not_equal_test.rb", "test/condition_tests/not_have_keywords_test.rb", "test/condition_tests/not_like_test.rb", "test/condition_tests/not_nil_test.rb", "test/condition_tests/sibling_of_test.rb", "test/conditions_tests/base_test.rb", "test/conditions_tests/protection_test.rb", "test/config_test.rb", "test/modifier_tests/day_of_month_test.rb", "test/search_tests/base_test.rb", "test/search_tests/conditions_test.rb", "test/search_tests/ordering_test.rb", "test/search_tests/pagination_test.rb", "test/search_tests/protection_test.rb", "test/test_helper.rb"]
21
+ s.test_files = ["test/active_record_tests/associations_test.rb", "test/active_record_tests/base_test.rb", "test/condition_tests/base_test.rb", "test/condition_tests/begins_with_test.rb", "test/condition_tests/blank_test.rb", "test/condition_tests/child_of_test.rb", "test/condition_tests/descendant_of_test.rb", "test/condition_tests/ends_with_test.rb", "test/condition_tests/equals_test.rb", "test/condition_tests/greater_than_or_equal_to_test.rb", "test/condition_tests/greater_than_test.rb", "test/condition_tests/inclusive_descendant_of_test.rb", "test/condition_tests/keywords_test.rb", "test/condition_tests/less_than_or_equal_to_test.rb", "test/condition_tests/less_than_test.rb", "test/condition_tests/like_test.rb", "test/condition_tests/nil_test.rb", "test/condition_tests/not_begin_with_test.rb", "test/condition_tests/not_blank_test.rb", "test/condition_tests/not_end_with_test.rb", "test/condition_tests/not_equal_test.rb", "test/condition_tests/not_have_keywords_test.rb", "test/condition_tests/not_like_test.rb", "test/condition_tests/not_nil_test.rb", "test/condition_tests/sibling_of_test.rb", "test/conditions_tests/any_or_all_test.rb", "test/conditions_tests/base_test.rb", "test/conditions_tests/groups_test.rb", "test/conditions_tests/magic_methods_test.rb", "test/conditions_tests/protection_test.rb", "test/config_test.rb", "test/modifier_tests/day_of_month_test.rb", "test/search_tests/base_test.rb", "test/search_tests/conditions_test.rb", "test/search_tests/ordering_test.rb", "test/search_tests/pagination_test.rb", "test/search_tests/protection_test.rb", "test/test_helper.rb"]
20
22
 
21
23
  if s.respond_to? :specification_version then
22
24
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
25
  s.specification_version = 2
24
26
 
25
- if current_version >= 3 then
27
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
26
28
  s.add_runtime_dependency(%q<activerecord>, [">= 0"])
27
29
  s.add_runtime_dependency(%q<activesupport>, [">= 0"])
28
30
  s.add_development_dependency(%q<echoe>, [">= 0"])
@@ -6,7 +6,7 @@ module ActiveRecordTests
6
6
  binary_logic = accounts(:binary_logic)
7
7
  neco = accounts(:neco)
8
8
  binary_fun = accounts(:binary_fun)
9
-
9
+
10
10
  assert_equal [binary_logic, binary_fun, neco], Account.all
11
11
  assert_equal binary_logic, Account.first
12
12
 
@@ -19,7 +19,7 @@ module ActiveRecordTests
19
19
  assert_equal [binary_logic, binary_fun, neco], Account.find(:all, {})
20
20
  assert_equal [binary_logic, binary_fun, neco], Account.find(:all, :select => "id, name")
21
21
  end
22
-
22
+
23
23
  def test_standard_calculations
24
24
  binary_logic = accounts(:binary_logic)
25
25
  neco = accounts(:neco)
@@ -35,12 +35,12 @@ module ActiveRecordTests
35
35
  assert_equal neco.id, Account.maximum("id")
36
36
  assert_equal binary_logic.id, Account.minimum("id")
37
37
  end
38
-
38
+
39
39
  def test_valid_ar_options
40
40
  assert_equal [:conditions, :include, :joins, :limit, :offset, :order, :select, :readonly, :group, :from, :lock], ActiveRecord::Base.valid_find_options
41
41
  assert_equal [:conditions, :joins, :order, :select, :group, :having, :distinct, :limit, :offset, :include, :from], ActiveRecord::Base.valid_calculations_options
42
42
  end
43
-
43
+
44
44
  def test_build_search
45
45
  search = Account.new_search(:conditions => {:name_keywords => "awesome"}, :page => 2, :per_page => 15)
46
46
  assert_kind_of Searchlogic::Search::Base, search
@@ -50,7 +50,7 @@ module ActiveRecordTests
50
50
  assert_equal 2, search.page
51
51
  assert_equal 15, search.per_page
52
52
  end
53
-
53
+
54
54
  def test_searchlogic_searching
55
55
  binary_logic = accounts(:binary_logic)
56
56
  neco = accounts(:neco)
@@ -60,27 +60,27 @@ module ActiveRecordTests
60
60
  assert_equal [binary_logic], Account.all(:conditions => {:name_contains => "Binary", :users => {:first_name_starts_with => "Ben"}})
61
61
  assert_equal [], Account.all(:conditions => {:name_contains => "Binary", :users => {:first_name_starts_with => "Ben", :last_name => "Mills"}})
62
62
  assert_equal [binary_logic, neco], Account.all(:conditions => {:users => {:id_gt => 0}}, :include => :users)
63
-
63
+
64
64
  read_only_accounts = Account.all(:conditions => {:name_contains => "Binary"}, :readonly => true)
65
65
  assert read_only_accounts.first.readonly?
66
-
66
+
67
67
  assert_equal [binary_logic, binary_fun], Account.all(:conditions => {:name_contains => "Binary"}, :page => 2)
68
68
  assert_equal [], Account.all(:conditions => {:name_contains => "Binary"}, :page => 2, :per_page => 20)
69
-
69
+
70
70
  assert_equal [binary_logic], Account.scope1.all(:conditions => {:users => {:first_name_starts_with => "Ben"}})
71
71
  end
72
-
72
+
73
73
  def test_searchlogic_counting
74
74
  assert_equal 2, Account.count(:conditions => {:name_contains => "Binary"})
75
75
  assert_equal 1, Account.count(:conditions => {:name_contains => "Binary", :users => {:first_name_contains => "Ben"}})
76
76
  assert_equal 1, Account.count(:conditions => {:name_contains => "Binary", :users => {:first_name_contains => "Ben"}}, :limit => 10, :offset => 10, :order_by => "id", :group => "id")
77
77
  end
78
-
78
+
79
79
  def test_scoping
80
80
  assert_equal({:conditions => {:name => "Binary"}, :limit => 10, :readonly => true}, Account.send(:with_scope, :find => {:conditions => {:name => "Binary"}, :limit => 10, :readonly => true}) { Account.send(:scope, :find) })
81
81
  assert_equal({:conditions => ["\"accounts\".\"name\" LIKE ?", "%Binary%"], :limit => 10, :offset => 20}, Account.send(:with_scope, :find => {:conditions => {:name_contains => "Binary"}, :per_page => 10, :page => 3}) { Account.send(:scope, :find) })
82
82
  end
83
-
83
+
84
84
  def test_accessible_conditions
85
85
  Account.conditions_accessible :name_contains
86
86
  assert_equal Set.new(["name_contains"]), Account.accessible_conditions
@@ -90,7 +90,7 @@ module ActiveRecordTests
90
90
  assert_equal Set.new(["id_gt", "name_contains"]), Account.accessible_conditions
91
91
  Account.send(:write_inheritable_attribute, :conditions_accessible, nil)
92
92
  end
93
-
93
+
94
94
  def test_protected_conditions
95
95
  Account.conditions_protected :name_contains
96
96
  assert_equal Set.new(["name_contains"]), Account.protected_conditions
@@ -100,7 +100,7 @@ module ActiveRecordTests
100
100
  assert_equal Set.new(["id_gt", "name_contains"]), Account.protected_conditions
101
101
  Account.send(:write_inheritable_attribute, :conditions_protected, nil)
102
102
  end
103
-
103
+
104
104
  def test_includes
105
105
  assert_nothing_raised { Account.all(:conditions => {:users => {:first_name_like => "Ben"}}, :include => :users) }
106
106
  end
@@ -14,6 +14,10 @@ module ConditionTests
14
14
  condition = Searchlogic::Condition::Keywords.new(Account, :column => Account.columns_hash["name"])
15
15
  condition.value = "%^$*(^$) àáâãäåßéèêëìíîïñòóôõöùúûüýÿ"
16
16
  assert_equal ["\"accounts\".\"name\" LIKE ?", "%àáâãäåßéèêëìíîïñòóôõöùúûüýÿ%"], condition.sanitize
17
+
18
+ condition = Searchlogic::Condition::Keywords.new(Account, :column => Account.columns_hash["name"])
19
+ condition.value = "ben@ben.com"
20
+ assert_equal ["\"accounts\".\"name\" LIKE ?", "%ben@ben.com%"], condition.sanitize
17
21
  end
18
22
  end
19
23
  end
@@ -0,0 +1,23 @@
1
+ require File.dirname(__FILE__) + '/../test_helper.rb'
2
+
3
+ module ConditionsTests
4
+ class AnyOrAllTest < ActiveSupport::TestCase
5
+ def test_any
6
+ conditions = Searchlogic::Cache::AccountConditions.new
7
+ assert !conditions.any?
8
+ conditions = Searchlogic::Cache::AccountConditions.new(:any => true)
9
+ assert conditions.any?
10
+ conditions.any = "false"
11
+ assert !conditions.any?
12
+ conditions = Searchlogic::Cache::AccountConditions.new
13
+ conditions.name_contains = "Binary"
14
+ assert_equal ["\"accounts\".\"name\" LIKE ?", "%Binary%"], conditions.sanitize
15
+ conditions.id = 1
16
+ assert_equal ["\"accounts\".\"name\" LIKE ? AND \"accounts\".\"id\" = ?", "%Binary%", 1], conditions.sanitize
17
+ conditions.any = true
18
+ assert_equal ["\"accounts\".\"name\" LIKE ? OR \"accounts\".\"id\" = ?", "%Binary%", 1], conditions.sanitize
19
+ conditions.any = false
20
+ assert_equal ["\"accounts\".\"name\" LIKE ? AND \"accounts\".\"id\" = ?", "%Binary%", 1], conditions.sanitize
21
+ end
22
+ end
23
+ end
@@ -2,23 +2,22 @@ require File.dirname(__FILE__) + '/../test_helper.rb'
2
2
 
3
3
  module ConditionsTests
4
4
  class BaseTest < ActiveSupport::TestCase
5
- def test_register_conditions
5
+ def test_register_condition
6
6
  Searchlogic::Conditions::Base.register_condition(Searchlogic::Condition::Keywords)
7
7
  assert [Searchlogic::Condition::Keywords], Searchlogic::Conditions::Base.conditions
8
-
8
+
9
9
  Searchlogic::Conditions::Base.register_condition(Searchlogic::Condition::Like)
10
10
  assert [Searchlogic::Condition::Keywords, Searchlogic::Condition::Like], Searchlogic::Conditions::Base.conditions
11
11
  end
12
-
13
- def test_association_names
14
- ["dogs", "children", "user_groups", "orders", "account", "parent", "cats"].each do |name|
15
- assert Searchlogic::Cache::UserConditions.association_names.include? name
16
- end
17
- ["admin", "orders", "users"].each do |name|
18
- Searchlogic::Cache::AccountConditions.association_names.include? name
19
- end
12
+
13
+ def test_register_modifier
14
+ Searchlogic::Conditions::Base.register_modifier(Searchlogic::Modifiers::Absolute)
15
+ assert [Searchlogic::Modifiers::Absolute], Searchlogic::Conditions::Base.modifiers
16
+
17
+ Searchlogic::Conditions::Base.register_modifier(Searchlogic::Modifiers::Cos)
18
+ assert [Searchlogic::Modifiers::Absolute, Searchlogic::Modifiers::Cos], Searchlogic::Conditions::Base.modifiers
20
19
  end
21
-
20
+
22
21
  def test_needed
23
22
  assert (not Searchlogic::Conditions::Base.needed?(User, {}))
24
23
  assert (not Searchlogic::Conditions::Base.needed?(User, {:first_name => "Ben"}))
@@ -32,24 +31,6 @@ module ConditionsTests
32
31
  assert_equal conditions.name_contains, "Binary"
33
32
  end
34
33
 
35
- def test_any
36
- conditions = Searchlogic::Cache::AccountConditions.new
37
- assert (not conditions.any?)
38
- conditions = Searchlogic::Cache::AccountConditions.new(:any => true)
39
- assert conditions.any?
40
- conditions.any = "false"
41
- assert (not conditions.any?)
42
- conditions = Searchlogic::Cache::AccountConditions.new
43
- conditions.name_contains = "Binary"
44
- assert_equal_sql ["\"accounts\".\"name\" LIKE ?", "%Binary%"], conditions.sanitize
45
- conditions.id = 1
46
- assert_equal_sql ["(\"accounts\".\"id\" = ?) AND (\"accounts\".\"name\" LIKE ?)", 1, "%Binary%"], conditions.sanitize
47
- conditions.any = true
48
- assert_equal_sql ["(\"accounts\".\"id\" = ?) OR (\"accounts\".\"name\" LIKE ?)", 1, "%Binary%"], conditions.sanitize
49
- conditions.any = false
50
- assert_equal_sql ["(\"accounts\".\"id\" = ?) AND (\"accounts\".\"name\" LIKE ?)", 1, "%Binary%"], conditions.sanitize
51
- end
52
-
53
34
  def test_auto_joins
54
35
  conditions = Searchlogic::Cache::AccountConditions.new
55
36
  assert_equal conditions.auto_joins, nil
@@ -75,18 +56,29 @@ module ConditionsTests
75
56
  conditions.id_gt = 5
76
57
  now = Time.now
77
58
  conditions.created_after = now
78
- assert_equal_sql ["(\"accounts\".\"created_at\" > ?) AND (\"accounts\".\"id\" > ?) AND (\"accounts\".\"name\" LIKE ?)", now, 5, "%Binary%"], conditions.sanitize
59
+ assert_equal ["\"accounts\".\"name\" LIKE ? AND \"accounts\".\"id\" > ? AND \"accounts\".\"created_at\" > ?", "%Binary%", 5, now], conditions.sanitize
79
60
 
80
61
  # test out associations
81
62
  conditions.users.first_name_like = "Ben"
82
63
  conditions.users.id_gt = 10
83
64
  conditions.users.orders.total_lt = 500
84
- assert_equal_sql ["(\"accounts\".\"created_at\" > ?) AND (\"accounts\".\"id\" > ?) AND (\"accounts\".\"name\" LIKE ?) AND ((\"users\".\"first_name\" LIKE ?) AND (\"users\".\"id\" > ?) AND (\"orders\".\"total\" < ?))", now, 5, "%Binary%", "%Ben%", 10, 500], conditions.sanitize
65
+ assert_equal ["\"accounts\".\"name\" LIKE ? AND \"accounts\".\"id\" > ? AND \"accounts\".\"created_at\" > ? AND \"users\".\"first_name\" LIKE ? AND \"users\".\"id\" > ? AND \"orders\".\"total\" < ?", "%Binary%", 5, now, "%Ben%", 10, 500], conditions.sanitize
85
66
 
86
67
  # test that raw sql is returned
87
68
  conditions.conditions = "awesome"
88
69
  assert_equal "awesome", conditions.sanitize
89
70
  end
71
+
72
+ def test_sanitize_with_and_or_any
73
+ conditions = Searchlogic::Cache::AccountConditions.new
74
+ conditions.name_contains = "Binary"
75
+ conditions.or_id_gt = 5
76
+ assert conditions.id_gt_object.any?
77
+ assert_equal ["\"accounts\".\"name\" LIKE ? OR \"accounts\".\"id\" > ?", "%Binary%", 5], conditions.sanitize
78
+ now = Time.now
79
+ conditions.created_at_after = now
80
+ assert_equal ["\"accounts\".\"name\" LIKE ? OR \"accounts\".\"id\" > ? AND \"accounts\".\"created_at\" > ?", "%Binary%", 5, now], conditions.sanitize
81
+ end
90
82
 
91
83
  def test_conditions
92
84
  conditions = Searchlogic::Cache::AccountConditions.new
@@ -94,52 +86,40 @@ module ConditionsTests
94
86
  v = {:name_like => "Binary", :created_at_greater_than => now}
95
87
  conditions.conditions = v
96
88
  assert_equal v, conditions.conditions
97
-
89
+
98
90
  sql = "id in (1,2,3,4)"
99
91
  conditions.conditions = sql
100
92
  assert_equal sql, conditions.conditions
101
- assert_equal({}, conditions.send(:objects))
102
-
93
+ assert_equal [], conditions.send(:objects)
94
+
103
95
  v2 = {:id_less_than => 5, :name_begins_with => "Beginning of string"}
104
96
  conditions.conditions = v2
105
97
  assert_equal v2, conditions.conditions
106
-
98
+
107
99
  v = {:name_like => "Binary", :created_at_greater_than => now}
108
100
  conditions.conditions = v
109
101
  assert_equal v2.merge(v), conditions.conditions
110
-
102
+
111
103
  sql2 = "id > 5 and name = 'Test'"
112
104
  conditions.conditions = sql2
113
105
  assert_equal sql2, conditions.conditions
114
- assert_equal({}, conditions.send(:objects))
115
-
106
+ assert_equal [], conditions.send(:objects)
107
+
116
108
  conditions.name_contains = "awesome"
117
109
  assert_equal({:name_like => "awesome"}, conditions.conditions)
118
-
110
+
119
111
  now = Time.now
120
112
  conditions.conditions = {:id_gt => "", :id => "", :name => ["", "", ""], :created_at => ["", now], :name_starts_with => "Ben"}
121
113
  assert_equal({:name_like => "awesome", :name_begins_with => "Ben", :created_at_equals => now}, conditions.conditions)
122
114
  end
123
-
124
- # Other general usage tests, need to clean these up
125
-
126
- def test_setting_conditions
127
- [Account, User, Order].each do |klass|
128
- conditions = "Searchlogic::Cache::#{klass}Conditions".constantize.new
129
- conditions.class.condition_names.each do |condition_name|
130
- conditions.send("#{condition_name}=", 1)
131
- assert_equal 1, conditions.send(condition_name)
132
- end
133
- end
134
- end
135
-
136
- def test_accessible_protected_conditions
115
+
116
+ def test_conditions_with_protected_assignments
137
117
  Account.conditions_accessible << :name_contains
138
118
  conditions = Searchlogic::Cache::AccountConditions.new
139
119
  conditions.conditions = {:created_after => Time.now, :name_contains => "Binary"}
140
120
  assert({:name_contains => "Binary"}, conditions.conditions)
141
121
  Account.send(:write_inheritable_attribute, :conditions_accessible, nil)
142
-
122
+
143
123
  Account.conditions_protected << :name_contains
144
124
  conditions = Searchlogic::Cache::AccountConditions.new
145
125
  now = Time.now
@@ -147,14 +127,14 @@ module ConditionsTests
147
127
  assert({:created_after => now}, conditions.conditions)
148
128
  Account.send(:write_inheritable_attribute, :conditions_protected, nil)
149
129
  end
150
-
151
- def test_assert_valid_values
130
+
131
+ def test_conditions_unknown
152
132
  conditions = Searchlogic::Cache::UserConditions.new
153
133
  assert_raise(NoMethodError) { conditions.conditions = {:unknown => "blah"} }
154
134
  assert_nothing_raised { conditions.conditions = {:first_name => "blah"} }
155
135
  assert_nothing_raised { conditions.conditions = {:first_name_contains => "blah"} }
156
136
  end
157
-
137
+
158
138
  def test_setting_associations
159
139
  conditions = Searchlogic::Cache::AccountConditions.new(:users => {:first_name_like => "Ben"})
160
140
  assert_equal conditions.users.first_name_like, "Ben"
@@ -162,30 +142,7 @@ module ConditionsTests
162
142
  conditions.users.last_name_begins_with = "Ben"
163
143
  assert_equal conditions.users.last_name_begins_with, "Ben"
164
144
  end
165
-
166
- def test_virtual_columns
167
- conditions = Searchlogic::Cache::AccountConditions.new
168
- conditions.hour_of_created_gt = 2
169
- assert_equal_sql ["strftime('%H', \"accounts\".\"created_at\") > ?", 2], conditions.sanitize
170
- conditions.dow_of_created_at_most = 5
171
- assert_equal_sql ["(strftime('%w', \"accounts\".\"created_at\") <= ?) AND (strftime('%H', \"accounts\".\"created_at\") > ?)", 5, 2], conditions.sanitize
172
- conditions.month_of_created_at_nil = true
173
- assert_equal_sql ["(strftime('%w', \"accounts\".\"created_at\") <= ?) AND (strftime('%H', \"accounts\".\"created_at\") > ?) AND (strftime('%m', \"accounts\".\"created_at\") IS NULL)", 5, 2], conditions.sanitize
174
- conditions.min_of_hour_of_month_of_created_at_nil = true
175
- assert_equal_sql ["(strftime('%w', \"accounts\".\"created_at\") <= ?) AND (strftime('%H', \"accounts\".\"created_at\") > ?) AND (strftime('%m', strftime('%H', strftime('%M', \"accounts\".\"created_at\"))) IS NULL) AND (strftime('%m', \"accounts\".\"created_at\") IS NULL)", 5, 2], conditions.sanitize
176
- end
177
-
178
- def test_objects
179
- conditions = Searchlogic::Cache::AccountConditions.new
180
- assert_equal({}, conditions.send(:objects))
181
145
 
182
- conditions.name_contains = "Binary"
183
- assert_equal 1, conditions.send(:objects).size
184
-
185
- conditions.users.first_name_contains = "Ben"
186
- assert_equal 2, conditions.send(:objects).size
187
- end
188
-
189
146
  def test_reset
190
147
  conditions = Searchlogic::Cache::AccountConditions.new
191
148
 
@@ -194,13 +151,13 @@ module ConditionsTests
194
151
 
195
152
  conditions.reset_name_like!
196
153
  conditions.reset_name_contains! # should set up aliases for reset
197
- assert_equal({}, conditions.send(:objects))
154
+ assert_equal [], conditions.send(:objects)
198
155
 
199
156
  conditions.users.first_name_like = "Ben"
200
157
  assert_equal 1, conditions.send(:objects).size
201
158
 
202
159
  conditions.reset_users!
203
- assert_equal({}, conditions.send(:objects))
160
+ assert_equal [], conditions.send(:objects)
204
161
 
205
162
  conditions.name_begins_with ="Binary"
206
163
  conditions.users.orders.total_gt = 200
@@ -210,12 +167,12 @@ module ConditionsTests
210
167
  assert_equal 1, conditions.send(:objects).size
211
168
 
212
169
  conditions.reset_users!
213
- assert_equal({}, conditions.send(:objects))
214
- end
215
-
216
- def test_method_conflicts
217
- conditions = Searchlogic::Cache::AccountConditions.new
218
- assert_nil conditions.id
170
+ assert_equal [], conditions.send(:objects)
171
+
172
+ conditions.name_begins_with ="Binary"
173
+ assert_equal 1, conditions.send(:objects).size
174
+ conditions.reset!
175
+ assert_equal [], conditions.send(:objects)
219
176
  end
220
177
  end
221
178
  end
@@ -0,0 +1,51 @@
1
+ require File.dirname(__FILE__) + '/../test_helper.rb'
2
+
3
+ module ConditionsTests
4
+ class GroupsTest < ActiveSupport::TestCase
5
+ def test_group_object
6
+ conditions = Searchlogic::Cache::AccountConditions.new
7
+ conditions.id_gt = 3
8
+ group1 = conditions.group
9
+ group1.name_like = "Binary"
10
+ group2 = conditions.group
11
+ group2.id_gt = 5
12
+ group21 = group2.group
13
+ group21.id_lt = 20
14
+ now = Time.now
15
+ group21.created_at_after = now
16
+ assert_equal ["\"accounts\".\"id\" > ? AND (\"accounts\".\"name\" LIKE ?) AND (\"accounts\".\"id\" > ? AND (\"accounts\".\"id\" < ? AND \"accounts\".\"created_at\" > ?))", 3, "%Binary%", 5, 20, now], conditions.sanitize
17
+ end
18
+
19
+ def test_group_block
20
+ conditions = Searchlogic::Cache::AccountConditions.new
21
+ conditions.id_gt = 3
22
+ conditions.group do |group1|
23
+ group1.name_like = "Binary"
24
+ end
25
+ now = Time.now
26
+ conditions.group do |group2|
27
+ group2.id_gt = 5
28
+ group2.group do |group21|
29
+ group21.id_lt = 20
30
+ group21.created_at_after = now
31
+ end
32
+ end
33
+ assert_equal ["\"accounts\".\"id\" > ? AND (\"accounts\".\"name\" LIKE ?) AND (\"accounts\".\"id\" > ? AND (\"accounts\".\"id\" < ? AND \"accounts\".\"created_at\" > ?))", 3, "%Binary%", 5, 20, now], conditions.sanitize
34
+ end
35
+
36
+ def test_group_hash
37
+ now = Time.now
38
+ conditions = Searchlogic::Cache::AccountConditions.new(
39
+ :id_gt => 3,
40
+ :group => [
41
+ {:name_like => "Binary"},
42
+ {
43
+ :id_gt => 5,
44
+ :group => {:created_at_after => now}
45
+ }
46
+ ]
47
+ )
48
+ assert_equal ["\"accounts\".\"id\" > ? AND (\"accounts\".\"name\" LIKE ?) AND (\"accounts\".\"id\" > ? AND (\"accounts\".\"created_at\" > ?))", 3, "%Binary%", 5, now], conditions.sanitize
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,24 @@
1
+ require File.dirname(__FILE__) + '/../test_helper.rb'
2
+
3
+ module ConditionsTests
4
+ class MagicMethodsTest < ActiveSupport::TestCase
5
+ def test_virtual_columns
6
+ search = Account.new_search
7
+ conditions = search.conditions
8
+ conditions.hour_of_created_gt = 2
9
+ assert_equal ["(strftime('%H', \"accounts\".\"created_at\") * 1) > ?", 2], conditions.sanitize
10
+ conditions.dow_of_created_at_most = 5
11
+ assert_equal ["(strftime('%H', \"accounts\".\"created_at\") * 1) > ? AND (strftime('%w', \"accounts\".\"created_at\") * 1) <= ?", 2, 5], conditions.sanitize
12
+ conditions.month_of_created_at_nil = true
13
+ assert_equal ["(strftime('%H', \"accounts\".\"created_at\") * 1) > ? AND (strftime('%w', \"accounts\".\"created_at\") * 1) <= ? AND (strftime('%m', \"accounts\".\"created_at\") * 1) IS NULL", 2, 5], conditions.sanitize
14
+ conditions.min_of_hour_of_month_of_created_at_nil = true
15
+ assert_equal ["(strftime('%H', \"accounts\".\"created_at\") * 1) > ? AND (strftime('%w', \"accounts\".\"created_at\") * 1) <= ? AND (strftime('%m', \"accounts\".\"created_at\") * 1) IS NULL AND (strftime('%m', (strftime('%H', (strftime('%M', \"accounts\".\"created_at\") * 1)) * 1)) * 1) IS NULL", 2, 5], conditions.sanitize
16
+ assert_nothing_raised { search.all }
17
+ end
18
+ end
19
+
20
+ def test_method_conflicts
21
+ conditions = Searchlogic::Cache::AccountConditions.new
22
+ assert_nil conditions.id
23
+ end
24
+ end
@@ -142,7 +142,7 @@ module SearchTests
142
142
  search.conditions.users.id_greater_than = 2
143
143
  search.page = 3
144
144
  search.readonly = true
145
- assert_equal_find_options({:joins => :users, :offset => 4, :readonly => true, :conditions => ["(\"accounts\".\"name\" LIKE ?) AND (\"users\".\"id\" > ?)", "%Binary%", 2], :limit => 2 }, search.sanitize)
145
+ assert_equal({:joins => :users, :offset => 4, :readonly => true, :conditions => ["\"accounts\".\"name\" LIKE ? AND \"users\".\"id\" > ?", "%Binary%", 2], :limit => 2 }, search.sanitize)
146
146
  end
147
147
 
148
148
  def test_scope
@@ -151,7 +151,7 @@ module SearchTests
151
151
  conditions = search.conditions
152
152
  assert_equal "some sql", search.conditions.conditions
153
153
  search.conditions = nil
154
- assert_nil search.conditions.conditions
154
+ assert_equal({}, search.conditions.conditions)
155
155
  search.conditions = "some sql"
156
156
  assert_equal "some sql", search.conditions.conditions
157
157
  search.conditions = "some sql"
@@ -217,7 +217,7 @@ module SearchTests
217
217
 
218
218
  search = Account.new_search(:conditions => {:users => {:orders => {:id_gt => bens_order.id}}})
219
219
  assert_equal 1, search.count
220
-
220
+
221
221
  search = Order.new_search(:conditions => {:user => {:account => {:id_gt => binary_logic.id}}})
222
222
  assert_equal 1, search.count
223
223
 
@@ -233,5 +233,9 @@ module SearchTests
233
233
  def test_sti
234
234
 
235
235
  end
236
+
237
+ def test_include_in_relationships
238
+
239
+ end
236
240
  end
237
241
  end