inquisitio 0.0.11 → 0.0.12

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.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZjA2YTc0ZDY2MWMwODRhODBlZGNjOWYzYzE3MzRkYjgwOGFiNjRkNg==
5
- data.tar.gz: !binary |-
6
- MDBmN2I1ZjMwMzEwZDk4MGQ4ZjZkZjEzNGY2ODZlYWEwNjBmYmY4NA==
2
+ SHA1:
3
+ metadata.gz: 7fd33b4a7884125f5845e35aab4c28c9ce7e17d4
4
+ data.tar.gz: 8008f740c7dc2bbdc91cf9decde94df3c1bd73e8
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- MzJkN2U4OGE0ZmY4YWVlMjUxYmE3YjBmY2M0MmMzYTg0NmY4YjNlOGMyNTk3
10
- YzUxNmVhZGM5ODk5Yzk4MGVhNWZjODBlM2I4NDk4OGZkNGUwM2Q2ZTUwZDNi
11
- YWE4M2JlNjRhMzhhMTEzMWZmMDljYWYwZGU1ZDY1YTVmY2M0MzE=
12
- data.tar.gz: !binary |-
13
- NWVlYWQzYWJlNmM3MmI5NGM3ZGViNTNhODA3MmU4NTU0ZDlmYzUwMTYxMzE4
14
- M2M4NGQ5ZDYxNWVjZTA5MzE5MDlhYmQ3ODVkYTM3M2EzZDNhN2Y2OWNkZjBh
15
- Y2VmYjczNzhjMjg1YjBlMmVjMjhhMWU3OGU5ZDUwZTIzOTFjYzQ=
6
+ metadata.gz: 61bdc0964f9dbaffc6590de6b6013519ceba2cafe8cc36a52463db1f3e082a47d51e55b7234c5767880e4aa6516fb5ccd1e50eb3f6bbbbcb0fed74e77ca1d170
7
+ data.tar.gz: b933134ee24f80390eb6a76c98ebcf68a29061943da85a2b1bd4d54df330526416d13f6246a0295c7bf9e7eec81fb634951fdf6126e20acd2387b62cbad4fe27
data/CHANGELOG.md CHANGED
@@ -1,4 +1,8 @@
1
- 0.0.11 / Unreleased
1
+ 0.0.12 / 2013-10-24
2
+
3
+ [FEATURE] Allow filter values to be arrays.
4
+
5
+ 0.0.12 / 2013-10-24
2
6
 
3
7
  [FEATURE] Searcher now has default size read from configuration.
4
8
  [FEATURE] Searcher now performs simple sanatization of search queries.
@@ -27,9 +27,20 @@ module Inquisitio
27
27
  end
28
28
 
29
29
  def boolean_query
30
- filters = @filters.map{|key,value| "#{key.to_s.gsub('\'','')}:'#{value.to_s.gsub('\'','')}'"}
30
+ filters = @filters.map do |key,value|
31
+ key = key.to_s.gsub('\'','')
32
+
33
+ if value.is_a?(String)
34
+ "#{key}:'#{value.to_s.gsub('\'','')}'"
35
+ elsif value.is_a?(Array)
36
+ mapping = value.map {|v| "#{key}:'#{v.to_s.gsub('\'','')}'" }.join(" ")
37
+ "(or #{mapping})"
38
+ else
39
+ raise InquisitioError.new("Filter values must be strings or arrays.")
40
+ end
41
+ end
31
42
  queries = filters.join(" ")
32
- queries = "'#{@query.gsub('\'','')}' #{queries}" if @query
43
+ queries = "'#{@query.to_s.gsub('\'','')}' #{queries}" if @query
33
44
  "bq=#{URI.encode("(and #{queries})")}"
34
45
  end
35
46
 
@@ -1,3 +1,3 @@
1
1
  module Inquisitio
2
- VERSION = "0.0.11"
2
+ VERSION = "0.0.12"
3
3
  end
@@ -63,5 +63,15 @@ module Inquisitio
63
63
  assert_equal expected_url, url
64
64
  end
65
65
 
66
+ def test_create_search_url_with_filter_array
67
+ url = SearchUrlBuilder.build(query: 'Star Wars', filters: {genre: ['Animation', 'Action']})
68
+ expected_url = 'http://my.search-endpoint.com/2011-02-01/search?bq=(and%20\'Star%20Wars\'%20(or%20genre:\'Animation\'%20genre:\'Action\'))&size=10'
69
+ assert_equal expected_url, url
70
+ end
71
+ def test_throws_exception_when_using_unsupported_filter_value_type
72
+ assert_raises(InquisitioError) do
73
+ SearchUrlBuilder.build(query: 'Star Wars', filters: {genre: {}})
74
+ end
75
+ end
66
76
  end
67
77
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inquisitio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Walker
@@ -42,42 +42,42 @@ dependencies:
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: mocha
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: yard
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ! '>='
73
+ - - '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ! '>='
80
+ - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
@@ -143,12 +143,12 @@ require_paths:
143
143
  - lib
144
144
  required_ruby_version: !ruby/object:Gem::Requirement
145
145
  requirements:
146
- - - ! '>='
146
+ - - '>='
147
147
  - !ruby/object:Gem::Version
148
148
  version: '0'
149
149
  required_rubygems_version: !ruby/object:Gem::Requirement
150
150
  requirements:
151
- - - ! '>='
151
+ - - '>='
152
152
  - !ruby/object:Gem::Version
153
153
  version: '0'
154
154
  requirements: []