searchlogic 1.5.4 → 1.5.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/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