syc-spector 0.0.2 → 0.0.3
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.rdoc +4 -4
- data/lib/inspector/options.rb +9 -5
- data/lib/inspector/pattern.rb +3 -0
- data/lib/inspector/separator.rb +2 -2
- data/syc-spector-0.0.2.gem +0 -0
- data/sycspector.gemspec +4 -5
- data/test/test_options.rb +26 -9
- metadata +12 -11
- data/README +0 -54
data/README.rdoc
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
== Welcome to syc-spector
|
2
2
|
home :: https://github.com/sugaryourcoffee/syc-spector
|
3
3
|
|
4
4
|
== Description
|
@@ -6,10 +6,10 @@ The sycspector scans a file for patterns provided on the command line.
|
|
6
6
|
Lines that match the pattern are saved to a file with valid values and those lines that don't match the pattern are added to a file with invalid values.
|
7
7
|
The valid and invalid files as well as the used pattern are stored in a
|
8
8
|
history file. The saved values are used for a subsequent call to sycspector
|
9
|
-
with --show and -f for fix to show the results or to prompt the invalid values to fix them. Fixed values can appended to the valid values file.
|
9
|
+
with --show and -f for fix to show the results or to prompt the invalid values to fix them. Fixed values can be appended to the valid values file.
|
10
10
|
|
11
11
|
== Installation
|
12
|
-
sycspector can be installed as a gem from
|
12
|
+
sycspector can be installed as a gem from http://RubyGems.org with
|
13
13
|
$ gem install syc-spector
|
14
14
|
|
15
15
|
== Invokation Examples
|
@@ -51,4 +51,4 @@ To process all at once
|
|
51
51
|
$ sycspector -fis inputfile -o outputfile -p "\A\w+, w+\Z" --show
|
52
52
|
|
53
53
|
== License
|
54
|
-
syc-spector is released under the {MIT License}[http://www.opensource.org/
|
54
|
+
syc-spector is released under the {MIT License}[http://www.opensource.org/licenses/MIT].
|
data/lib/inspector/options.rb
CHANGED
@@ -98,9 +98,6 @@ module Inspector
|
|
98
98
|
|
99
99
|
# Create a flag
|
100
100
|
|
101
|
-
@options[:pattern] = /\A.*\Z/
|
102
|
-
@options[:scan_pattern] = /\A.*\Z/
|
103
|
-
|
104
101
|
opts.on("-p", "--pattern PATTERN",
|
105
102
|
"Values that match the pattern are",
|
106
103
|
"considered as valid values.",
|
@@ -165,8 +162,10 @@ module Inspector
|
|
165
162
|
File.open(".sycspector.data", 'r') do |file|
|
166
163
|
files = create_output_files file.gets.chomp
|
167
164
|
argv << file.gets.chomp
|
168
|
-
@options[:pattern]
|
169
|
-
|
165
|
+
unless @options[:pattern]
|
166
|
+
@options[:pattern] = Regexp.new(file.gets.chomp)
|
167
|
+
@options[:scan_pattern] = Regexp.new(file.gets.chomp)
|
168
|
+
end
|
170
169
|
end
|
171
170
|
else
|
172
171
|
STDERR.puts "--> no sycspector history.\n" +
|
@@ -205,6 +204,11 @@ module Inspector
|
|
205
204
|
@options[:valid_file] = files[:valid_file]
|
206
205
|
@options[:invalid_file] = files[:invalid_file]
|
207
206
|
end
|
207
|
+
|
208
|
+
unless @options[:pattern]
|
209
|
+
@options[:pattern] = DEFAULT_PATTERN
|
210
|
+
@options[:scan_pattern] = DEFAULT_PATTERN
|
211
|
+
end
|
208
212
|
end
|
209
213
|
end
|
210
214
|
end
|
data/lib/inspector/pattern.rb
CHANGED
@@ -6,6 +6,9 @@ EMAIL_PATTERN = /\A[\w!#\$%&'*+\/=?`{|}~^-]+(?:\.[\w!#\$%&'*+\/=?`{|}~^-]+)*@(?:
|
|
6
6
|
# Pattern that relizes an email within a line.
|
7
7
|
ANY_EMAIL_PATTERN = /[\w!#\$%&'*+\/=?`{|}~^-]+(?:\.[\w!#\$%&'*+\/=?`{|}~^-]+)*@(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,6}/
|
8
8
|
|
9
|
+
# Default pattern scanning whole lines
|
10
|
+
DEFAULT_PATTERN = /\A.*\Z/
|
11
|
+
|
9
12
|
# Pattern that relizes strings between \A and \Z that is beginning of line and
|
10
13
|
# end of line patterns.
|
11
14
|
FULL_LINE = /(?<=\\A).*(?=\\Z)/
|
data/lib/inspector/separator.rb
CHANGED
@@ -136,7 +136,7 @@ module Inspector
|
|
136
136
|
invalid_values << value
|
137
137
|
end
|
138
138
|
else
|
139
|
-
valid_values << match
|
139
|
+
valid_values << match.to_s
|
140
140
|
end
|
141
141
|
end
|
142
142
|
end
|
@@ -145,7 +145,7 @@ module Inspector
|
|
145
145
|
valid_counter = valid_values.size
|
146
146
|
|
147
147
|
valid_values.uniq! {|value| value.downcase } if opts[:individualize]
|
148
|
-
valid_values.sort! if opts[:sort]
|
148
|
+
valid_values.sort! {|a,b| a.downcase <=> b.downcase } if opts[:sort]
|
149
149
|
|
150
150
|
valid_values.each do |value|
|
151
151
|
valid_file.puts value
|
Binary file
|
data/sycspector.gemspec
CHANGED
@@ -1,11 +1,9 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "syc-spector"
|
3
|
-
s.summary =
|
4
|
-
|
5
|
-
Allow to sort, remove double and manually fix values."
|
6
|
-
s.description = File.read(File.join(File.dirname(__FILE__), 'README'))
|
3
|
+
s.summary = "Extract, sort and individualize values from a file"
|
4
|
+
s.description = File.read(File.join(File.dirname(__FILE__), 'README.rdoc'))
|
7
5
|
s.requirements = ['No requirements']
|
8
|
-
s.version = "0.0.
|
6
|
+
s.version = "0.0.3"
|
9
7
|
s.author = "Pierre Sugar"
|
10
8
|
s.email = "pierre@sugaryourcoffee.de"
|
11
9
|
s.homepage = "http://syc.dyndns.org/drupal"
|
@@ -15,4 +13,5 @@ Gem::Specification.new do |s|
|
|
15
13
|
s.executables = ['sycspector']
|
16
14
|
s.test_files = Dir['test/test*.rb']
|
17
15
|
s.has_rdoc = true
|
16
|
+
s.extra_rdoc_files = ['README.rdoc']
|
18
17
|
end
|
data/test/test_options.rb
CHANGED
@@ -30,7 +30,6 @@ class TestOptions < Test::Unit::TestCase
|
|
30
30
|
|
31
31
|
# Intializes the input, valid, invalid and history file
|
32
32
|
def setup
|
33
|
-
puts "in startup"
|
34
33
|
File.open('existing', 'w') do |file|
|
35
34
|
file.puts "pierre@thesugars.de"
|
36
35
|
file.puts "amanda@thesugars.de und pierre@thesugars.de"
|
@@ -38,11 +37,11 @@ class TestOptions < Test::Unit::TestCase
|
|
38
37
|
File.open('.sycspector.data', 'w') do |file|
|
39
38
|
file.puts "20130113-121212_valid_values"
|
40
39
|
file.puts "20130113-121212_invalid_values"
|
41
|
-
file.puts "(?-mix
|
42
|
-
"(
|
43
|
-
"[a-zA-Z]{2,6}
|
44
|
-
file.puts "(?-mix:[
|
45
|
-
"(
|
40
|
+
file.puts "(?-mix:\\A[\\w!#\\$%&'*+\/=?`{|}~^-]+" +
|
41
|
+
"(?:\\.[\\w!#\\$%&'*+\/=?`{|}~^-]+)*@(?:[a-zA-Z0-9-]+\\.)+" +
|
42
|
+
"[a-zA-Z]{2,6}\\Z)"
|
43
|
+
file.puts "(?-mix:[\\w!#\\$%&'*+\/=?`{|}~^-]+" +
|
44
|
+
"(?:\\.[\\w!#\\$%&'*+\/=?`{|}~^-]+)*@(?:[a-zA-Z0-9-]+\\.)+" +
|
46
45
|
"[a-zA-Z]{2,6})"
|
47
46
|
end
|
48
47
|
File.open('20130113-121212_valid_values', 'w') do |file|
|
@@ -57,15 +56,16 @@ class TestOptions < Test::Unit::TestCase
|
|
57
56
|
|
58
57
|
# Cleans up the test directory by deleting the files created in setup
|
59
58
|
def teardown
|
60
|
-
puts "in shutdown"
|
61
59
|
`rm existing`
|
62
60
|
`rm 20130113-*`
|
63
61
|
`rm .sycspector.data`
|
64
62
|
end
|
65
63
|
|
66
|
-
should "return inputfile" do
|
64
|
+
should "return inputfile and default pattern" do
|
67
65
|
opts = Inspector::Options.new(["existing"])
|
68
66
|
assert_equal "existing", opts.options[:infile]
|
67
|
+
assert_equal DEFAULT_PATTERN, opts.options[:pattern]
|
68
|
+
assert_equal DEFAULT_PATTERN, opts.options[:scan_pattern]
|
69
69
|
end
|
70
70
|
|
71
71
|
should "return email pattern" do
|
@@ -104,12 +104,29 @@ class TestOptions < Test::Unit::TestCase
|
|
104
104
|
assert_equal nil, opts.options[:infile]
|
105
105
|
end
|
106
106
|
|
107
|
-
should "return fix and invalid file as input file
|
107
|
+
should "return fix and invalid file as input file and pattern "+
|
108
|
+
"from last invokation" do
|
108
109
|
opts = Inspector::Options.new(["-f"])
|
109
110
|
assert_equal true, opts.options[:fix]
|
110
111
|
assert_equal "20130113-121212_invalid_values", opts.options[:infile]
|
112
|
+
|
113
|
+
pattern_match =
|
114
|
+
"a@b.c".match(EMAIL_PATTERN).to_s ==
|
115
|
+
"a@b.c".match(opts.options[:pattern]).to_s
|
116
|
+
scan_pattern_match =
|
117
|
+
"is a@b.c here?".match(ANY_EMAIL_PATTERN).to_s ==
|
118
|
+
"is a@b.c here?".match(opts.options[:scan_pattern]).to_s
|
119
|
+
|
120
|
+
assert_equal true, pattern_match
|
121
|
+
assert_equal true, scan_pattern_match
|
111
122
|
end
|
112
123
|
|
124
|
+
should "return fix and provided pattern and scan_pattern" do
|
125
|
+
opts = Inspector::Options.new(["-f", "-p", "\\A\\w+@\\w+\\.\\w+\\Z"])
|
126
|
+
assert_equal true, opts.options[:fix]
|
127
|
+
assert_equal /\A\w+@\w+\.\w+\Z/, opts.options[:pattern]
|
128
|
+
assert_equal /\w+@\w+\.\w+/, opts.options[:scan_pattern]
|
129
|
+
end
|
113
130
|
end
|
114
131
|
|
115
132
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: syc-spector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,18 +9,18 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-01-
|
12
|
+
date: 2013-01-19 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
|
-
description: ! "
|
14
|
+
description: ! "== Welcome to syc-spector\n home :: https://github.com/sugaryourcoffee/syc-spector\n\n==
|
15
15
|
Description\nThe sycspector scans a file for patterns provided on the command line.\nLines
|
16
16
|
that match the pattern are saved to a file with valid values and those lines that
|
17
17
|
don't match the pattern are added to a file with invalid values.\nThe valid and
|
18
18
|
invalid files as well as the used pattern are stored in a\nhistory file. The saved
|
19
19
|
values are used for a subsequent call to sycspector\nwith --show and -f for fix
|
20
20
|
to show the results or to prompt the invalid values to fix them. Fixed values can
|
21
|
-
appended to the valid values file.\n\n== Installation\nsycspector can be installed
|
22
|
-
as a gem from
|
23
|
-
|
21
|
+
be appended to the valid values file.\n\n== Installation\nsycspector can be installed
|
22
|
+
as a gem from http://RubyGems.org with\n $ gem install syc-spector\n\n== Invokation
|
23
|
+
Examples\nRearches for email addresses in the provided file 'email_addresses'\n
|
24
24
|
\ $ sycspector email_addresses -p email\n\nLines that are not recognized can be
|
25
25
|
prompted, fixed and appended to the\nvalid file with\n $ sycspector -fa\n\nTo show
|
26
26
|
the result of the invokation use\n $ sycspector --show\n\nTo fix the values from
|
@@ -36,12 +36,13 @@ description: ! "= Welcome to syc-spector\n home :: https://github.com/sugaryourc
|
|
36
36
|
the file where the results (valid and invalid) should go to\n $ sycspector -fa
|
37
37
|
-o outputfile\n\nTo process all at once\n $ sycspector -fis inputfile -o outputfile
|
38
38
|
-p \"\\A\\w+, w+\\Z\" --show\n\n== License\nsyc-spector is released under the {MIT
|
39
|
-
License}[http://www.opensource.org/
|
39
|
+
License}[http://www.opensource.org/licenses/MIT].\n"
|
40
40
|
email: pierre@sugaryourcoffee.de
|
41
41
|
executables:
|
42
42
|
- sycspector
|
43
43
|
extensions: []
|
44
|
-
extra_rdoc_files:
|
44
|
+
extra_rdoc_files:
|
45
|
+
- README.rdoc
|
45
46
|
files:
|
46
47
|
- syc-spector-0.0.1.gem
|
47
48
|
- README.rdoc
|
@@ -97,9 +98,10 @@ files:
|
|
97
98
|
- doc/Inspector/Options.html
|
98
99
|
- doc/Inspector/Runner.html
|
99
100
|
- doc/TestConsole.html
|
101
|
+
- syc-spector-0.0.3.gem
|
100
102
|
- sycspector.gemspec
|
101
103
|
- bin/sycspector
|
102
|
-
-
|
104
|
+
- syc-spector-0.0.2.gem
|
103
105
|
homepage: http://syc.dyndns.org/drupal
|
104
106
|
licenses: []
|
105
107
|
post_install_message:
|
@@ -124,8 +126,7 @@ rubyforge_project:
|
|
124
126
|
rubygems_version: 1.8.24
|
125
127
|
signing_key:
|
126
128
|
specification_version: 3
|
127
|
-
summary:
|
128
|
-
remove double and manually fix values.
|
129
|
+
summary: Extract, sort and individualize values from a file
|
129
130
|
test_files:
|
130
131
|
- test/test_options.rb
|
131
132
|
- test/test_separator.rb
|
data/README
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
= Welcome to syc-spector
|
2
|
-
home :: https://github.com/sugaryourcoffee/syc-spector
|
3
|
-
|
4
|
-
== Description
|
5
|
-
The sycspector scans a file for patterns provided on the command line.
|
6
|
-
Lines that match the pattern are saved to a file with valid values and those lines that don't match the pattern are added to a file with invalid values.
|
7
|
-
The valid and invalid files as well as the used pattern are stored in a
|
8
|
-
history file. The saved values are used for a subsequent call to sycspector
|
9
|
-
with --show and -f for fix to show the results or to prompt the invalid values to fix them. Fixed values can appended to the valid values file.
|
10
|
-
|
11
|
-
== Installation
|
12
|
-
sycspector can be installed as a gem from [RubyGems](http://RubyGems.org) with
|
13
|
-
$ gem install syc-spector
|
14
|
-
|
15
|
-
== Invokation Examples
|
16
|
-
Rearches for email addresses in the provided file 'email_addresses'
|
17
|
-
$ sycspector email_addresses -p email
|
18
|
-
|
19
|
-
Lines that are not recognized can be prompted, fixed and appended to the
|
20
|
-
valid file with
|
21
|
-
$ sycspector -fa
|
22
|
-
|
23
|
-
To show the result of the invokation use
|
24
|
-
$ sycspector --show
|
25
|
-
|
26
|
-
To fix the values from the input file at the first scan
|
27
|
-
$ sycspector -f email-addresses -p email
|
28
|
-
|
29
|
-
To sort the values
|
30
|
-
$ sycspector -s email-addresses -p email
|
31
|
-
|
32
|
-
To fix, sort and remove duplicates (individualize)
|
33
|
-
$ sycspector -fsi email-addresses -p email
|
34
|
-
|
35
|
-
Matching patterns like 'name, firstname'
|
36
|
-
$ syscpector name -p "\w+, \w+"
|
37
|
-
|
38
|
-
Scanning only whole lines use
|
39
|
-
$ sycspector name -p "\A\w+, \w+\A"
|
40
|
-
|
41
|
-
If the file contains lines like "Doe, John and Doe, Jane" these won't be saved at the first scan but can be scanned with the --fix switch and appended to the valid values from the last run
|
42
|
-
$ sycspector -fa
|
43
|
-
|
44
|
-
Fixing a specific file by specifying the invalid file as inputfile
|
45
|
-
$ sycspector -fa 2013016-083346_invalid_name -o 2013016-083346_valid_name
|
46
|
-
|
47
|
-
Specifying the file where the results (valid and invalid) should go to
|
48
|
-
$ sycspector -fa -o outputfile
|
49
|
-
|
50
|
-
To process all at once
|
51
|
-
$ sycspector -fis inputfile -o outputfile -p "\A\w+, w+\Z" --show
|
52
|
-
|
53
|
-
== License
|
54
|
-
syc-spector is released under the {MIT License}[http://www.opensource.org/license/MIT].
|