cregexp 0.1.0 → 0.2.0
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/README.md +24 -4
- data/VERSION +1 -1
- data/cregexp.gemspec +61 -0
- data/lib/cregexp.rb +7 -1
- data/spec/lib/cregexp_spec.rb +19 -6
- metadata +52 -84
- data/README.textile +0 -24
data/README.md
CHANGED
@@ -7,10 +7,11 @@ Cregexp is a library of commonly used regular expressions written in ruby.
|
|
7
7
|
### Current Regexps
|
8
8
|
|
9
9
|
```ruby
|
10
|
-
Cregexp.url
|
11
|
-
Cregexp.email
|
12
|
-
Cregexp.ip
|
13
|
-
Cregexp.hex
|
10
|
+
Cregexp.url # /(^$)|(^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$)/ix
|
11
|
+
Cregexp.email # /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i
|
12
|
+
Cregexp.ip # /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
|
13
|
+
Cregexp.hex # /^#?([a-f0-9]{6}|[a-f0-9]{3})$/
|
14
|
+
Cregexp.image # /.png|.jpg|.jpeg|.gif|.bmp|.tiff|.PNG|.JPG|.JPEG|.GIF|.BMP|.TIFF$/
|
14
15
|
```
|
15
16
|
|
16
17
|
### Matching
|
@@ -21,4 +22,23 @@ Cregexp.match("http://invalid", :url) # => false
|
|
21
22
|
|
22
23
|
Cregexp.match("192.168.0.1", :ip) # true
|
23
24
|
Cregexp.match("256.255.255.255", :ip) # false
|
25
|
+
```
|
26
|
+
|
27
|
+
## Using Cregexp in Rails 3.x
|
28
|
+
|
29
|
+
Add this to your app's Gemfile:
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
gem "cregexp"
|
33
|
+
```
|
34
|
+
|
35
|
+
That's It! Now Use it in a model for easy validations:
|
36
|
+
|
37
|
+
|
38
|
+
```ruby
|
39
|
+
class Image < ActiveRecord::Base
|
40
|
+
validates_format_of :file, :format => Cregexp.image
|
41
|
+
|
42
|
+
...
|
43
|
+
end
|
24
44
|
```
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/cregexp.gemspec
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{cregexp}
|
8
|
+
s.version = "0.2.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Hulihan Applications", "Dave Hulihan"]
|
12
|
+
s.date = %q{2011-08-22}
|
13
|
+
s.description = %q{Cregexp is a library of commonly used regular expressions, written in Ruby.}
|
14
|
+
s.email = %q{dave@hulihanapplications.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE.txt",
|
17
|
+
"README.md"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
"Gemfile",
|
22
|
+
"Gemfile.lock",
|
23
|
+
"LICENSE.txt",
|
24
|
+
"README.md",
|
25
|
+
"Rakefile",
|
26
|
+
"VERSION",
|
27
|
+
"cregexp.gemspec",
|
28
|
+
"lib/cregexp.rb",
|
29
|
+
"spec/lib/cregexp_spec.rb",
|
30
|
+
"spec/spec_helper.rb",
|
31
|
+
"test/helper.rb",
|
32
|
+
"test/test_cregexp.rb"
|
33
|
+
]
|
34
|
+
s.homepage = %q{http://github.com/hulihanapplications/cregexp}
|
35
|
+
s.licenses = ["MIT"]
|
36
|
+
s.require_paths = ["lib"]
|
37
|
+
s.rubygems_version = %q{1.7.2}
|
38
|
+
s.summary = %q{Commonly Used Regular Expressions}
|
39
|
+
|
40
|
+
if s.respond_to? :specification_version then
|
41
|
+
s.specification_version = 3
|
42
|
+
|
43
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
44
|
+
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
45
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
46
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
47
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
48
|
+
else
|
49
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
50
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
51
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
52
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
53
|
+
end
|
54
|
+
else
|
55
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
56
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
57
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
58
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
data/lib/cregexp.rb
CHANGED
@@ -26,8 +26,14 @@ class Cregexp
|
|
26
26
|
/^#?([a-f0-9]{6}|[a-f0-9]{3})$/
|
27
27
|
end
|
28
28
|
|
29
|
+
# Image
|
30
|
+
# Checke if file extension is of a valid image type
|
31
|
+
def self.image
|
32
|
+
/.png|.jpg|.jpeg|.gif|.bmp|.tiff|.PNG|.JPG|.JPEG|.GIF|.BMP|.TIFF$/
|
33
|
+
end
|
34
|
+
|
29
35
|
# Cregexp.match("http://www.google.com", :url) => true
|
30
36
|
def self.match(string, matcher, options = {})
|
31
|
-
(string =~ send(matcher.to_sym))
|
37
|
+
!(string =~ send(matcher.to_sym)).nil?
|
32
38
|
end
|
33
39
|
end
|
data/spec/lib/cregexp_spec.rb
CHANGED
@@ -30,12 +30,25 @@ describe Cregexp do
|
|
30
30
|
end
|
31
31
|
|
32
32
|
describe "match" do
|
33
|
-
|
34
|
-
|
35
|
-
|
33
|
+
describe "url" do
|
34
|
+
it "should return true with valid url" do
|
35
|
+
described_class.match("http://www.google.com", :url).should == true
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should return false with invalid url" do
|
39
|
+
described_class.match("httpz://invalid", :url).should == false
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "image" do
|
44
|
+
it "should return true with valid filename" do
|
45
|
+
described_class.match("image.png", :image).should == true
|
46
|
+
end
|
36
47
|
|
37
|
-
|
38
|
-
|
39
|
-
|
48
|
+
it "should return false with invalid filename" do
|
49
|
+
described_class.match("image.jperg", :image).should == false
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
40
53
|
end
|
41
54
|
end
|
metadata
CHANGED
@@ -1,141 +1,109 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: cregexp
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 0
|
10
|
-
version: 0.1.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Hulihan Applications
|
14
9
|
- Dave Hulihan
|
15
10
|
autorequire:
|
16
11
|
bindir: bin
|
17
12
|
cert_chain: []
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
dependencies:
|
22
|
-
- !ruby/object:Gem::Dependency
|
23
|
-
prerelease: false
|
13
|
+
date: 2011-08-22 00:00:00.000000000Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
24
16
|
name: shoulda
|
25
|
-
|
17
|
+
requirement: &76067610 !ruby/object:Gem::Requirement
|
26
18
|
none: false
|
27
|
-
requirements:
|
28
|
-
- -
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
|
31
|
-
segments:
|
32
|
-
- 0
|
33
|
-
version: "0"
|
34
|
-
requirement: *id001
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
35
23
|
type: :development
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
24
|
prerelease: false
|
25
|
+
version_requirements: *76067610
|
26
|
+
- !ruby/object:Gem::Dependency
|
38
27
|
name: bundler
|
39
|
-
|
28
|
+
requirement: &76066860 !ruby/object:Gem::Requirement
|
40
29
|
none: false
|
41
|
-
requirements:
|
30
|
+
requirements:
|
42
31
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
hash: 23
|
45
|
-
segments:
|
46
|
-
- 1
|
47
|
-
- 0
|
48
|
-
- 0
|
32
|
+
- !ruby/object:Gem::Version
|
49
33
|
version: 1.0.0
|
50
|
-
requirement: *id002
|
51
34
|
type: :development
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
35
|
prerelease: false
|
36
|
+
version_requirements: *76066860
|
37
|
+
- !ruby/object:Gem::Dependency
|
54
38
|
name: jeweler
|
55
|
-
|
39
|
+
requirement: &76066540 !ruby/object:Gem::Requirement
|
56
40
|
none: false
|
57
|
-
requirements:
|
41
|
+
requirements:
|
58
42
|
- - ~>
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
hash: 7
|
61
|
-
segments:
|
62
|
-
- 1
|
63
|
-
- 6
|
64
|
-
- 4
|
43
|
+
- !ruby/object:Gem::Version
|
65
44
|
version: 1.6.4
|
66
|
-
requirement: *id003
|
67
45
|
type: :development
|
68
|
-
- !ruby/object:Gem::Dependency
|
69
46
|
prerelease: false
|
47
|
+
version_requirements: *76066540
|
48
|
+
- !ruby/object:Gem::Dependency
|
70
49
|
name: rcov
|
71
|
-
|
50
|
+
requirement: &76066040 !ruby/object:Gem::Requirement
|
72
51
|
none: false
|
73
|
-
requirements:
|
74
|
-
- -
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
|
77
|
-
segments:
|
78
|
-
- 0
|
79
|
-
version: "0"
|
80
|
-
requirement: *id004
|
52
|
+
requirements:
|
53
|
+
- - ! '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
81
56
|
type: :development
|
82
|
-
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: *76066040
|
59
|
+
description: Cregexp is a library of commonly used regular expressions, written in
|
60
|
+
Ruby.
|
83
61
|
email: dave@hulihanapplications.com
|
84
62
|
executables: []
|
85
|
-
|
86
63
|
extensions: []
|
87
|
-
|
88
|
-
extra_rdoc_files:
|
64
|
+
extra_rdoc_files:
|
89
65
|
- LICENSE.txt
|
90
66
|
- README.md
|
91
|
-
|
92
|
-
files:
|
67
|
+
files:
|
93
68
|
- .document
|
94
69
|
- Gemfile
|
95
70
|
- Gemfile.lock
|
96
71
|
- LICENSE.txt
|
97
72
|
- README.md
|
98
|
-
- README.textile
|
99
73
|
- Rakefile
|
100
74
|
- VERSION
|
75
|
+
- cregexp.gemspec
|
101
76
|
- lib/cregexp.rb
|
102
77
|
- spec/lib/cregexp_spec.rb
|
103
78
|
- spec/spec_helper.rb
|
104
79
|
- test/helper.rb
|
105
80
|
- test/test_cregexp.rb
|
106
|
-
has_rdoc: true
|
107
81
|
homepage: http://github.com/hulihanapplications/cregexp
|
108
|
-
licenses:
|
82
|
+
licenses:
|
109
83
|
- MIT
|
110
84
|
post_install_message:
|
111
85
|
rdoc_options: []
|
112
|
-
|
113
|
-
require_paths:
|
86
|
+
require_paths:
|
114
87
|
- lib
|
115
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
88
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
116
89
|
none: false
|
117
|
-
requirements:
|
118
|
-
- -
|
119
|
-
- !ruby/object:Gem::Version
|
120
|
-
|
121
|
-
segments:
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
segments:
|
122
95
|
- 0
|
123
|
-
|
124
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
|
+
hash: -85634639
|
97
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
98
|
none: false
|
126
|
-
requirements:
|
127
|
-
- -
|
128
|
-
- !ruby/object:Gem::Version
|
129
|
-
|
130
|
-
segments:
|
131
|
-
- 0
|
132
|
-
version: "0"
|
99
|
+
requirements:
|
100
|
+
- - ! '>='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
133
103
|
requirements: []
|
134
|
-
|
135
104
|
rubyforge_project:
|
136
|
-
rubygems_version: 1.
|
105
|
+
rubygems_version: 1.7.2
|
137
106
|
signing_key:
|
138
107
|
specification_version: 3
|
139
108
|
summary: Commonly Used Regular Expressions
|
140
109
|
test_files: []
|
141
|
-
|
data/README.textile
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
h1. Cregexp
|
2
|
-
|
3
|
-
Cregexp is a library of commonly used regular expressions written in ruby.
|
4
|
-
|
5
|
-
h2. Examples
|
6
|
-
|
7
|
-
h3. Current Regexps
|
8
|
-
|
9
|
-
<pre>
|
10
|
-
Cregexp.url # /(^$)|(^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$)/ix
|
11
|
-
Cregexp.email # /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i
|
12
|
-
Cregexp.ip # /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
|
13
|
-
Cregexp.hex # /^#?([a-f0-9]{6}|[a-f0-9]{3})$/
|
14
|
-
</pre>
|
15
|
-
|
16
|
-
h2. Matching
|
17
|
-
|
18
|
-
<pre>
|
19
|
-
Cregexp.match("http://www.example.com", :url) # true
|
20
|
-
Cregexp.match("http://invalid", :url) # => false
|
21
|
-
|
22
|
-
Cregexp.match("192.168.0.1", :ip) # true
|
23
|
-
Cregexp.match("256.255.255.255", :ip) # false
|
24
|
-
</pre>
|