query_string_search 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.hound.yml +3 -0
- data/.travis.yml +9 -0
- data/README.md +8 -2
- data/lib/query_string_search/matchers/match_attribute.rb +5 -2
- data/lib/query_string_search/matchers/match_attribute_value.rb +3 -1
- data/lib/query_string_search/matchers/match_multiple_attribute_values.rb +21 -0
- data/lib/query_string_search/matchers/match_no_attribute.rb +5 -2
- data/lib/query_string_search/version.rb +1 -1
- data/query_string_search.gemspec +4 -2
- data/spec/doubles/search_target.rb +6 -0
- data/spec/features/find_records_that_match_one_of_many_attributes_spec.rb +13 -0
- data/spec/lib/query_string_search/matchers/match_attribute_spec.rb +10 -9
- data/spec/lib/query_string_search/matchers/match_attribute_value_spec.rb +12 -15
- data/spec/lib/query_string_search/matchers/match_multiple_attribute_values_spec.rb +47 -0
- data/spec/lib/query_string_search/matchers/match_no_attribute_spec.rb +10 -9
- data/spec/spec_helper.rb +3 -2
- metadata +42 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3b484ab328b2b5e889f3c0760ef857b3eccdddd8
|
4
|
+
data.tar.gz: d0071f6f1ca439042d640ce53271beda186375e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44babe5feac2376030fe68edaa8a740c7f684959de01142558faa0d108ae86fc29ceeec5fd4a37896f38a19f6c95783c9da365afdea532632ab3e0ed110282f7
|
7
|
+
data.tar.gz: bc97993d98ba3a8fd352729a2bbbb3a329ee1d28d957c926e210f311fd42670526b538834a423092bdac947b519d0d3e4c99849cf47886b30722b908025d1bb5
|
data/.hound.yml
ADDED
data/.travis.yml
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
- 2.1.5
|
4
|
+
- 2.2.0
|
5
|
+
- 2.0.0-p598
|
6
|
+
addons:
|
7
|
+
code_climate:
|
8
|
+
repo_token:
|
9
|
+
secure: XnZ8VLwsAVr3lrJ3gInolfi1dALfyu0XF74t7VExawsSGuDJzFnx4lwqw139uQHqEUNOl/lj+SHMjgEIxtoM6LjX/JBiCQLTMyKKz5EMwUvFULz4vWaGy2mgyA48WDXZL/s1k0GW7/Q8wxpdQ7uU2izx2RaJ+PLmcYUNQhNBbMI=
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Query String Search
|
1
|
+
# Query String Search [![Build Status](https://api.travis-ci.org/umn-asr/query_string_search.svg?branch=master)](https://travis-ci.org/umn-asr/query_string_search) [![Code Climate](https://codeclimate.com/github/umn-asr/query_string_search/badges/gpa.svg)](https://codeclimate.com/github/umn-asr/query_string_search)
|
2
2
|
|
3
3
|
Provides an easy way to implement searching in your API endpoints
|
4
4
|
|
@@ -28,6 +28,12 @@ Returns every movie without ratings.
|
|
28
28
|
|
29
29
|
Returns every movie with a year of 1994
|
30
30
|
|
31
|
+
### Return all data that matches one of many attributes
|
32
|
+
|
33
|
+
`movies?q=year=1994|1995`
|
34
|
+
|
35
|
+
Returns all movies with a year of 1994 or 1995
|
36
|
+
|
31
37
|
### Combining Searches
|
32
38
|
|
33
39
|
Search criteria can be separated with commas
|
@@ -41,7 +47,7 @@ Records that match **all** the criteria will be returned. All un-rated movies ma
|
|
41
47
|
Add this line to your application's Gemfile:
|
42
48
|
|
43
49
|
```ruby
|
44
|
-
gem 'query_string_search'
|
50
|
+
gem 'query_string_search'
|
45
51
|
```
|
46
52
|
|
47
53
|
And then execute:
|
@@ -4,10 +4,13 @@ class MatchAttribute < QueryStringSearch::AbstractMatcher
|
|
4
4
|
end
|
5
5
|
|
6
6
|
def self.reserved_words
|
7
|
-
|
7
|
+
[
|
8
|
+
/^true$/,
|
9
|
+
/^all$/
|
10
|
+
]
|
8
11
|
end
|
9
12
|
|
10
13
|
def self.build_me?(_, search_param)
|
11
|
-
reserved_words.
|
14
|
+
reserved_words.any? { |r| r.match(search_param) }
|
12
15
|
end
|
13
16
|
end
|
@@ -6,6 +6,8 @@ class MatchAttributeValue < QueryStringSearch::AbstractMatcher
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def self.build_me?(search_type, search_param)
|
9
|
-
search_param &&
|
9
|
+
search_param &&
|
10
|
+
search_type &&
|
11
|
+
all_reserved_words.none? { |r| r.match(search_param) }
|
10
12
|
end
|
11
13
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class MatchMultipleAttributeValues < QueryStringSearch::AbstractMatcher
|
2
|
+
def match?(target)
|
3
|
+
match_with_contingency do
|
4
|
+
value.include?(target.public_send(attribute).to_s.upcase)
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.reserved_words
|
9
|
+
[
|
10
|
+
/^\w+\|\w+/
|
11
|
+
]
|
12
|
+
end
|
13
|
+
|
14
|
+
def value=(x)
|
15
|
+
super(x.split("|").map(&:upcase))
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.build_me?(_, search_param)
|
19
|
+
reserved_words.any? { |r| r.match(search_param) }
|
20
|
+
end
|
21
|
+
end
|
@@ -4,10 +4,13 @@ class MatchNoAttribute < QueryStringSearch::AbstractMatcher
|
|
4
4
|
end
|
5
5
|
|
6
6
|
def self.reserved_words
|
7
|
-
|
7
|
+
[
|
8
|
+
/^false$/,
|
9
|
+
/^none$/
|
10
|
+
]
|
8
11
|
end
|
9
12
|
|
10
13
|
def self.build_me?(_, search_param)
|
11
|
-
reserved_words.
|
14
|
+
reserved_words.any? { |r| r.match(search_param) }
|
12
15
|
end
|
13
16
|
end
|
data/query_string_search.gemspec
CHANGED
@@ -6,8 +6,8 @@ require 'query_string_search/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "query_string_search"
|
8
8
|
spec.version = QueryStringSearch::VERSION
|
9
|
-
spec.authors = ["Ian Whitney"]
|
10
|
-
spec.email = ["
|
9
|
+
spec.authors = ["Ian Whitney", "Debbie Gillespie", "Davin Lagerroos"]
|
10
|
+
spec.email = ["asrwebteam@umn.edu"]
|
11
11
|
spec.summary = %q{Provides a standard way to do searches using query strings in an API endpoint}
|
12
12
|
spec.homepage = "https://github.com/umn-asr/query_string_search"
|
13
13
|
spec.license = ""
|
@@ -20,5 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.add_development_dependency "bundler", "~> 1.7"
|
21
21
|
spec.add_development_dependency "rake", "~> 10.0"
|
22
22
|
spec.add_development_dependency "rspec", "~> 3"
|
23
|
+
spec.add_development_dependency "codeclimate-test-reporter", "~> 0.4"
|
24
|
+
spec.add_development_dependency "travis", "~> 1.7"
|
23
25
|
spec.add_development_dependency "rubocop"
|
24
26
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require_relative "../../lib/query_string_search"
|
2
|
+
require_relative "../fixtures/movie"
|
3
|
+
|
4
|
+
RSpec.describe "Finding data that matches one of many attributes" do
|
5
|
+
let(:data_set) { Movie.random_collection }
|
6
|
+
let(:movies_in_1994_or_1995) { data_set.select { |d| %w(1994 1995).include?(d.year) } }
|
7
|
+
|
8
|
+
it "Returns records that match the requested value" do
|
9
|
+
results = QueryStringSearch.new(data_set, "year=1994|1995").results
|
10
|
+
|
11
|
+
expect(results).to eq(movies_in_1994_or_1995)
|
12
|
+
end
|
13
|
+
end
|
@@ -1,10 +1,11 @@
|
|
1
1
|
require_relative "../../../../lib/query_string_search/abstract_matcher"
|
2
|
+
require_relative "../../../doubles/search_target"
|
2
3
|
|
3
4
|
RSpec.describe MatchAttribute do
|
4
5
|
describe "match?" do
|
5
6
|
describe "if the target's attribute is not nil" do
|
6
|
-
let(:target) {
|
7
|
-
let(:subject) { MatchAttribute.new(:
|
7
|
+
let(:target) { SearchTarget.new(property: "search_value") }
|
8
|
+
let(:subject) { MatchAttribute.new(:property) }
|
8
9
|
|
9
10
|
it "is true" do
|
10
11
|
expect(subject.match?(target)).to be_truthy
|
@@ -12,8 +13,8 @@ RSpec.describe MatchAttribute do
|
|
12
13
|
end
|
13
14
|
|
14
15
|
describe "if the target's attribute is true" do
|
15
|
-
let(:target) {
|
16
|
-
let(:subject) { MatchAttribute.new(:
|
16
|
+
let(:target) { SearchTarget.new(property: true) }
|
17
|
+
let(:subject) { MatchAttribute.new(:property) }
|
17
18
|
|
18
19
|
it "is true" do
|
19
20
|
expect(subject.match?(target)).to be_truthy
|
@@ -21,8 +22,8 @@ RSpec.describe MatchAttribute do
|
|
21
22
|
end
|
22
23
|
|
23
24
|
describe "if the target's attribute is nil" do
|
24
|
-
let(:target) {
|
25
|
-
let(:subject) { MatchAttribute.new(:
|
25
|
+
let(:target) { SearchTarget.new(property: nil) }
|
26
|
+
let(:subject) { MatchAttribute.new(:property) }
|
26
27
|
|
27
28
|
it "is false" do
|
28
29
|
expect(subject.match?(target)).to be_falsey
|
@@ -30,8 +31,8 @@ RSpec.describe MatchAttribute do
|
|
30
31
|
end
|
31
32
|
|
32
33
|
describe "if the target's attribute is false" do
|
33
|
-
let(:target) {
|
34
|
-
let(:subject) { MatchAttribute.new(:
|
34
|
+
let(:target) { SearchTarget.new(property: false) }
|
35
|
+
let(:subject) { MatchAttribute.new(:property) }
|
35
36
|
|
36
37
|
it "is true" do
|
37
38
|
expect(subject.match?(target)).to be_falsey
|
@@ -39,7 +40,7 @@ RSpec.describe MatchAttribute do
|
|
39
40
|
end
|
40
41
|
|
41
42
|
describe "if the target doesn't have the attribute" do
|
42
|
-
let(:target) {
|
43
|
+
let(:target) { SearchTarget.new(property: rand) }
|
43
44
|
let(:subject) { MatchAttribute.new(:bad_attr) }
|
44
45
|
|
45
46
|
it "is false" do
|
@@ -1,11 +1,11 @@
|
|
1
1
|
require_relative "../../../../lib/query_string_search/abstract_matcher"
|
2
|
+
require_relative "../../../doubles/search_target"
|
2
3
|
|
3
4
|
RSpec.describe MatchAttributeValue do
|
4
5
|
describe "match?" do
|
5
6
|
describe "given a target with an attribute that matches the Parameter's attribute" do
|
6
|
-
let(:target) {
|
7
|
-
let(:
|
8
|
-
let(:subject) { MatchAttributeValue.new(:search_attr, value) }
|
7
|
+
let(:target) { SearchTarget.new(property: "search_value") }
|
8
|
+
let(:subject) { MatchAttributeValue.new(:property, "search_value") }
|
9
9
|
|
10
10
|
it "returns true" do
|
11
11
|
expect(subject.match?(target)).to be_truthy
|
@@ -13,9 +13,8 @@ RSpec.describe MatchAttributeValue do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
describe "given a value with spaces" do
|
16
|
-
let(:target) {
|
17
|
-
let(:
|
18
|
-
let(:subject) { MatchAttributeValue.new(:search_attr, value) }
|
16
|
+
let(:target) { SearchTarget.new(property: "search value") }
|
17
|
+
let(:subject) { MatchAttributeValue.new(:property, "search value") }
|
19
18
|
|
20
19
|
it "returns true" do
|
21
20
|
expect(subject.match?(target)).to be_truthy
|
@@ -23,9 +22,8 @@ RSpec.describe MatchAttributeValue do
|
|
23
22
|
end
|
24
23
|
|
25
24
|
describe "given a target with an attribute that does not match the Parameter's attribute" do
|
26
|
-
let(:target) {
|
27
|
-
let(:
|
28
|
-
let(:subject) { MatchAttributeValue.new(:search_attr, value) }
|
25
|
+
let(:target) { SearchTarget.new(property: "other_value") }
|
26
|
+
let(:subject) { MatchAttributeValue.new(:property, "search_value") }
|
29
27
|
|
30
28
|
it "returns false" do
|
31
29
|
expect(subject.match?(target)).to be_falsey
|
@@ -33,9 +31,8 @@ RSpec.describe MatchAttributeValue do
|
|
33
31
|
end
|
34
32
|
|
35
33
|
describe "if the target doesn't have the attribute" do
|
36
|
-
let(:
|
37
|
-
let(:
|
38
|
-
let(:subject) { MatchAttribute.new(:bad_attr, value) }
|
34
|
+
let(:target) { SearchTarget.new(property: "search_value") }
|
35
|
+
let(:subject) { MatchAttribute.new(:bad_attr, "search_value") }
|
39
36
|
|
40
37
|
it "is false" do
|
41
38
|
expect(subject.match?(target)).to be_falsey
|
@@ -46,14 +43,14 @@ RSpec.describe MatchAttributeValue do
|
|
46
43
|
describe "build_me?" do
|
47
44
|
describe "given a non-nil search_type and search_param" do
|
48
45
|
it "is true" do
|
49
|
-
expect(MatchAttributeValue.build_me?(rand, rand)).to be_truthy
|
46
|
+
expect(MatchAttributeValue.build_me?(rand.to_s, rand.to_s)).to be_truthy
|
50
47
|
end
|
51
48
|
end
|
52
49
|
|
53
50
|
describe "given a nil search_type or search_param" do
|
54
51
|
it "is false" do
|
55
|
-
expect(MatchAttributeValue.build_me?(rand, nil)).to be_falsey
|
56
|
-
expect(MatchAttributeValue.build_me?(nil, rand)).to be_falsey
|
52
|
+
expect(MatchAttributeValue.build_me?(rand.to_s, nil)).to be_falsey
|
53
|
+
expect(MatchAttributeValue.build_me?(nil, rand.to_s)).to be_falsey
|
57
54
|
expect(MatchAttributeValue.build_me?(nil, nil)).to be_falsey
|
58
55
|
end
|
59
56
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require_relative "../../../../lib/query_string_search/abstract_matcher"
|
2
|
+
require_relative "../../../doubles/search_target"
|
3
|
+
|
4
|
+
RSpec.describe MatchMultipleAttributeValues do
|
5
|
+
describe "match?" do
|
6
|
+
it "matches if the target's attribute is one of the values" do
|
7
|
+
target = SearchTarget.new(property: "1994")
|
8
|
+
matcher = MatchMultipleAttributeValues.new(:property, "1994|1995")
|
9
|
+
expect(matcher.match?(target)).to be_truthy
|
10
|
+
end
|
11
|
+
|
12
|
+
it "does not match if the target's attribute is not one of the values" do
|
13
|
+
target = SearchTarget.new(property: "199")
|
14
|
+
matcher = MatchMultipleAttributeValues.new(:property, "1994|1995")
|
15
|
+
expect(matcher.match?(target)).to be_falsey
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "if the target doesn't have the attribute" do
|
19
|
+
it "is false" do
|
20
|
+
target = SearchTarget.new(property: "1994")
|
21
|
+
subject = MatchAttribute.new(:bad_attr, "1994|1995")
|
22
|
+
|
23
|
+
expect(subject.match?(target)).to be_falsey
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "build_me?" do
|
29
|
+
describe "given a search type and search param that contains a pipe" do
|
30
|
+
it "is true" do
|
31
|
+
expect(MatchMultipleAttributeValues.build_me?(rand, "x|y")).to be_truthy
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe "given a search type and search param that starts with a pipe" do
|
36
|
+
it "is false" do
|
37
|
+
expect(MatchMultipleAttributeValues.build_me?(rand, "|x|y")).to be_falsey
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe "given a search type without a pipe" do
|
42
|
+
it "is false" do
|
43
|
+
expect(MatchMultipleAttributeValues.build_me?(rand, "xy")).to be_falsey
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -1,10 +1,11 @@
|
|
1
1
|
require_relative "../../../../lib/query_string_search/abstract_matcher"
|
2
|
+
require_relative "../../../doubles/search_target"
|
2
3
|
|
3
4
|
RSpec.describe MatchNoAttribute do
|
4
5
|
describe "match?" do
|
5
6
|
describe "if the target's attribute is not nil" do
|
6
|
-
let(:target) {
|
7
|
-
let(:subject) { MatchNoAttribute.new(:
|
7
|
+
let(:target) { SearchTarget.new(property: "search_value") }
|
8
|
+
let(:subject) { MatchNoAttribute.new(:property) }
|
8
9
|
|
9
10
|
it "is false" do
|
10
11
|
expect(subject.match?(target)).to be_falsey
|
@@ -12,8 +13,8 @@ RSpec.describe MatchNoAttribute do
|
|
12
13
|
end
|
13
14
|
|
14
15
|
describe "if the target's attribute is true" do
|
15
|
-
let(:target) {
|
16
|
-
let(:subject) { MatchNoAttribute.new(:
|
16
|
+
let(:target) { SearchTarget.new(property: true) }
|
17
|
+
let(:subject) { MatchNoAttribute.new(:property) }
|
17
18
|
|
18
19
|
it "is true" do
|
19
20
|
expect(subject.match?(target)).to be_falsey
|
@@ -21,8 +22,8 @@ RSpec.describe MatchNoAttribute do
|
|
21
22
|
end
|
22
23
|
|
23
24
|
describe "if the target's attribute is false" do
|
24
|
-
let(:target) {
|
25
|
-
let(:subject) { MatchNoAttribute.new(:
|
25
|
+
let(:target) { SearchTarget.new(property: false) }
|
26
|
+
let(:subject) { MatchNoAttribute.new(:property) }
|
26
27
|
|
27
28
|
it "is true" do
|
28
29
|
expect(subject.match?(target)).to be_truthy
|
@@ -30,8 +31,8 @@ RSpec.describe MatchNoAttribute do
|
|
30
31
|
end
|
31
32
|
|
32
33
|
describe "if the target's attribute is nil" do
|
33
|
-
let(:target) {
|
34
|
-
let(:subject) { MatchNoAttribute.new(:
|
34
|
+
let(:target) { SearchTarget.new(property: nil) }
|
35
|
+
let(:subject) { MatchNoAttribute.new(:property) }
|
35
36
|
|
36
37
|
it "is true" do
|
37
38
|
expect(subject.match?(target)).to be_truthy
|
@@ -39,7 +40,7 @@ RSpec.describe MatchNoAttribute do
|
|
39
40
|
end
|
40
41
|
|
41
42
|
describe "if the target doesn't have the attribute" do
|
42
|
-
let(:target) {
|
43
|
+
let(:target) { SearchTarget.new(property: rand) }
|
43
44
|
let(:subject) { MatchNoAttribute.new(:bad_attr) }
|
44
45
|
|
45
46
|
it "is false" do
|
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require "codeclimate-test-reporter"
|
2
|
+
CodeClimate::TestReporter.start
|
3
|
+
|
1
4
|
# This file was generated by the `rails generate rspec:install` command. Conventionally, all
|
2
5
|
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
3
6
|
# The generated `.rspec` file contains `--require spec_helper` which will cause this
|
@@ -81,5 +84,3 @@ RSpec.configure do |config|
|
|
81
84
|
# as the one that triggered the failure.
|
82
85
|
Kernel.srand config.seed
|
83
86
|
end
|
84
|
-
|
85
|
-
Target = Struct.new(:search_attr)
|
metadata
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: query_string_search
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ian Whitney
|
8
|
+
- Debbie Gillespie
|
9
|
+
- Davin Lagerroos
|
8
10
|
autorequire:
|
9
11
|
bindir: bin
|
10
12
|
cert_chain: []
|
11
|
-
date: 2015-
|
13
|
+
date: 2015-02-11 00:00:00.000000000 Z
|
12
14
|
dependencies:
|
13
15
|
- !ruby/object:Gem::Dependency
|
14
16
|
name: bundler
|
@@ -52,6 +54,34 @@ dependencies:
|
|
52
54
|
- - "~>"
|
53
55
|
- !ruby/object:Gem::Version
|
54
56
|
version: '3'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: codeclimate-test-reporter
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - "~>"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0.4'
|
64
|
+
type: :development
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - "~>"
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0.4'
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: travis
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - "~>"
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '1.7'
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - "~>"
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '1.7'
|
55
85
|
- !ruby/object:Gem::Dependency
|
56
86
|
name: rubocop
|
57
87
|
requirement: !ruby/object:Gem::Requirement
|
@@ -68,15 +98,17 @@ dependencies:
|
|
68
98
|
version: '0'
|
69
99
|
description:
|
70
100
|
email:
|
71
|
-
-
|
101
|
+
- asrwebteam@umn.edu
|
72
102
|
executables: []
|
73
103
|
extensions: []
|
74
104
|
extra_rdoc_files: []
|
75
105
|
files:
|
76
106
|
- ".gitignore"
|
107
|
+
- ".hound.yml"
|
77
108
|
- ".rspec"
|
78
109
|
- ".rubocop.yml"
|
79
110
|
- ".ruby-version"
|
111
|
+
- ".travis.yml"
|
80
112
|
- Gemfile
|
81
113
|
- LICENSE.txt
|
82
114
|
- README.md
|
@@ -87,13 +119,16 @@ files:
|
|
87
119
|
- lib/query_string_search/matchers/match_all.rb
|
88
120
|
- lib/query_string_search/matchers/match_attribute.rb
|
89
121
|
- lib/query_string_search/matchers/match_attribute_value.rb
|
122
|
+
- lib/query_string_search/matchers/match_multiple_attribute_values.rb
|
90
123
|
- lib/query_string_search/matchers/match_no_attribute.rb
|
91
124
|
- lib/query_string_search/search_options.rb
|
92
125
|
- lib/query_string_search/search_parameters.rb
|
93
126
|
- lib/query_string_search/version.rb
|
94
127
|
- query_string_search.gemspec
|
128
|
+
- spec/doubles/search_target.rb
|
95
129
|
- spec/features/find_all_data_spec.rb
|
96
130
|
- spec/features/find_records_that_match_multiple_parameters_spec.rb
|
131
|
+
- spec/features/find_records_that_match_one_of_many_attributes_spec.rb
|
97
132
|
- spec/features/find_records_with_matching_attribute_values_spec.rb
|
98
133
|
- spec/features/find_records_with_nil_attributes_spec.rb
|
99
134
|
- spec/features/find_records_with_nonnil_attributes_spec.rb
|
@@ -104,6 +139,7 @@ files:
|
|
104
139
|
- spec/lib/query_string_search/matchers/match_all_spec.rb
|
105
140
|
- spec/lib/query_string_search/matchers/match_attribute_spec.rb
|
106
141
|
- spec/lib/query_string_search/matchers/match_attribute_value_spec.rb
|
142
|
+
- spec/lib/query_string_search/matchers/match_multiple_attribute_values_spec.rb
|
107
143
|
- spec/lib/query_string_search/matchers/match_no_attribute_spec.rb
|
108
144
|
- spec/lib/query_string_search/search_options_spec.rb
|
109
145
|
- spec/lib/query_string_search/search_parameters_spec.rb
|
@@ -133,8 +169,10 @@ signing_key:
|
|
133
169
|
specification_version: 4
|
134
170
|
summary: Provides a standard way to do searches using query strings in an API endpoint
|
135
171
|
test_files:
|
172
|
+
- spec/doubles/search_target.rb
|
136
173
|
- spec/features/find_all_data_spec.rb
|
137
174
|
- spec/features/find_records_that_match_multiple_parameters_spec.rb
|
175
|
+
- spec/features/find_records_that_match_one_of_many_attributes_spec.rb
|
138
176
|
- spec/features/find_records_with_matching_attribute_values_spec.rb
|
139
177
|
- spec/features/find_records_with_nil_attributes_spec.rb
|
140
178
|
- spec/features/find_records_with_nonnil_attributes_spec.rb
|
@@ -145,6 +183,7 @@ test_files:
|
|
145
183
|
- spec/lib/query_string_search/matchers/match_all_spec.rb
|
146
184
|
- spec/lib/query_string_search/matchers/match_attribute_spec.rb
|
147
185
|
- spec/lib/query_string_search/matchers/match_attribute_value_spec.rb
|
186
|
+
- spec/lib/query_string_search/matchers/match_multiple_attribute_values_spec.rb
|
148
187
|
- spec/lib/query_string_search/matchers/match_no_attribute_spec.rb
|
149
188
|
- spec/lib/query_string_search/search_options_spec.rb
|
150
189
|
- spec/lib/query_string_search/search_parameters_spec.rb
|