icersplicer 0.2.8 → 0.3.6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e2beec4f35e822f4c6c37e651aa607cb1f5f8538
4
- data.tar.gz: 90fa44bb5f71d6cb8f7fad991c000e740fa77131
3
+ metadata.gz: 79a6b544dd7773a013878c6e2ba86254a45dd389
4
+ data.tar.gz: 7acbff17920844192fb8a3f5d8e97be1a156d569
5
5
  SHA512:
6
- metadata.gz: 75c499006d2fc912975ab8b6efb94e26070f61de04507838e671c5d4681d54b66f87c94a7238ce7c495906680266f3f8e2c031e0cbad6db18952389846e3e74d
7
- data.tar.gz: 1cf7aa189a385d69717417f02d152d07392676f2b8260e8e41285c37ada82f14c39ada3af76780bb0400bceadadcdba07cdbc6ff3eeddf182b632ef43f4fc038
6
+ metadata.gz: 78d1cfaf9f36116a67727f820e49277f69590d40763df5cd2951f281e0c01ca51ea3a2007851a620877be6cab5250ced548f77f714ff5acfb717858a861be627
7
+ data.tar.gz: 2262de63b30956f95f8dc41bcfdc216d50cb6120c8fcf9fbd9f45358a2bd4a4e50e371df9f6c671fb378592b18e07061b8983be988b5d165740f82bd737d62c2
data/bin/icersplicer CHANGED
@@ -34,7 +34,9 @@ opts = GetoptLong.new(
34
34
  [ '--skipblank', '-b', GetoptLong::NO_ARGUMENT ],
35
35
  [ '--quiet', '-q', GetoptLong::OPTIONAL_ARGUMENT],
36
36
  [ '--outputfile', '-o', GetoptLong::OPTIONAL_ARGUMENT],
37
- [ '--countlines', '-c', GetoptLong::OPTIONAL_ARGUMENT]
37
+ [ '--countlines', '-c', GetoptLong::OPTIONAL_ARGUMENT],
38
+ [ '--grep', '-g', GetoptLong::REQUIRED_ARGUMENT],
39
+ [ '--nohighlighter', '-t', GetoptLong::NO_ARGUMENT ]
38
40
  )
39
41
 
40
42
  opts.each do |opt, arg|
@@ -42,21 +44,26 @@ opts.each do |opt, arg|
42
44
  when '--help'
43
45
  helper = "\e[1;34mWelcome to Icersplicer #{VERSION}\e[0m\ \n"
44
46
  helper << "\e[1;34m============================\e[0m\ \n"
