verbal_expressions 0.1.3 → 0.1.4

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,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MjkxNTYxMWVlNmQ5NmM1YTZiZDk2ODlhOGQxODFiNWUwNWI5MDRiNQ==
4
+ NmE5MjQzNTVkNWViNDgxN2VlMWEyOWViMTViOTJiZjIyZDhkNjVjYw==
5
5
  data.tar.gz: !binary |-
6
- NzI5ZjkyOWUwYWU2MTMwNGQ2N2FjYWQ2NDZlMTc2MjAxMDlmYThiOQ==
6
+ MjI0ZmNhYzA4YTY2Y2ExMTI1MzBmNzE5M2NkNDlmN2ExNmQ4ZDcyNA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- NDZlYjk3YmVlNjYwNDk4NjA0Y2VhMDRjNGU4MjBiZDExNDlmMDFmOTRkNDM1
10
- YzYwMDBiNmM4ZWM2MmM5MzgxNGFiNjAxMWVjNGVlMDgwZTQ4Y2IyNGRjMTdm
11
- OTE3ODEwNDgzM2UzOTFjMGExYWVjYTk3MzEzNTEyNWUxODM3M2I=
9
+ MjJhNGI0ZWFmZTMxY2NiYzVlZmQ0ZDI2YWQ2OTdkMWY3NWVjMDc1MWNiM2Nj
10
+ MmMxMzliMjFhZDNhNWM4ZTRlZGYyYWQxMGMzY2RmZjAwOWEyNzMyMzRjOTI1
11
+ NjUyMzYyNGEyZWMzNzdlNTE5NzViY2RiYzFiYzhmNDVmYzAxZGE=
12
12
  data.tar.gz: !binary |-
13
- OTc3MDg2NTM1ZDE2MGU3ZmVhMDQ5YWY4MDdiYzk5YzZmMjBiMTIzMzc0ZDg3
14
- ZGU1YjVhZmVmZDlkYWY0MTEyY2FhYTEyOTUzMmJmMzhiZWM2YTM5ZDI1Y2I4
15
- OWM5NjJlZDk2ZTdhNGMyMjg5MTI1ZjYyNTliNTQxZjFlMTQ5NWU=
13
+ NzNhZWMzMDczMGJkYTBhMmNkNzliYjYyN2U4ZWJhOWE3MDQ5Njc5NTM4Nzcw
14
+ ZjQ0ODk1MGJmNTU0YTY2YjU1Y2Y4NzM0YjEwOWRmYjdhMDQ1MTAyYTk1Zjg5
15
+ OTdkOTQwYzU1MzZlYmJlNWYxZmQ3ZDljNzEwNzI2YWQ5OGUwODE=
data/Gemfile CHANGED
@@ -10,4 +10,5 @@ group :development do
10
10
  gem "rdoc", "~> 3.12"
11
11
  gem "bundler", "~> 1.3.5"
12
12
  gem "jeweler", "~> 1.8.4"
13
+ gem 'simplecov', :require => false
13
14
  end
@@ -52,6 +52,10 @@ GEM
52
52
  rspec-expectations (2.14.0)
53
53
  diff-lcs (>= 1.1.3, < 2.0)
54
54
  rspec-mocks (2.14.1)
55
+ simplecov (0.7.1)
56
+ multi_json (~> 1.0)
57
+ simplecov-html (~> 0.7.1)
58
+ simplecov-html (0.7.1)
55
59
 
56
60
  PLATFORMS
57
61
  ruby
@@ -61,3 +65,4 @@ DEPENDENCIES
61
65
  jeweler (~> 1.8.4)
62
66
  rdoc (~> 3.12)
63
67
  rspec (~> 2.14.0)
68
+ simplecov
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.1.4
@@ -100,7 +100,7 @@ class VerEx < Regexp
100
100
 
101
101
  def multiple(value)
102
102
  value = sanitize(value)
103
- value += "+" unless ["+", "*"].include?(value.chars.first)
103
+ value += "+"
104
104
  add(value)
105
105
  end
106
106
 
@@ -127,7 +127,11 @@ class VerEx < Regexp
127
127
  add(")")
128
128
  end
129
129
 
130
-
130
+ def capture(name = nil, &block)
131
+ begin_capture(name)
132
+ yield
133
+ end_capture
134
+ end
131
135
 
132
136
  private
133
137
 
@@ -1,8 +1,12 @@
1
+ require 'simplecov'
2
+ SimpleCov.start
3
+
1
4
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
5
  $LOAD_PATH.unshift(File.dirname(__FILE__))
3
6
  require 'rspec'
4
7
  require 'verbal_expressions'
5
8
 
9
+
6
10
  # Requires supporting files with custom matchers and macros, etc,
7
11
  # in ./support/ and its subdirectories.
8
12
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
@@ -19,6 +19,20 @@ describe VerEx do
19
19
  matcher.match('Jerry scored 5 goals!')['goals'].should == '5'
20
20
  end
21
21
 
22
+ context 'with a block' do
23
+
24
+ let(:matcher) do
25
+ VerEx.new do
26
+ find 'scored '
27
+ capture('goals') { word }
28
+ end
29
+ end
30
+
31
+ it 'Successfully captures player by index' do
32
+ matcher.match('Jerry scored 5 goals!')['goals'].should == '5'
33
+ end
34
+ end
35
+
22
36
  end
23
37
 
24
38
  describe 'without name' do
