textquery 0.1.8 → 0.1.9
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/.gitignore +3 -0
- data/Gemfile +5 -0
- data/README.md +4 -0
- data/lib/textquery/textquery_grammar.treetop +2 -2
- data/spec/textquery_spec.rb +11 -1
- data/textquery.gemspec +1 -1
- metadata +10 -9
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -14,6 +14,8 @@ Textquery is a simple PEG grammar with support for:
|
|
14
14
|
- case (in)sensitive
|
15
15
|
- custom delimeters
|
16
16
|
|
17
|
+
TextQuery in the wild: [PostRank](http://postrank.com/), [PaperTrail](https://papertrailapp.com/), and others!
|
18
|
+
|
17
19
|
## Example
|
18
20
|
|
19
21
|
```ruby
|
@@ -39,6 +41,8 @@ TextQuery.new("2~a~2").match?("edaf") # => false
|
|
39
41
|
TextQuery.new("a", :ignorecase => true).match?("A b cD") # => true
|
40
42
|
```
|
41
43
|
|
44
|
+
|
45
|
+
|
42
46
|
## License
|
43
47
|
|
44
48
|
The MIT License - Copyright (c) 2011 Ilya Grigorik
|
@@ -105,7 +105,7 @@ grammar TextQueryGrammar
|
|
105
105
|
end
|
106
106
|
}
|
107
107
|
/
|
108
|
-
double_quote
|
108
|
+
double_quote double_quote_words double_quote {
|
109
109
|
def eval(text, opt)
|
110
110
|
double_quote_words.eval(text, opt)
|
111
111
|
end
|
@@ -115,7 +115,7 @@ grammar TextQueryGrammar
|
|
115
115
|
end
|
116
116
|
}
|
117
117
|
/
|
118
|
-
single_quote
|
118
|
+
single_quote single_quote_words single_quote {
|
119
119
|
def eval(text, opt)
|
120
120
|
single_quote_words.eval(text, opt)
|
121
121
|
end
|
data/spec/textquery_spec.rb
CHANGED
@@ -14,7 +14,7 @@ require "textquery"
|
|
14
14
|
#
|
15
15
|
|
16
16
|
describe TextQuery do
|
17
|
-
before(:
|
17
|
+
before(:each) do
|
18
18
|
@parser = TextQuery.new
|
19
19
|
end
|
20
20
|
|
@@ -136,6 +136,11 @@ describe TextQuery do
|
|
136
136
|
parse('"to be" OR NOT "to be"').eval("to be").should be_true
|
137
137
|
end
|
138
138
|
|
139
|
+
it "should not swallow spaces inside quoted strings" do
|
140
|
+
parse('" some text "').eval("this is some text", :delim => '').should be_false
|
141
|
+
parse('" some text "').eval("this is some text that should match", :delim => '').should be_true
|
142
|
+
end
|
143
|
+
|
139
144
|
it "should accept unbalanced quotes" do
|
140
145
|
parse("awesome").eval("M&M's are awesome").should be_true
|
141
146
|
parse("M&M's").eval("M&M's are awesome").should be_true
|
@@ -270,5 +275,10 @@ describe TextQuery do
|
|
270
275
|
TextQuery.new("a b").accept { |*a| a }.should == [ :and, [ :value, 'a' ], [ :value, 'b' ] ]
|
271
276
|
TextQuery.new("a OR b").accept { |*a| a }.should == [ :or, [ :value, 'a' ], [ :value, 'b' ] ]
|
272
277
|
end
|
278
|
+
|
279
|
+
it 'should not swallow spaces in quoted strings when traversed' do
|
280
|
+
TextQuery.new('" a "').accept { |*a| a }.should == [ :value, ' a ' ]
|
281
|
+
|
282
|
+
end
|
273
283
|
end
|
274
284
|
end
|
data/textquery.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: textquery
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2012-03-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: treetop
|
16
|
-
requirement: &
|
16
|
+
requirement: &2156267080 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2156267080
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &2156262420 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2156262420
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &2156261920 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2156261920
|
47
47
|
description: Evaluate any text against a collection of match rules
|
48
48
|
email:
|
49
49
|
- ilya@igvita.com
|
@@ -84,9 +84,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
84
84
|
version: '0'
|
85
85
|
requirements: []
|
86
86
|
rubyforge_project: textquery
|
87
|
-
rubygems_version: 1.8.
|
87
|
+
rubygems_version: 1.8.10
|
88
88
|
signing_key:
|
89
89
|
specification_version: 3
|
90
90
|
summary: Evaluate any text against a collection of match rules
|
91
91
|
test_files:
|
92
92
|
- spec/textquery_spec.rb
|
93
|
+
has_rdoc:
|