45
- helper << %q[
47
+ helper << %Q[
46
48
  -h, --help '-h':
47
49
  show help
48
50
  --lineoffset '-l' INTEGER
49
51
  --linelimit '-n' INTEGER
50
52
  --inputfile '-f' filename
51
53
  --skiplines '-s' LINE NUMBERS 3,5,6
52
- --skipblank '-b' NO ARGUMENTS
54
+ --skipblank '-b' NO ARGUMENTS ( Ommit blank lines )
53
55
  --quiet '-q' NO ARGUMENTS
54
56
  --outputfile '-o' filename
55
57
  --countlines '-c' Counts the lines of a file
58
+ --grep '-g' Filter data
59
+ --nohighlighter '-t' NO ARGUMENTS ( Turns off syntax hightlighting )
56
60
 
57
61
  Example:
58
62
 
59
- icersplicer -f inputfile --lineoffset 0 --linelimit 10 -s 3,6,9 -o outputfile
63
+ icersplicer -f inputfile --lineoffset 0 --linelimit 10 -s 3,6,9,10-15 -o outputfile
64
+
65
+ TIPS: Create a custom keywords list in your #{Dir.home}/.icersplicer/keywords.ice
66
+
60
67
 
61
68
  Written by Brian Hood
62
69
  ]
@@ -75,10 +82,27 @@ Written by Brian Hood
75
82
  puts "Outputfile: #{@outputfile}"
76
83
  when '--skiplines'
77
84
  @skip_lines = Array.new
78
- arg.to_s.split(",").each {|n| @skip_lines << n.to_i }
85
+ arg.to_s.split(",").each {|n|
86
+ @skip_lines << n.to_i
87
+ # Allow line ranges
88
+ min = n.split("-")[0].to_i
89
+ max = n.split("-")[1].to_i
90
+ unless n.split("-")[1] == nil
91
+ begin
92
+ if min > max and max != 0
93
+ return false
94
+ end
95
+ rescue
96
+ puts "Range Error: Minimun value can't be more than Maxiumun Range value"
97
+ exit
98
+ end
99
+ min.upto(max) {|s|
100
+ @skip_lines << s unless @skip_lines[@skip_lines.size - 1] == s
101
+ }
102
+ end
103
+ }
79
104
  when '--skipblank'
80
105
  @skipblank = "SKIP"
81
- puts @skipblank
82
106
  when '--quiet'
83
107
  if arg == "true"
84
108
  @quiet_mode = true
@@ -87,6 +111,10 @@ Written by Brian Hood
87
111
  end
88
112
  when '--countlines'
89
113
  @countlines = true
114
+ when '--grep'
115
+ @grep = arg.to_s
116
+ when '--nohighlighter'
117
+ @nohighlighter = "OFF"
90
118
  end
91
119
  end
92
120
 
@@ -124,33 +152,49 @@ unless File.exist?("#{inputfile}")
124
152
  exit
125
153
  end
126
154
 
127
- File.open(inputfile) {|n|
128
- n.each_line {|data|
129
- data_orig = data.clone
130
- unless lineoffset > increment_offset
131
- unless linelimit == 0
132
- unless increment_limit > linelimit
133
- unless instance_variable_defined?("@skipblank") and data.strip == ""
134
- print_to_screen(linecounter, text_highlighter(data), quietmode) unless skip(linecounter)
135
- if instance_variable_defined?("@outputfile")
136
- processdata(data_orig, outputfile, quietmode) unless skip(linecounter)
155
+ def text_processor(data)
156
+ unless instance_variable_defined?("@nohighlighter")
157
+ data = text_highlighter(data)
158
+ return data
159
+ else
160
+ return data
161
+ end
162
+ end
163
+
164
+ begin
165
+ File.open(inputfile) {|n|
166
+ n.each_line {|data|
167
+ data_orig = data.clone
168
+ unless lineoffset > increment_offset
169
+ unless linelimit == 0
170
+ unless increment_limit > linelimit
171
+ unless instance_variable_defined?("@skipblank") and data.strip == ""
172
+ unless instance_variable_defined?("@grep") and data =~ %r=#{@grep}=
173
+ print_to_screen(linecounter, text_processor(data), quietmode) unless skip(linecounter)
174
+ if instance_variable_defined?("@outputfile")
175
+ processdata(data_orig, outputfile, quietmode) unless skip(linecounter)
176
+ end
177
+ end
137
178
  end
138
179
  end
139
- end
140
- else
141
- unless instance_variable_defined?("@skipblank") and data.strip == ""
142
- print_to_screen(linecounter, text_highlighter(data), quietmode) unless skip(linecounter)
143
- if instance_variable_defined?("@outputfile")
144
- processdata(data_orig, outputfile, quietmode) unless skip(linecounter)
180
+ else
181
+ unless instance_variable_defined?("@skipblank") and data.strip == ""
182
+ unless instance_variable_defined?("@grep") and data =~ %r=#{@grep}=
183
+ print_to_screen(linecounter, text_processor(data), quietmode) unless skip(linecounter)
184
+ if instance_variable_defined?("@outputfile")
185
+ processdata(data_orig, outputfile, quietmode) unless skip(linecounter)
186
+ end
187
+ end
145
188
  end
146
189
  end
190
+ increment_limit += 1
147
191
  end
148
- increment_limit += 1
149
- end
150
- increment_offset += 1
151
- linecounter += 1
192
+ increment_offset += 1
193
+ linecounter += 1
194
+ }
152
195
  }
153
- }
154
-
196
+ rescue Errno::EPIPE
197
+ puts "Closing session due to broken pipe"
198
+ end
155
199
  closefile if instance_variable_defined?("@exp")
156
200
  stats(inputfile, outputfile)
@@ -0,0 +1,20 @@
1
+ INSERT##colour=purple
2
+ INTO##colour=purple
3
+ VALUES##colour=purple
4
+ CREATE TABLE##colour=red
5
+ CREATE SCHEMA##colour=red
6
+ SET SCHEMA##colour=yellow
7
+ DROP TABLE##colour=red
8
+ DROP SCHEMA##colour=red
9
+ char
10
+ integer
11
+ varchar
12
+ date
13
+ boolean
14
+ NOT NULL##colour=white
15
+ NULL##colour=white
16
+ (##colour=cyan
17
+ )##colour=cyan
18
+ );##colour=cyan
19
+ true##colour=blue
20
+ false##colour=yellow
data/lib/icersplicer.rb CHANGED
@@ -12,28 +12,65 @@
12
12
  module Icersplicer
13
13
 
14
14
  module VERSION #:nodoc:
15
-
16
15
  MAJOR = 0
17
- MINOR = 2
18
- TINY = 8
19
- CODENAME = "Icestorm !"
20
-
16
+ MINOR = 3
17
+ TINY = 6
18
+ CODENAME = "Ice Axe !"
21
19
  STRING = [MAJOR, MINOR, TINY].join('.')
22
-
23
20
  end
24
21
 
25
22
  @@nfile = 0
26
23
  @@exp = nil
24
+ @@keywordsfile = "keywords.ice"
25
+
26
+ COLOURS = {"black" => 0,
27
+ "red" => 1,
28
+ "green" => 2,
29
+ "yellow" => 3,
30
+ "blue" => 4,
31
+ "purple" => 5,
32
+ "cyan" => 6,
33
+ "white" => 7}
34
+
35
+ def load_keywords(file)
36
+ keys = Array.new
37
+ unless Dir.exists?("#{Dir.home}/.icersplicer")
38
+ Dir.mkdir("#{Dir.home}/.icersplicer")
39
+ end
40
+ if File.exists?("#{Dir.home}/.icersplicer/#{file}")
41
+ File.open("#{Dir.home}/.icersplicer/#{file}") {|n|
42
+ n.each_line {|l|
43
+ keys << l.strip unless l.strip == ""
44
+ }
45
+ }
46
+ return keys
47
+ else
48
+ return false
49
+ end
50
+ end
27
51
 
28
52
  def text_highlighter(text)
29
- keys = ["Ln:", "SELECT", "CREATE TABLE", "UPDATE", "DELETE", "INSERT", "FROM", "OFFSET", "GROUP BY", "HAVING", "ORDER BY",
30
- "ALTER USER", "ALTER TABLE", "COPY", "INTO", "VALUES", "DELIMITERS", "STDIN", "CREATE USER", "WITH", "USING",
31
- "CREATE INDEX", "CONSTRAINT", "ALTER INDEX", "INTEGER", "CHAR", "CLOB", "VARCHAR", "STRING", "DEFAULT", "NULL", "NOT",
32
- "RECORDS", "KEY", "PRIMARY", "FOREIGN", "BIGINT", "MERGE", "REMOTE", "DROP TABLE", "SET SCHEMA", "CREATE SCHEMA",
33
- "ALTER SCHEMA", "ADD", "TABLE", "CREATE SEQUENCE", "ALTER SEQUENCE"]
53
+ keys = load_keywords("#{@@keywordsfile}")
54
+ if keys == false
55
+ keys = ["Ln:", "SELECT", "CREATE TABLE", "UPDATE", "DELETE", "INSERT", "FROM", "OFFSET", "GROUP BY", "HAVING", "ORDER BY",
56
+ "ALTER USER", "ALTER TABLE", "COPY", "INTO", "VALUES", "DELIMITERS", "STDIN", "CREATE USER", "WITH", "USING",
57
+ "CREATE INDEX", "CONSTRAINT", "ALTER INDEX", "INTEGER", "CHAR", "CLOB", "VARCHAR", "STRING", "DEFAULT", "NULL", "NOT",
58
+ "RECORDS", "KEY", "PRIMARY", "FOREIGN", "BIGINT", "MERGE", "REMOTE", "DROP TABLE", "SET SCHEMA", "CREATE SCHEMA",
59
+ "ALTER SCHEMA", "ADD", "TABLE", "CREATE SEQUENCE", "ALTER SEQUENCE"]
60
+ end
34
61
  cpicker = [2,3,4,1,7,5,6] # Just a selection of colours
35
62
  keys.each {|n|
36
- text.gsub!("#{n}", "\e[4;3#{cpicker[rand(cpicker.size)]}m#{n}\e[0m\ \e[0;32m".strip)
63
+ if n.split("##")[1] == nil
64
+ text.gsub!("#{n}", "\e[4;3#{cpicker[rand(cpicker.size)]}m#{n}\e[0m\ \e[0;32m".strip)
65
+ else
66
+ name = n.split("##")[1].split("=")[1]
67
+ #puts "Colour: #{name} #{COLOURS[name]}"
68
+ cnum = COLOURS[name].to_i
69
+ #puts "NVal: #{n}"
70
+ nval = n.split("##")[0]
71
+ text.gsub!("#{nval}", "\e[4;3#{cnum}m#{nval}\e[0m\ \e[0;32m".strip)
72
+ end
73
+ text.gsub!(" \e[0;32m", "\e[0;32m")
37
74
  }
38
75
  return text
39
76
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: icersplicer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.8
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Hood
@@ -18,6 +18,7 @@ extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
20
  - bin/icersplicer
21
+ - examples/keywords.ice
21
22
  - lib/icersplicer.rb
22
23
  homepage: https://github.com/puppetpies/icersplicer
23
24
  licenses: