idata 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/isanitize +63 -4
  3. data/lib/idata/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 25140998b6255c27f9d303f589a4a4a6bb985243
4
- data.tar.gz: dd065941104de3ebc029951bf8e5268dfcadf2b7
3
+ metadata.gz: 2044f9a6b9fae36b3a529a88e9418b52d3d1442f
4
+ data.tar.gz: 1b9ed2d193de713bab6f27efcf521ba46445b3ab
5
5
  SHA512:
6
- metadata.gz: 3675be44947c520d37acddca6dd46d7afb3b8fca7a70eced8476ac87da661899ded7ff218cf7aa4494071b0b3a994bc668aa035c4383265b45e76678337e3da0
7
- data.tar.gz: 4a59e5866b3a7aeb3e81af5108c7b60a68775ec5152ac14e5ec691ff988ca9a92ada609a66cfbb0ab03e1c824d8ca1573938a0b247da2724c96cf91ac64f4344
6
+ metadata.gz: aa68dbc6e46fda7637e093c272a0f2fed5887be04f888e7cfae7165d836a6e408ebcaebe00a8b45c6626ab5236f23c9f929f49abf1892d2139fd2d0adbd22ca4
7
+ data.tar.gz: 9ff78ee78166292cf035ed7636f9e2ad388b027c7d64f93f0265bd79f9b44ff0b0dbdc0add7060106ca3f44c5cf3a29b4e1853ba38116de9a4a32de9a5777314
data/bin/isanitize CHANGED
@@ -1,4 +1,63 @@
1
- file = ARGV[0]
2
- s = IO.read(file)
3
- s = s.encode('UTF-8', 'binary', invalid: :replace, undef: :replace, replace: '')
4
- File.open(file, 'wb') {|f| f.write(s)}
1
+ # DATA SANITIZER
2
+ #
3
+ # @author Nghi Pham
4
+ # @date April 2014
5
+ #
6
+ require 'optparse'
7
+
8
+ $options = {
9
+ :remove => []
10
+ }
11
+ parser = OptionParser.new("", 24) do |opts|
12
+ opts.banner = "\nProgram: Data Sanitizer\nAuthor: Nghi Pham\n\n"
13
+
14
+ opts.on("--remove CHARCODE", "Unicode code") do |v|
15
+ $options[:remove] << v
16
+ end
17
+
18
+ opts.on_tail('--help', 'Displays this help') do
19
+ puts opts, "", help
20
+ exit
21
+ end
22
+ end
23
+
24
+ def help
25
+ return <<-eos
26
+
27
+ EXAMPLES
28
+ -------------------------------------------------------
29
+
30
+ eos
31
+ end
32
+
33
+ begin
34
+ parser.parse!
35
+ rescue SystemExit => ex
36
+ exit
37
+ end
38
+
39
+ if ARGV.empty?
40
+ puts "ERROR: Please specify input file"
41
+ exit
42
+ end
43
+
44
+ def sanitize(file)
45
+ s = IO.read(file)
46
+
47
+ # Remove invalid UTF-8 byte code
48
+ s = s.encode('UTF-8', 'binary', invalid: :replace, undef: :replace, replace: '')
49
+
50
+ # Remove wrong char
51
+ $options[:remove].each do |c|
52
+ s.gsub!([c.to_i].pack("U"), "")
53
+ end
54
+
55
+ # Write back
56
+ File.open(file, 'wb') {|f| f.write(s)}
57
+ end
58
+
59
+ ARGV.each do |file|
60
+ sanitize(file)
61
+ end
62
+
63
+ puts "\n#{ARGV.count} file(s) sanitized\n"
data/lib/idata/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Idata
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: idata
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nghi Pham
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-23 00:00:00.000000000 Z
11
+ date: 2014-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler