searchgasm 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. data/CHANGELOG.rdoc +12 -2
  2. data/Manifest +5 -4
  3. data/README.rdoc +15 -17
  4. data/Rakefile +1 -2
  5. data/lib/searchgasm/active_record/associations.rb +19 -31
  6. data/lib/searchgasm/active_record/base.rb +40 -9
  7. data/lib/searchgasm/condition/base.rb +1 -1
  8. data/lib/searchgasm/condition/inclusive_descendant_of.rb +0 -2
  9. data/lib/searchgasm/condition/sibling_of.rb +0 -2
  10. data/lib/searchgasm/conditions/base.rb +21 -34
  11. data/lib/searchgasm/conditions/protection.rb +8 -2
  12. data/lib/searchgasm/helpers/control_types/links.rb +9 -6
  13. data/lib/searchgasm/helpers/control_types/remote_link.rb +1 -0
  14. data/lib/searchgasm/helpers/control_types/remote_links.rb +3 -0
  15. data/lib/searchgasm/helpers/control_types/remote_select.rb +3 -0
  16. data/lib/searchgasm/helpers/control_types/select.rb +3 -0
  17. data/lib/searchgasm/helpers/form.rb +11 -4
  18. data/lib/searchgasm/search/base.rb +26 -46
  19. data/lib/searchgasm/search/conditions.rb +4 -1
  20. data/lib/searchgasm/search/pagination.rb +2 -1
  21. data/lib/searchgasm/search/scoping.rb +0 -0
  22. data/lib/searchgasm/search.rb +7 -0
  23. data/lib/searchgasm/shared/searching.rb +25 -0
  24. data/lib/searchgasm/shared/utilities.rb +32 -0
  25. data/lib/searchgasm/shared/virtual_classes.rb +39 -0
  26. data/lib/searchgasm/version.rb +1 -1
  27. data/lib/searchgasm.rb +6 -2
  28. data/searchgasm.gemspec +15 -10
  29. data/test/test_active_record_associations.rb +18 -1
  30. data/test/test_conditions_base.rb +19 -11
  31. data/test/test_search_base.rb +8 -8
  32. metadata +14 -9
  33. data/benchmarks/benchmark.rb +0 -43
  34. data/benchmarks/benchmark_helper.rb +0 -52
  35. data/benchmarks/profile.rb +0 -15
  36. data/lib/searchgasm/utilities.rb +0 -30
@@ -1,30 +0,0 @@
1
- module Searchgasm
2
- module Utilities # :nodoc:
3
- private
4
- def merge_conditions(*conditions)
5
- options = conditions.extract_options!
6
- conditions.delete_if { |condition| condition.blank? }
7
- return if conditions.blank?
8
- return conditions.first if conditions.size == 1
9
-
10
- conditions_strs = []
11
- conditions_subs = []
12
-
13
- conditions.each do |condition|
14
- next if condition.blank?
15
- arr_condition = [condition].flatten
16
- conditions_strs << arr_condition.first
17
- conditions_subs += arr_condition[1..-1]
18
- end
19
-
20
- return if conditions_strs.blank?
21
-
22
- join = options[:any] ? "OR" : "AND"
23
- conditions_str = "(#{conditions_strs.join(") #{join} (")})"
24
-
25
- return conditions_str if conditions_subs.blank?
26
-
27
- [conditions_str, *conditions_subs]
28
- end
29
- end
30
- end