verbal 0.1.1 → 0.1.2
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 +4 -4
- data/README.md +17 -0
- data/VERSION +1 -1
- data/lib/verbal.rb +68 -22
- data/spec/anything_but_spec.rb +26 -0
- data/spec/anything_spec.rb +26 -0
- data/spec/capture_spec.rb +24 -0
- data/spec/end_of_line_spec.rb +21 -0
- data/spec/end_of_string_spec.rb +18 -0
- data/spec/find_spec.rb +20 -0
- data/spec/line_break_spec.rb +23 -0
- data/spec/maybe_spec.rb +25 -0
- data/spec/multiple_spec.rb +26 -0
- data/spec/otherwise_spec.rb +23 -0
- data/spec/range_spec.rb +23 -0
- data/spec/start_of_line_spec.rb +21 -0
- data/spec/start_of_string_spec.rb +18 -0
- data/spec/verbal_spec.rb +1 -26
- data/verbal.gemspec +15 -2
- metadata +15 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be46d2de1760f8493f75fdde627b054376a2409c
|
4
|
+
data.tar.gz: 3a1e75bb4a2cda4f31134ac0021e7677c421b8cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8000d9253dd50b1a40cbad16284f1ceb1646a200e36bda1550bfdaf0839f50659de938d21228d56c98f531d2cec2a3d5cea78aa0b3aff26c7f859dd5dadb9d00
|
7
|
+
data.tar.gz: fce342144f71b2725d898bb36b092e74bc94a6ed309dff8625748c58d166c8df43002e66b4eef3dcc0aef9a9ae6a7739657823ed73d0b281d75d7dd6f27cedc5
|
data/README.md
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
Verbal
|
2
2
|
=====================
|
3
3
|
[](https://travis-ci.org/jimjh/verbal)
|
4
|
+
[](http://badge.fury.io/rb/verbal)
|
4
5
|
|
5
6
|
## Overview
|
6
7
|
Verbal is a Ruby library that helps to construct difficult regular expressions.
|
7
8
|
It's ported from the awesome JavaScript [VerbalExpressions](https://github.com/jehna/VerbalExpressions).
|
9
|
+
Detailed documentation is available at [rubydoc](http://rubydoc.info/gems/verbal/frames).
|
8
10
|
|
9
11
|
## Installation
|
10
12
|
|
@@ -60,6 +62,21 @@ result = replace_me.gsub( expression, "duck" );
|
|
60
62
|
puts result # Outputs "Replace duck with a duck"
|
61
63
|
```
|
62
64
|
|
65
|
+
### Capturing strings
|
66
|
+
|
67
|
+
```ruby
|
68
|
+
# create expression
|
69
|
+
verbal = Verbal.new do
|
70
|
+
capture { anything }
|
71
|
+
find /\sby\s/
|
72
|
+
capture { anything }
|
73
|
+
end
|
74
|
+
# match against test string
|
75
|
+
data = verbal.match('this is it by michael jackson')
|
76
|
+
puts data[1] # >> 'this is it'
|
77
|
+
puts data[2] # >> 'michael jackson'
|
78
|
+
```
|
79
|
+
|
63
80
|
## Issues
|
64
81
|
- I haven't yet ported the modifier code because Ruby Regexp handles modifiers a little differently.
|
65
82
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/lib/verbal.rb
CHANGED
@@ -5,16 +5,16 @@
|
|
5
5
|
class Verbal < Regexp
|
6
6
|
|
7
7
|
# @example Create a new RegExp
|
8
|
-
#
|
9
|
-
#
|
10
|
-
#
|
11
|
-
#
|
12
|
-
#
|
8
|
+
# verbal = Verbal.new do
|
9
|
+
# start_of_line
|
10
|
+
# find 'x'
|
11
|
+
# end
|
12
|
+
# verbal =~ 'x' # => 0
|
13
13
|
def initialize(&block)
|
14
|
-
@prefixes =
|
15
|
-
@source =
|
16
|
-
@suffixes =
|
17
|
-
@modifiers =
|
14
|
+
@prefixes = ''
|
15
|
+
@source = ''
|
16
|
+
@suffixes = ''
|
17
|
+
@modifiers = '' # TODO: Ruby Regexp option flags
|
18
18
|
instance_eval(&block)
|
19
19
|
super(@prefixes + @source + @suffixes, @modifiers)
|
20
20
|
end
|
@@ -53,6 +53,32 @@ class Verbal < Regexp
|
|
53
53
|
@suffixes = '$'
|
54
54
|
end
|
55
55
|
|
56
|
+
# Marks the expression to start at the beginning of the string.
|
57
|
+
# @example Matching the entire string
|
58
|
+
# verbal = Verbal.new do
|
59
|
+
# start_of_string
|
60
|
+
# find 'dinosaur'
|
61
|
+
# end_of_string
|
62
|
+
# end
|
63
|
+
# verbal.match('dinosaur') # matches
|
64
|
+
# verbal.match('a dinosaur') # does not match
|
65
|
+
def start_of_string
|
66
|
+
@prefixes = '\A' + @prefixes
|
67
|
+
end
|
68
|
+
|
69
|
+
# Marks the expression to start at the end of the string.
|
70
|
+
# @example Matching the entire string
|
71
|
+
# verbal = Verbal.new do
|
72
|
+
# start_of_string
|
73
|
+
# find 'dinosaur'
|
74
|
+
# end_of_string
|
75
|
+
# end
|
76
|
+
# verbal.match('dinosaur') # matches
|
77
|
+
# verbal.match('dinosaurs') # does not match
|
78
|
+
def end_of_string
|
79
|
+
@suffixes += '\z'
|
80
|
+
end
|
81
|
+
|
56
82
|
# Add a string to the expression that might appear once.
|
57
83
|
# @param [String] value the string to look for
|
58
84
|
# @example Find http or https.
|
@@ -61,7 +87,7 @@ class Verbal < Regexp
|
|
61
87
|
# maybe 's'
|
62
88
|
# end
|
63
89
|
def maybe(value)
|
64
|
-
append "(
|
90
|
+
append "(?:#{sanitize value})?"
|
65
91
|
end
|
66
92
|
|
67
93
|
# Matches any character any number of times.
|
@@ -70,7 +96,7 @@ class Verbal < Regexp
|
|
70
96
|
# anything
|
71
97
|
# end
|
72
98
|
def anything
|
73
|
-
append '(
|
99
|
+
append '(?:.*)'
|
74
100
|
end
|
75
101
|
|
76
102
|
# Matches any number of any character that is not in +value+.
|
@@ -80,7 +106,7 @@ class Verbal < Regexp
|
|
80
106
|
# end
|
81
107
|
# @param [String] value characters to excluded
|
82
108
|
def anything_but(value)
|
83
|
-
append "([^#{sanitize value}]*)"
|
109
|
+
append "(?:[^#{sanitize value}]*)"
|
84
110
|
end
|
85
111
|
|
86
112
|
# Adds a universal line break expression.
|
@@ -91,7 +117,7 @@ class Verbal < Regexp
|
|
91
117
|
# end
|
92
118
|
# lorem.gsub(veral, "<br>\n") # => "Lorem.<br>\nDolor<br>\namet."
|
93
119
|
def line_break
|
94
|
-
append '(
|
120
|
+
append '(?:\n|(?:\r\n))'
|
95
121
|
end
|
96
122
|
alias_method :br, :line_break
|
97
123
|
|
@@ -139,13 +165,19 @@ class Verbal < Regexp
|
|
139
165
|
append value
|
140
166
|
end
|
141
167
|
|
142
|
-
# Matches
|
143
|
-
#
|
144
|
-
# @
|
168
|
+
# Matches one or many of value.
|
169
|
+
# @param [String|Regexp] value string to match
|
170
|
+
# @example Matching multiples of "xyz"
|
171
|
+
# verbal = Verbal.new { multiple 'xyz' }
|
172
|
+
# verbal.match('this is xyzxyz')[0] # => 'xyzxyz'
|
173
|
+
# @example Matching multiples of /[xyz]/
|
174
|
+
# verbal = Verbal.new { multiple /[xyz]/ }
|
175
|
+
# verbal.match('abcxxyz')[0] # => 'xxyz'
|
145
176
|
def multiple(value)
|
146
|
-
|
147
|
-
|
148
|
-
|
177
|
+
append case value
|
178
|
+
when Regexp then "(#{value.source})+"
|
179
|
+
else "(#{sanitize value})+"
|
180
|
+
end
|
149
181
|
end
|
150
182
|
|
151
183
|
# Adds a alternative expression to be matched.
|
@@ -160,12 +192,26 @@ class Verbal < Regexp
|
|
160
192
|
# end
|
161
193
|
# link =~ verbal # => 0
|
162
194
|
def otherwise(value = nil)
|
163
|
-
@prefixes += "("
|
164
|
-
@suffixes = ")" + @suffixes
|
165
|
-
append(")|(")
|
195
|
+
@prefixes += "(?:"
|
196
|
+
@suffixes = ")" + @suffixes
|
197
|
+
append(")|(?:")
|
166
198
|
find(value) if value
|
167
199
|
end
|
168
200
|
|
201
|
+
# Captures the nested regular expression.
|
202
|
+
# @example Capture the title of the concert and performer
|
203
|
+
# verbal = Verbal.new do
|
204
|
+
# capture { anything }
|
205
|
+
# find /\sby\s/
|
206
|
+
# capture { anything }
|
207
|
+
# end
|
208
|
+
# data = verbal.match('this is it by michael jackson')
|
209
|
+
# data[1] # => 'this is it'
|
210
|
+
# data[2] # => 'michael jackson'
|
211
|
+
def capture(&block)
|
212
|
+
append "(#{Verbal.new(&block).source})"
|
213
|
+
end
|
214
|
+
|
169
215
|
private
|
170
216
|
|
171
217
|
# Escapes +value+ so that it can be used in a regular expression.
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Verbal, '#anythingBut' do
|
4
|
+
|
5
|
+
subject { verbal }
|
6
|
+
|
7
|
+
let(:verbal) do
|
8
|
+
Verbal.new do
|
9
|
+
find 'http'
|
10
|
+
anything_but 's:.?'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
its(:source) { should eq '(?:http)(?:[^s:\.\?]*)' }
|
15
|
+
|
16
|
+
it 'matches a string without a suffix' do
|
17
|
+
(verbal =~ 'http').should eq 0
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'matches a string with a suffix' do
|
21
|
+
verbal.match('whttps://')[0].should eq 'http'
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Verbal, '#anything' do
|
4
|
+
|
5
|
+
subject { verbal }
|
6
|
+
|
7
|
+
let(:verbal) do
|
8
|
+
Verbal.new do
|
9
|
+
find 'http'
|
10
|
+
anything
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
its(:source) { should eq '(?:http)(?:.*)' }
|
15
|
+
|
16
|
+
it 'matches a string without a suffix' do
|
17
|
+
(verbal =~ 'http').should eq 0
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'matches a string with a suffix' do
|
21
|
+
verbal.match('whttps://')[0].should eq 'https://'
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Verbal, '#capture' do
|
4
|
+
|
5
|
+
subject { verbal }
|
6
|
+
let(:verbal) do
|
7
|
+
Verbal.new do
|
8
|
+
capture { anything }
|
9
|
+
find ' by '
|
10
|
+
capture { anything }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
let(:string) { 'this is it by michael jackson' }
|
14
|
+
|
15
|
+
it { should match string }
|
16
|
+
|
17
|
+
context 'matched data' do
|
18
|
+
subject { verbal.match string }
|
19
|
+
its([1]) { should eq 'this is it' }
|
20
|
+
its([2]) { should eq 'michael jackson' }
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Verbal, '#end_of_line' do
|
4
|
+
|
5
|
+
subject { verbal }
|
6
|
+
|
7
|
+
let(:verbal) do
|
8
|
+
Verbal.new do
|
9
|
+
find 'x'
|
10
|
+
end_of_line
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
its(:source) { should eq '(?:x)$' }
|
15
|
+
|
16
|
+
it 'matches a string at the end of a line' do
|
17
|
+
(verbal =~ 'zyx').should eq 2
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Verbal, '#end_of_string' do
|
4
|
+
|
5
|
+
subject { verbal }
|
6
|
+
let(:verbal) do
|
7
|
+
Verbal.new do
|
8
|
+
find 'cat'
|
9
|
+
end_of_string
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
its(:source) { should eq '(?:cat)\z' }
|
14
|
+
it { should match 'cat' }
|
15
|
+
it { should_not match 'cats' }
|
16
|
+
|
17
|
+
end
|
18
|
+
|
data/spec/find_spec.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Verbal, '#find' do
|
4
|
+
|
5
|
+
subject { verbal }
|
6
|
+
|
7
|
+
let(:verbal) do
|
8
|
+
Verbal.new do
|
9
|
+
find 'lions? yup.'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
its(:source) { should eq '(?:lions\?\ yup\.)' }
|
14
|
+
|
15
|
+
it 'matches a string at the correct position' do
|
16
|
+
(verbal =~ 'are these lions? yup...').should eq 10
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Verbal, '#line_break' do
|
4
|
+
|
5
|
+
subject { verbal }
|
6
|
+
|
7
|
+
let(:verbal) do
|
8
|
+
Verbal.new do
|
9
|
+
find 'this'
|
10
|
+
line_break
|
11
|
+
find 'that'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
its(:source) { should eq '(?:this)(?:\n|(?:\r\n))(?:that)' }
|
16
|
+
|
17
|
+
it 'matches a string correctly' do
|
18
|
+
verbal.match("this\nthat and w")[0].should eq "this\nthat"
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
|
data/spec/maybe_spec.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Verbal, '#maybe' do
|
4
|
+
|
5
|
+
subject { verbal }
|
6
|
+
|
7
|
+
let(:verbal) do
|
8
|
+
Verbal.new do
|
9
|
+
find 'http'
|
10
|
+
maybe 's'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
its(:source) { should eq '(?:http)(?:s)?' }
|
15
|
+
|
16
|
+
it 'matches a string without the value' do
|
17
|
+
(verbal =~ 'http').should eq 0
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'matches a string with the value' do
|
21
|
+
(verbal =~ 'https').should eq 0
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Verbal, '#multiple' do
|
4
|
+
|
5
|
+
subject { verbal }
|
6
|
+
|
7
|
+
context 'string' do
|
8
|
+
let(:verbal) { Verbal.new { multiple 'zk.+' } }
|
9
|
+
its(:source) { should eq '(zk\.\+)+' }
|
10
|
+
it 'matches multiples of the given value' do
|
11
|
+
(verbal =~ 'whereiszk.+zk.+zk.+qw').should eq 7
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context 'regex' do
|
16
|
+
let(:verbal) { Verbal.new { multiple(/[xyz]u/) } }
|
17
|
+
its(:source) { should eq '([xyz]u)+' }
|
18
|
+
it 'matches multiples of the given value' do
|
19
|
+
verbal.match('this is xuxuyuzu')[0].should eq 'xuxuyuzu'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Verbal, '#otherwise' do
|
4
|
+
|
5
|
+
subject { verbal }
|
6
|
+
let(:verbal) do
|
7
|
+
Verbal.new do
|
8
|
+
find 'http'
|
9
|
+
maybe 's'
|
10
|
+
find '://'
|
11
|
+
otherwise
|
12
|
+
maybe 's'
|
13
|
+
find 'ftp://'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
it { should match 'http://' }
|
18
|
+
it { should match 'https://' }
|
19
|
+
it { should match 'ftp://' }
|
20
|
+
it { should match 'sftp://' }
|
21
|
+
|
22
|
+
end
|
23
|
+
|
data/spec/range_spec.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Verbal, '#range' do
|
4
|
+
|
5
|
+
subject { verbal }
|
6
|
+
|
7
|
+
let(:verbal) do
|
8
|
+
Verbal.new do
|
9
|
+
range 'a', 'z', '0', '9'
|
10
|
+
find 'that'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
its(:source) { should eq '[a-z0-9](?:that)' }
|
15
|
+
|
16
|
+
it 'matches a string correctly' do
|
17
|
+
(verbal =~ 'W9that').should eq 1
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Verbal, '#start_of_line' do
|
4
|
+
|
5
|
+
subject { verbal }
|
6
|
+
|
7
|
+
let(:verbal) do
|
8
|
+
Verbal.new do
|
9
|
+
start_of_line
|
10
|
+
find 'x'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
its(:source) { should eq '^(?:x)' }
|
15
|
+
|
16
|
+
it 'matches a string at the beginning' do
|
17
|
+
(verbal =~ 'xyz').should eq 0
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Verbal, '#start_of_string' do
|
4
|
+
|
5
|
+
subject { verbal }
|
6
|
+
let(:verbal) do
|
7
|
+
Verbal.new do
|
8
|
+
start_of_string
|
9
|
+
find 'cat'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
its(:source) { should eq '\A(?:cat)' }
|
14
|
+
it { should match 'cat' }
|
15
|
+
it { should_not match 'a cat' }
|
16
|
+
|
17
|
+
end
|
18
|
+
|
data/spec/verbal_spec.rb
CHANGED
@@ -2,31 +2,6 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Verbal do
|
4
4
|
|
5
|
-
describe '#find' do
|
6
|
-
|
7
|
-
let(:matcher) do
|
8
|
-
Verbal.new do
|
9
|
-
find 'lions'
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'should correctly build find regex' do
|
14
|
-
matcher.source.should == '(?:lions)'
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'should correctly match find' do
|
18
|
-
matcher.match('lions').should be_true
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'should match part of a string with find' do
|
22
|
-
matcher.match('lions, tigers, and bears, oh my!').should be_true
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'should only match the `find` part of a string' do
|
26
|
-
matcher.match('lions, tigers, and bears, oh my!')[0].should == 'lions'
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
5
|
describe 'URL Regex Test' do
|
31
6
|
|
32
7
|
let(:matcher) do
|
@@ -42,7 +17,7 @@ describe Verbal do
|
|
42
17
|
end
|
43
18
|
|
44
19
|
it 'successfully builds regex for matching URLs' do
|
45
|
-
matcher.source.should == "^(?:http)(s)?(?:://)(www\\.)?([^\\ ]*)$"
|
20
|
+
matcher.source.should == "^(?:http)(?:s)?(?:://)(?:www\\.)?(?:[^\\ ]*)$"
|
46
21
|
end
|
47
22
|
|
48
23
|
it 'matches regular http URL' do
|
data/verbal.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "verbal"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ryan Endacott", "Jim Lim"]
|
12
|
-
s.date = "2013-07-
|
12
|
+
s.date = "2013-07-26"
|
13
13
|
s.description = "Verbal Expressions is a library that makes constructing difficult regular expressions simple and easy!"
|
14
14
|
s.email = "jim@jimjh.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -27,7 +27,20 @@ Gem::Specification.new do |s|
|
|
27
27
|
"Rakefile",
|
28
28
|
"VERSION",
|
29
29
|
"lib/verbal.rb",
|
30
|
+
"spec/anything_but_spec.rb",
|
31
|
+
"spec/anything_spec.rb",
|
32
|
+
"spec/capture_spec.rb",
|
33
|
+
"spec/end_of_line_spec.rb",
|
34
|
+
"spec/end_of_string_spec.rb",
|
35
|
+
"spec/find_spec.rb",
|
36
|
+
"spec/line_break_spec.rb",
|
37
|
+
"spec/maybe_spec.rb",
|
38
|
+
"spec/multiple_spec.rb",
|
39
|
+
"spec/otherwise_spec.rb",
|
40
|
+
"spec/range_spec.rb",
|
30
41
|
"spec/spec_helper.rb",
|
42
|
+
"spec/start_of_line_spec.rb",
|
43
|
+
"spec/start_of_string_spec.rb",
|
31
44
|
"spec/verbal_spec.rb",
|
32
45
|
"verbal.gemspec"
|
33
46
|
]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: verbal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Endacott
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-07-
|
12
|
+
date: 2013-07-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -86,7 +86,20 @@ files:
|
|
86
86
|
- Rakefile
|
87
87
|
- VERSION
|
88
88
|
- lib/verbal.rb
|
89
|
+
- spec/anything_but_spec.rb
|
90
|
+
- spec/anything_spec.rb
|
91
|
+
- spec/capture_spec.rb
|
92
|
+
- spec/end_of_line_spec.rb
|
93
|
+
- spec/end_of_string_spec.rb
|
94
|
+
- spec/find_spec.rb
|
95
|
+
- spec/line_break_spec.rb
|
96
|
+
- spec/maybe_spec.rb
|
97
|
+
- spec/multiple_spec.rb
|
98
|
+
- spec/otherwise_spec.rb
|
99
|
+
- spec/range_spec.rb
|
89
100
|
- spec/spec_helper.rb
|
101
|
+
- spec/start_of_line_spec.rb
|
102
|
+
- spec/start_of_string_spec.rb
|
90
103
|
- spec/verbal_spec.rb
|
91
104
|
- verbal.gemspec
|
92
105
|
homepage: http://github.com/jimjh/verbal
|