rugex 0.0.0 → 0.1.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/.rspec +1 -0
- data/Gemfile +6 -10
- data/Gemfile.lock +3 -3
- data/VERSION +1 -1
- data/bin/rugex +2 -0
- data/lib/rugex/print.rb +13 -0
- data/lib/rugex/regex.rb +8 -0
- data/lib/rugex/string.rb +18 -0
- data/lib/rugex.rb +21 -0
- data/rugex.gemspec +18 -8
- data/spec/lib/regex_spec.rb +29 -0
- data/spec/lib/string_spec.rb +35 -0
- data/spec/rugex_spec.rb +2 -2
- metadata +39 -29
data/.rspec
CHANGED
data/Gemfile
CHANGED
@@ -1,13 +1,9 @@
|
|
1
|
-
source
|
2
|
-
|
3
|
-
|
4
|
-
# gem "activesupport", ">= 2.3.5"
|
1
|
+
source 'http://rubygems.org'
|
2
|
+
|
3
|
+
gem 'thor', '>= 0.14.6'
|
5
4
|
|
6
|
-
# Add dependencies to develop your gem here.
|
7
|
-
# Include everything needed to run rake, tests, features, etc.
|
8
5
|
group :development do
|
9
|
-
gem
|
10
|
-
gem
|
11
|
-
gem
|
12
|
-
gem "rcov", ">= 0"
|
6
|
+
gem 'rspec', '~> 2.3.0'
|
7
|
+
gem 'bundler', '~> 1.0.9'
|
8
|
+
gem 'jeweler', '~> 1.5.2'
|
13
9
|
end
|
data/Gemfile.lock
CHANGED
@@ -8,7 +8,6 @@ GEM
|
|
8
8
|
git (>= 1.2.5)
|
9
9
|
rake
|
10
10
|
rake (0.8.7)
|
11
|
-
rcov (0.9.9)
|
12
11
|
rspec (2.3.0)
|
13
12
|
rspec-core (~> 2.3.0)
|
14
13
|
rspec-expectations (~> 2.3.0)
|
@@ -17,12 +16,13 @@ GEM
|
|
17
16
|
rspec-expectations (2.3.0)
|
18
17
|
diff-lcs (~> 1.1.2)
|
19
18
|
rspec-mocks (2.3.0)
|
19
|
+
thor (0.14.6)
|
20
20
|
|
21
21
|
PLATFORMS
|
22
22
|
ruby
|
23
23
|
|
24
24
|
DEPENDENCIES
|
25
|
-
bundler (~> 1.0.
|
25
|
+
bundler (~> 1.0.9)
|
26
26
|
jeweler (~> 1.5.2)
|
27
|
-
rcov
|
28
27
|
rspec (~> 2.3.0)
|
28
|
+
thor (>= 0.14.6)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.1.0
|
data/bin/rugex
ADDED
data/lib/rugex/print.rb
ADDED
data/lib/rugex/regex.rb
ADDED
data/lib/rugex/string.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'lib/rugex/print'
|
2
|
+
require 'lib/rugex/regex'
|
3
|
+
|
4
|
+
class EmptyRegexError < Exception; end
|
5
|
+
|
6
|
+
module Rugex
|
7
|
+
class String
|
8
|
+
include Rugex::Print
|
9
|
+
|
10
|
+
def initialize(text, regex_string)
|
11
|
+
raise EmptyRegexError if regex_string.empty?
|
12
|
+
@text, @regex = text, Rugex::Regex.to_regex(regex_string)
|
13
|
+
@result = (@text =~ @regex) == nil ? '(no matches)' : print_colored_text
|
14
|
+
end
|
15
|
+
|
16
|
+
def to_s; @result; end
|
17
|
+
end
|
18
|
+
end
|
data/lib/rugex.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
# Rugex - A CLI to test regular expressions on Ruby
|
4
|
+
# Author: Lucas Caton - lucascaton at gmail
|
5
|
+
|
6
|
+
require 'rubygems'
|
7
|
+
require 'thor'
|
8
|
+
require 'lib/rugex/string'
|
9
|
+
|
10
|
+
module Rugex
|
11
|
+
class Base < Thor
|
12
|
+
ARGV.insert(0, 'string') if (ARGV[0] =~ /-./) == nil
|
13
|
+
|
14
|
+
desc '<text> <regex>', 'show the match text using regular expression'
|
15
|
+
def string(text, regex_string)
|
16
|
+
puts Rugex::String.new text, regex_string
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
Rugex::Base.start
|
data/rugex.gemspec
CHANGED
@@ -5,13 +5,15 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rugex}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.1.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Lucas Caton"]
|
12
|
-
s.date = %q{2011-01-
|
12
|
+
s.date = %q{2011-01-29}
|
13
|
+
s.default_executable = %q{rugex}
|
13
14
|
s.description = %q{A CLI to test regular expressions on Ruby}
|
14
15
|
s.email = %q{lucascaton@gmail.com}
|
16
|
+
s.executables = ["rugex"]
|
15
17
|
s.extra_rdoc_files = [
|
16
18
|
"LICENSE.txt",
|
17
19
|
"README.rdoc"
|
@@ -25,8 +27,14 @@ Gem::Specification.new do |s|
|
|
25
27
|
"README.rdoc",
|
26
28
|
"Rakefile",
|
27
29
|
"VERSION",
|
30
|
+
"bin/rugex",
|
28
31
|
"lib/rugex.rb",
|
32
|
+
"lib/rugex/print.rb",
|
33
|
+
"lib/rugex/regex.rb",
|
34
|
+
"lib/rugex/string.rb",
|
29
35
|
"rugex.gemspec",
|
36
|
+
"spec/lib/regex_spec.rb",
|
37
|
+
"spec/lib/string_spec.rb",
|
30
38
|
"spec/rugex_spec.rb",
|
31
39
|
"spec/spec_helper.rb"
|
32
40
|
]
|
@@ -36,6 +44,8 @@ Gem::Specification.new do |s|
|
|
36
44
|
s.rubygems_version = %q{1.4.1}
|
37
45
|
s.summary = %q{A simple tool for testing regular expressions from Ruby using the terminal}
|
38
46
|
s.test_files = [
|
47
|
+
"spec/lib/regex_spec.rb",
|
48
|
+
"spec/lib/string_spec.rb",
|
39
49
|
"spec/rugex_spec.rb",
|
40
50
|
"spec/spec_helper.rb"
|
41
51
|
]
|
@@ -44,21 +54,21 @@ Gem::Specification.new do |s|
|
|
44
54
|
s.specification_version = 3
|
45
55
|
|
46
56
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
57
|
+
s.add_runtime_dependency(%q<thor>, [">= 0.14.6"])
|
47
58
|
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
48
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.0.
|
59
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.9"])
|
49
60
|
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
50
|
-
s.add_development_dependency(%q<rcov>, [">= 0"])
|
51
61
|
else
|
62
|
+
s.add_dependency(%q<thor>, [">= 0.14.6"])
|
52
63
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
53
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.
|
64
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.9"])
|
54
65
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
55
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
56
66
|
end
|
57
67
|
else
|
68
|
+
s.add_dependency(%q<thor>, [">= 0.14.6"])
|
58
69
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
59
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.
|
70
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.9"])
|
60
71
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
61
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
62
72
|
end
|
63
73
|
end
|
64
74
|
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Rugex::Regex' do
|
4
|
+
describe '.to_regex' do
|
5
|
+
context 'receiving a string without slashes' do
|
6
|
+
it 'returns a Regexp object' do
|
7
|
+
regex = Rugex::Regex.to_regex '\d{4}\d{2}-\d{2}'
|
8
|
+
regex.should == /\d{4}\d{2}-\d{2}/
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'returns a empty Regexp object' do
|
12
|
+
regex = Rugex::Regex.to_regex ''
|
13
|
+
regex.should == //
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context 'receiving a string with slashes' do
|
18
|
+
it 'returns a Regexp object' do
|
19
|
+
regex = Rugex::Regex.to_regex '/\d{4}\d{2}-\d{2}/'
|
20
|
+
regex.should == /\d{4}\d{2}-\d{2}/
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'returns a empty Regexp object' do
|
24
|
+
regex = Rugex::Regex.to_regex '//'
|
25
|
+
regex.should == //
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Rugex::String' do
|
4
|
+
describe '#to_s' do
|
5
|
+
context 'successful' do
|
6
|
+
it 'checks text with regular expression' do
|
7
|
+
output = Rugex::String.new('John Doe', 'ohn')
|
8
|
+
output.to_s.should == "J\e[44mohn\e[m Doe"
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'checks text with other regular expression' do
|
12
|
+
output = Rugex::String.new('John Doe', 'John D')
|
13
|
+
output.to_s.should == "\e[44mJohn D\e[moe"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context 'unsuccessful' do
|
18
|
+
it 'checks text with regular expression' do
|
19
|
+
output = Rugex::String.new('John Doe', 'Johnny')
|
20
|
+
output.to_s.should == "(no matches)"
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'checks text with other regular expression' do
|
24
|
+
output = Rugex::String.new('John Doe', 'john doe')
|
25
|
+
output.to_s.should == "(no matches)"
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'raise a exception when the regular expression is empty' do
|
29
|
+
expect {
|
30
|
+
Rugex::String.new('John Doe', '')
|
31
|
+
}.to raise_error EmptyRegexError
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/spec/rugex_spec.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rugex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 0.0.0
|
10
|
+
version: 0.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Lucas Caton
|
@@ -15,40 +15,40 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-01-
|
19
|
-
default_executable:
|
18
|
+
date: 2011-01-29 00:00:00 -02:00
|
19
|
+
default_executable: rugex
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
23
23
|
none: false
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
hash:
|
27
|
+
hash: 43
|
28
28
|
segments:
|
29
|
-
- 2
|
30
|
-
- 3
|
31
29
|
- 0
|
32
|
-
|
30
|
+
- 14
|
31
|
+
- 6
|
32
|
+
version: 0.14.6
|
33
33
|
requirement: *id001
|
34
34
|
prerelease: false
|
35
|
-
name:
|
36
|
-
type: :
|
35
|
+
name: thor
|
36
|
+
type: :runtime
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
hash:
|
43
|
+
hash: 3
|
44
44
|
segments:
|
45
|
-
-
|
46
|
-
-
|
45
|
+
- 2
|
46
|
+
- 3
|
47
47
|
- 0
|
48
|
-
version:
|
48
|
+
version: 2.3.0
|
49
49
|
requirement: *id002
|
50
50
|
prerelease: false
|
51
|
-
name:
|
51
|
+
name: rspec
|
52
52
|
type: :development
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
version_requirements: &id003 !ruby/object:Gem::Requirement
|
@@ -56,34 +56,36 @@ dependencies:
|
|
56
56
|
requirements:
|
57
57
|
- - ~>
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
hash:
|
59
|
+
hash: 5
|
60
60
|
segments:
|
61
61
|
- 1
|
62
|
-
-
|
63
|
-
-
|
64
|
-
version: 1.
|
62
|
+
- 0
|
63
|
+
- 9
|
64
|
+
version: 1.0.9
|
65
65
|
requirement: *id003
|
66
66
|
prerelease: false
|
67
|
-
name:
|
67
|
+
name: bundler
|
68
68
|
type: :development
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
version_requirements: &id004 !ruby/object:Gem::Requirement
|
71
71
|
none: false
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
hash:
|
75
|
+
hash: 7
|
76
76
|
segments:
|
77
|
-
-
|
78
|
-
|
77
|
+
- 1
|
78
|
+
- 5
|
79
|
+
- 2
|
80
|
+
version: 1.5.2
|
79
81
|
requirement: *id004
|
80
82
|
prerelease: false
|
81
|
-
name:
|
83
|
+
name: jeweler
|
82
84
|
type: :development
|
83
85
|
description: A CLI to test regular expressions on Ruby
|
84
86
|
email: lucascaton@gmail.com
|
85
|
-
executables:
|
86
|
-
|
87
|
+
executables:
|
88
|
+
- rugex
|
87
89
|
extensions: []
|
88
90
|
|
89
91
|
extra_rdoc_files:
|
@@ -98,8 +100,14 @@ files:
|
|
98
100
|
- README.rdoc
|
99
101
|
- Rakefile
|
100
102
|
- VERSION
|
103
|
+
- bin/rugex
|
101
104
|
- lib/rugex.rb
|
105
|
+
- lib/rugex/print.rb
|
106
|
+
- lib/rugex/regex.rb
|
107
|
+
- lib/rugex/string.rb
|
102
108
|
- rugex.gemspec
|
109
|
+
- spec/lib/regex_spec.rb
|
110
|
+
- spec/lib/string_spec.rb
|
103
111
|
- spec/rugex_spec.rb
|
104
112
|
- spec/spec_helper.rb
|
105
113
|
has_rdoc: true
|
@@ -137,5 +145,7 @@ signing_key:
|
|
137
145
|
specification_version: 3
|
138
146
|
summary: A simple tool for testing regular expressions from Ruby using the terminal
|
139
147
|
test_files:
|
148
|
+
- spec/lib/regex_spec.rb
|
149
|
+
- spec/lib/string_spec.rb
|
140
150
|
- spec/rugex_spec.rb
|
141
151
|
- spec/spec_helper.rb
|