rugex 0.1.5 → 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/Gemfile +1 -0
- data/Gemfile.lock +20 -0
- data/README.textile +5 -1
- data/VERSION +1 -1
- data/bin/rugex +11 -4
- data/features/file.feature +2 -0
- data/features/step_definitions/command_line_steps.rb +0 -0
- data/features/string.feature +16 -0
- data/features/support/env.rb +1 -0
- data/lib/exceptions.rb +5 -0
- data/lib/rugex/file.rb +22 -0
- data/lib/rugex/print.rb +1 -1
- data/lib/rugex/string.rb +2 -8
- data/rugex.gemspec +13 -1
- data/spec/fixtures/file.txt +2 -0
- data/spec/lib/file_spec.rb +10 -0
- metadata +27 -4
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,12 +1,30 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
+
aruba (0.3.2)
|
5
|
+
childprocess (~> 0.1.6)
|
6
|
+
cucumber (~> 0.10.0)
|
7
|
+
rspec (~> 2.3.0)
|
8
|
+
builder (3.0.0)
|
9
|
+
childprocess (0.1.6)
|
10
|
+
ffi (~> 0.6.3)
|
11
|
+
cucumber (0.10.0)
|
12
|
+
builder (>= 2.1.2)
|
13
|
+
diff-lcs (~> 1.1.2)
|
14
|
+
gherkin (~> 2.3.2)
|
15
|
+
json (~> 1.4.6)
|
16
|
+
term-ansicolor (~> 1.0.5)
|
4
17
|
diff-lcs (1.1.2)
|
18
|
+
ffi (0.6.3)
|
19
|
+
rake (>= 0.8.7)
|
20
|
+
gherkin (2.3.3)
|
21
|
+
json (~> 1.4.6)
|
5
22
|
git (1.2.5)
|
6
23
|
jeweler (1.5.2)
|
7
24
|
bundler (~> 1.0.0)
|
8
25
|
git (>= 1.2.5)
|
9
26
|
rake
|
27
|
+
json (1.4.6)
|
10
28
|
rake (0.8.7)
|
11
29
|
rspec (2.3.0)
|
12
30
|
rspec-core (~> 2.3.0)
|
@@ -16,11 +34,13 @@ GEM
|
|
16
34
|
rspec-expectations (2.3.0)
|
17
35
|
diff-lcs (~> 1.1.2)
|
18
36
|
rspec-mocks (2.3.0)
|
37
|
+
term-ansicolor (1.0.5)
|
19
38
|
|
20
39
|
PLATFORMS
|
21
40
|
ruby
|
22
41
|
|
23
42
|
DEPENDENCIES
|
43
|
+
aruba
|
24
44
|
bundler (~> 1.0.9)
|
25
45
|
jeweler (~> 1.5.2)
|
26
46
|
rspec (~> 2.3.0)
|
data/README.textile
CHANGED
@@ -28,11 +28,15 @@ h2. For example:
|
|
28
28
|
<pre><code>rugex aquarius 'a[qr]'</code></pre>
|
29
29
|
=> *aq* u *ar* ius
|
30
30
|
|
31
|
+
h2. Using files:
|
32
|
+
|
33
|
+
<pre><code>rugex -f [file path] [regex]</code></pre>
|
34
|
+
|
31
35
|
h1. TODO
|
32
36
|
|
33
|
-
* File Suport
|
34
37
|
* Regex Options (i, m, x, o)
|
35
38
|
* It does not work in Windows OS.
|
39
|
+
* Show matches groups separately
|
36
40
|
|
37
41
|
h1. Contributing to Lucas Caton
|
38
42
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/bin/rugex
CHANGED
@@ -7,8 +7,9 @@ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
|
7
7
|
|
8
8
|
require 'optparse'
|
9
9
|
require 'rugex/string'
|
10
|
+
require 'rugex/file'
|
10
11
|
|
11
|
-
options = {}
|
12
|
+
options = {:file => false}
|
12
13
|
|
13
14
|
optparse = OptionParser.new do |opts|
|
14
15
|
opts.banner = "Usage:\n\nrugex <text> <regex>\n\nYou can use flags as such:"
|
@@ -18,6 +19,10 @@ optparse = OptionParser.new do |opts|
|
|
18
19
|
exit
|
19
20
|
end
|
20
21
|
|
22
|
+
opts.on('-f', '--file', 'Receives a file as input') do
|
23
|
+
options[:file] = true
|
24
|
+
end
|
25
|
+
|
21
26
|
if ARGV.size < 2
|
22
27
|
puts opts
|
23
28
|
exit
|
@@ -31,6 +36,8 @@ rescue OptionParser::InvalidOption => e
|
|
31
36
|
exit
|
32
37
|
end
|
33
38
|
|
34
|
-
|
35
|
-
|
36
|
-
|
39
|
+
if options[:file] == true
|
40
|
+
puts Rugex::File.new ARGV[0], ARGV[1]
|
41
|
+
else
|
42
|
+
puts Rugex::String.new ARGV[0], ARGV[1]
|
43
|
+
end
|
File without changes
|
@@ -0,0 +1,16 @@
|
|
1
|
+
@string
|
2
|
+
Feature: Running the executable using string
|
3
|
+
|
4
|
+
Scenario Outline: Show "usage" if the user typed a invalid sintax
|
5
|
+
When I run "<input>"
|
6
|
+
Then the output should contain "Usage:\n\nrugex <text> <regex>\n\nYou can use flags as such:"
|
7
|
+
Examples:
|
8
|
+
| input |
|
9
|
+
| rugex |
|
10
|
+
| rugex -h |
|
11
|
+
| rugex --help |
|
12
|
+
| rugex only_one_argument |
|
13
|
+
|
14
|
+
Scenario: Show invalid option message if the user typed a invalid flag
|
15
|
+
When I run "rugex -r regex"
|
16
|
+
Then the output should contain "invalid option: -r"
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'aruba/cucumber'
|
data/lib/exceptions.rb
ADDED
data/lib/rugex/file.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'rugex/print'
|
2
|
+
|
3
|
+
module Rugex
|
4
|
+
class File
|
5
|
+
include Rugex::Print
|
6
|
+
|
7
|
+
def initialize(file_path, regex_string)
|
8
|
+
raise EmptyRegexError if regex_string.empty?
|
9
|
+
|
10
|
+
@regex = Regexp.new(regex_string)
|
11
|
+
|
12
|
+
file = ::File.open(file_path)
|
13
|
+
@result = file.lines.inject '' do |colored_text, line|
|
14
|
+
@text = line
|
15
|
+
colored_text << colorize_text
|
16
|
+
end
|
17
|
+
file.close
|
18
|
+
end
|
19
|
+
|
20
|
+
def to_s; @result; end
|
21
|
+
end
|
22
|
+
end
|
data/lib/rugex/print.rb
CHANGED
data/lib/rugex/string.rb
CHANGED
@@ -1,11 +1,4 @@
|
|
1
1
|
require 'rugex/print'
|
2
|
-
require 'rugex/regex'
|
3
|
-
|
4
|
-
class EmptyRegexError < Exception
|
5
|
-
def initialize
|
6
|
-
super 'The regex param should not be blank.'
|
7
|
-
end
|
8
|
-
end
|
9
2
|
|
10
3
|
module Rugex
|
11
4
|
class String
|
@@ -13,8 +6,9 @@ module Rugex
|
|
13
6
|
|
14
7
|
def initialize(text, regex_string)
|
15
8
|
raise EmptyRegexError if regex_string.empty?
|
9
|
+
|
16
10
|
@text, @regex = text, Regexp.new(regex_string)
|
17
|
-
@result = (@text =~ @regex) == nil ? '(no matches)' :
|
11
|
+
@result = (@text =~ @regex) == nil ? '(no matches)' : colorize_text
|
18
12
|
end
|
19
13
|
|
20
14
|
def to_s; @result; end
|
data/rugex.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rugex}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.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"]
|
@@ -28,9 +28,17 @@ Gem::Specification.new do |s|
|
|
28
28
|
"Rakefile",
|
29
29
|
"VERSION",
|
30
30
|
"bin/rugex",
|
31
|
+
"features/file.feature",
|
32
|
+
"features/step_definitions/command_line_steps.rb",
|
33
|
+
"features/string.feature",
|
34
|
+
"features/support/env.rb",
|
35
|
+
"lib/exceptions.rb",
|
36
|
+
"lib/rugex/file.rb",
|
31
37
|
"lib/rugex/print.rb",
|
32
38
|
"lib/rugex/string.rb",
|
33
39
|
"rugex.gemspec",
|
40
|
+
"spec/fixtures/file.txt",
|
41
|
+
"spec/lib/file_spec.rb",
|
34
42
|
"spec/lib/string_spec.rb",
|
35
43
|
"spec/spec_helper.rb"
|
36
44
|
]
|
@@ -40,6 +48,7 @@ Gem::Specification.new do |s|
|
|
40
48
|
s.rubygems_version = %q{1.4.1}
|
41
49
|
s.summary = %q{A simple tool for testing regular expressions from Ruby using the terminal}
|
42
50
|
s.test_files = [
|
51
|
+
"spec/lib/file_spec.rb",
|
43
52
|
"spec/lib/string_spec.rb",
|
44
53
|
"spec/spec_helper.rb"
|
45
54
|
]
|
@@ -51,15 +60,18 @@ Gem::Specification.new do |s|
|
|
51
60
|
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
52
61
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.9"])
|
53
62
|
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
63
|
+
s.add_development_dependency(%q<aruba>, [">= 0"])
|
54
64
|
else
|
55
65
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
56
66
|
s.add_dependency(%q<bundler>, ["~> 1.0.9"])
|
57
67
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
68
|
+
s.add_dependency(%q<aruba>, [">= 0"])
|
58
69
|
end
|
59
70
|
else
|
60
71
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
61
72
|
s.add_dependency(%q<bundler>, ["~> 1.0.9"])
|
62
73
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
74
|
+
s.add_dependency(%q<aruba>, [">= 0"])
|
63
75
|
end
|
64
76
|
end
|
65
77
|
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Rugex::File' do
|
4
|
+
describe '#to_s' do
|
5
|
+
it 'checks file with regular expression' do
|
6
|
+
output = Rugex::File.new('spec/fixtures/file.txt', 'a[gm].a?')
|
7
|
+
output.to_s.should == "Lorem ipsum dolor sit \e[0;31m\e[4mame\e[0;37mt,\nconsectetur m\e[0;31m\e[4magna\e[0;37m aliqua.\n"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
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: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Lucas Caton
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
prerelease: false
|
67
67
|
name: jeweler
|
68
68
|
type: :development
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
hash: 3
|
76
|
+
segments:
|
77
|
+
- 0
|
78
|
+
version: "0"
|
79
|
+
requirement: *id004
|
80
|
+
prerelease: false
|
81
|
+
name: aruba
|
82
|
+
type: :development
|
69
83
|
description: A CLI to test regular expressions on Ruby
|
70
84
|
email: lucascaton@gmail.com
|
71
85
|
executables:
|
@@ -85,9 +99,17 @@ files:
|
|
85
99
|
- Rakefile
|
86
100
|
- VERSION
|
87
101
|
- bin/rugex
|
102
|
+
- features/file.feature
|
103
|
+
- features/step_definitions/command_line_steps.rb
|
104
|
+
- features/string.feature
|
105
|
+
- features/support/env.rb
|
106
|
+
- lib/exceptions.rb
|
107
|
+
- lib/rugex/file.rb
|
88
108
|
- lib/rugex/print.rb
|
89
109
|
- lib/rugex/string.rb
|
90
110
|
- rugex.gemspec
|
111
|
+
- spec/fixtures/file.txt
|
112
|
+
- spec/lib/file_spec.rb
|
91
113
|
- spec/lib/string_spec.rb
|
92
114
|
- spec/spec_helper.rb
|
93
115
|
has_rdoc: true
|
@@ -125,5 +147,6 @@ signing_key:
|
|
125
147
|
specification_version: 3
|
126
148
|
summary: A simple tool for testing regular expressions from Ruby using the terminal
|
127
149
|
test_files:
|
150
|
+
- spec/lib/file_spec.rb
|
128
151
|
- spec/lib/string_spec.rb
|
129
152
|
- spec/spec_helper.rb
|