searchgasm 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
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