@@ -36,6 +50,18 @@ describe VerEx do
36
50
  matcher.match('Jerry scored 5 goals!')[1].should == 'Jerry'
37
51
  end
38
52
 
53
+ context 'with a block' do
54
+ let(:matcher) do
55
+ VerEx.new do
56
+ start_of_line
57
+ capture { word }
58
+ end
59
+ end
60
+
61
+ it 'Successfully captures player by index' do
62
+ matcher.match('Jerry scored 5 goals!')[1].should == 'Jerry'
63
+ end
64
+ end
39
65
  end
40
66
 
41
67
  end
@@ -65,6 +91,134 @@ describe VerEx do
65
91
  end
66
92
  end
67
93
 
94
+ describe '#alternatively' do
95
+
96
+ describe 'matches a link' do
97
+
98
+ let(:matcher) do
99
+ VerEx.new do
100
+ find 'http://'
101
+ alternatively
102
+ find 'ftp://'
103
+ end
104
+ end
105
+
106
+ it 'matches ftp://' do
107
+ matcher.match('ftp://ftp.google.com/').should be_true
108
+ end
109
+
110
+ it 'matches http://' do
111
+ matcher.match('http://www.google.com').should be_true
112
+ end
113
+ end
114
+ end
115
+
116
+ describe '#anything' do
117
+
118
+ let(:matcher) do
119
+ VerEx.new do
120
+ anything
121
+ end
122
+ end
123
+
124
+ it 'matches anything' do
125
+ matcher.match('The quick brown fox jumps over the lazy dog.').should be_true
126
+ end
127
+ end
128
+
129
+ describe '#any_of' do
130
+
131
+ let(:matcher) do
132
+ VerEx.new do
133
+ any_of 'aeiou'
134
+ end
135
+ end
136
+
137
+ it 'finds a vowel' do
138
+ matcher.match('fox').should be_true
139
+ end
140
+ end
141
+
142
+ describe '#multiple' do
143
+
144
+ it 'matches 1111' do
145
+ matcher = VerEx.new do
146
+ multiple '1'
147
+ end
148
+
149
+ matcher.match('111111111').should be_true
150
+ end
151
+
152
+ it 'matches multiple +s' do
153
+ matcher = VerEx.new do
154
+ multiple '+'
155
+ end
156
+
157
+ matcher.match('++++').should be_true
158
+ end
159
+
160
+ it 'captures multiple successfully' do
161
+ matcher = VerEx.new do
162
+ capture('mult') { multiple '+' }
163
+ end
164
+
165
+ matcher.match('+++++')['mult'].should == '+++++'
166
+ end
167
+ end
168
+
169
+ describe '#line_break' do
170
+
171
+ let(:multiline) do
172
+ %Q{
173
+ I'm a multiline
174
+ string.
175
+ }
176
+ end
177
+
178
+ it 'fails without line break' do
179
+ matcher = VerEx.new do
180
+ line_break
181
+ end
182
+
183
+ matcher.match('hello world').should be_false
184
+ end
185
+
186
+ it 'works as line_break' do
187
+ matcher = VerEx.new do
188
+ line_break
189
+ end
190
+
191
+ matcher.match(multiline).should be_true
192
+ end
193
+
194
+ it 'works as br' do
195
+ matcher = VerEx.new do
196
+ br
197
+ end
198
+
199
+ matcher.match(multiline).should be_true
200
+ end
201
+ end
202
+
203
+ describe '#range' do
204
+
205
+ it 'works with a range of numbers' do
206
+ matcher = VerEx.new do
207
+ range '0', '9'
208
+ end
209
+
210
+ matcher.match('5').should be_true
211
+ end
212
+
213
+ it 'works with a range of letters' do
214
+ matcher = VerEx.new do
215
+ range 'A', 'Z'
216
+ end
217
+
218
+ matcher.match('Q').should be_true
219
+ end
220
+ end
221
+
68
222
  describe 'URL Regex Test' do
69
223
 
70
224
  let(:matcher) do
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "verbal_expressions"
8
- s.version = "0.1.3"
8
+ s.version = "0.1.4"
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"]
12
- s.date = "2013-07-30"
12
+ s.date = "2013-08-06"
13
13
  s.description = "Verbal Expressions is a library that makes constructing difficult regular expressions simple and easy!"
14
14
  s.email = "rzeg24@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -45,17 +45,20 @@ Gem::Specification.new do |s|
45
45
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
46
46
  s.add_development_dependency(%q<bundler>, ["~> 1.3.5"])
47
47
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
48
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
48
49
  else
49
50
  s.add_dependency(%q<rspec>, ["~> 2.14.0"])
50
51
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
51
52
  s.add_dependency(%q<bundler>, ["~> 1.3.5"])
52
53
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
54
+ s.add_dependency(%q<simplecov>, [">= 0"])
53
55
  end
54
56
  else
55
57
  s.add_dependency(%q<rspec>, ["~> 2.14.0"])
56
58
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
57
59
  s.add_dependency(%q<bundler>, ["~> 1.3.5"])
58
60
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
61
+ s.add_dependency(%q<simplecov>, [">= 0"])
59
62
  end
60
63
  end
61
64
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: verbal_expressions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Endacott
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-30 00:00:00.000000000 Z
11
+ date: 2013-08-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: 1.8.4
69
+ - !ruby/object:Gem::Dependency
70
+ name: simplecov
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description: Verbal Expressions is a library that makes constructing difficult regular
70
84
  expressions simple and easy!
71
85
  email: rzeg24@gmail.com