idata 0.1.4 → 0.1.5

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.
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