ix-cli 0.0.25 → 0.0.26

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
  SHA256:
3
- metadata.gz: f91aade16c9caf38a86cbb707cb450d7a8fc9b7f4c6c1b66f2b11c6cc1e1fd5c
4
- data.tar.gz: 02f508ac05321cc4154d34070e0c7d78bf06fec9a8206fcdbe56b4f2d3e78826
3
+ metadata.gz: 2b90eae0cfdfe4e66f3d4f00aa6b43cfc79604b298f84b9c8925c28465dce2da
4
+ data.tar.gz: 10ce8d8b34502871e1f6996e186969fbfff1e90f8ecd9d65e38987e5ce772921
5
5
  SHA512:
6
- metadata.gz: 3ae606dcb64a65ede528f1751f7ed990d512c59c9aac7ed0a38ead30664d93deb58c01cdee5ba7d330babd69180b76f82becbc290c83d1eda53439d8eceb6e01
7
- data.tar.gz: c02fc0ffdcb1943467d74400542bec8d9b836fb80f202dfe747796714560de7f5970bc37af32af58997f163ec88184520030f1f8f4fb2686950c8803a8960678
6
+ metadata.gz: cf573b716a598513a1c7f8e79ef287997094ec29aeb88cd316f035e35cd67492a0953b617606b414ffde36af62ddec4de6c6b2b027ea91881527fa164b4ea8e0
7
+ data.tar.gz: 15152f3b4cd5616439218df39bbd4a3a89533b028b70ddf51b6ca415dd7d331dddcc92c2f28293845d01b82375a467d3180d94364eb3aa2b724fea0de40d581b
data/bin/ix-hls CHANGED
@@ -10,6 +10,29 @@
10
10
 
11
11
  require 'isna'
12
12
 
13
+ require 'optparse'
14
+
15
+ options = {}
16
+ options[:delimiter] = ':'
17
+
18
+ OptionParser.new do |opts|
19
+
20
+ opts.banner = "Usage: #{$0} [OPTIONS]"
21
+
22
+ opts.on('-d', '--delimiter [STRING]', 'Delimiter.') do |value|
23
+ options[:delimiter] = value
24
+ end
25
+
26
+ end.parse!
27
+
28
+ required_options = [:delimiter]
29
+ required_options.each do |option|
30
+ unless options[option]
31
+ $stderr.puts "Can not run #{option.to_s} was not given."
32
+ exit 1
33
+ end
34
+ end
35
+
13
36
  abort 'No pattern given' if ARGV[0].nil?
14
37
 
15
38
  trap('SIGINT') { }
@@ -17,9 +40,11 @@ trap('SIGINT') { }
17
40
  $stdout.sync = true
18
41
 
19
42
  STDIN.each_line do |line|
43
+ line.chomp!
20
44
  ARGV.each do |arg|
21
- chunks = arg.split(':')
22
- puts line.gsub(/(#{chunks[0]})/i) { |x| $1.to_ansi.send(chunks[1].to_sym).to_s }
45
+ chunks = arg.split(options[:delimiter])
46
+ line.gsub!(/(#{chunks[0]})/i) { |x| $1.to_ansi.send(chunks[1].to_sym).to_s }
23
47
  end
48
+ puts line
24
49
  end
25
50
 
data/bin/ix-linkify CHANGED
@@ -3,6 +3,28 @@
3
3
  require 'net/http'
4
4
  require 'nokogiri'
5
5
  require 'open-uri'
6
+ require 'optparse'
7
+
8
+ options = {}
9
+ options[:output] = 'text'
10
+
11
+ OptionParser.new do |opts|
12
+
13
+ opts.banner = "Usage: #{$0} [OPTIONS]"
14
+
15
+ opts.on('-o', '--output [STRING]', 'Output.') do |value|
16
+ options[:output] = value
17
+ end
18
+
19
+ end.parse!
20
+
21
+ required_options = [:output]
22
+ required_options.each do |option|
23
+ unless options[option]
24
+ $stderr.puts "Can not run #{option.to_s} was not given."
25
+ exit 1
26
+ end
27
+ end
6
28
 
7
29
  class Mock
8
30
  attr_accessor :title
@@ -10,13 +32,19 @@ end
10
32
 
11
33
  counter = 0
12
34
 
35
+ if options[:output] == 'html'
36
+ puts "<ol>"
37
+ end
38
+
13
39
  STDIN.each_line do |line|
14
40
  next if line.chomp == ''
15
41
  counter += 1
16
42
  url = line.chomp
17
43
  begin
18
- doc = Nokogiri::HTML(open(url))
44
+ data = Net::HTTP.get(URI.parse(url))
45
+ doc = Nokogiri::HTML(data)
19
46
  rescue => e
47
+ $stderr.puts e.message
20
48
  doc = Mock.new
21
49
  doc.title = url
22
50
  end
@@ -24,12 +52,26 @@ STDIN.each_line do |line|
24
52
  doc = Mock.new
25
53
  doc.title = url
26
54
  end
27
- template = "%s - %s\n%s\n\n"
28
- title = doc.title
29
- title.chomp!
30
- title.gsub!(/\n/, '')
31
- title.gsub!(/^\s+/, '')
32
- title.gsub!(/\s+$/, '')
33
- bindings = [counter, title, url]
34
- puts template % bindings
55
+ if options[:output] == 'text'
56
+ template = "%s - %s\n%s\n\n"
57
+ title = doc.title
58
+ title.chomp!
59
+ title.gsub!(/\n/, '')
60
+ title.gsub!(/^\s+/, '')
61
+ title.gsub!(/\s+$/, '')
62
+ bindings = [counter, title, url]
63
+ puts template % bindings
64
+ elsif options[:output] == 'html'
65
+ title = doc.title
66
+ title.chomp!
67
+ title.gsub!(/\n/, '')
68
+ title.gsub!(/^\s+/, '')
69
+ title.gsub!(/\s+$/, '')
70
+ # bindings = [counter, title, url, url]
71
+ puts "<li><a href='#{url}'>#{title}</a></li>"
72
+ end
73
+ end
74
+
75
+ if options[:output] == 'html'
76
+ puts "</ol>"
35
77
  end
data/bin/ix-pad-char ADDED
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'optparse'
4
+
5
+ options = {}
6
+ options[:pad] = 4
7
+ options[:fill] = '─'
8
+ options[:char] = '['
9
+
10
+ OptionParser.new do |opts|
11
+
12
+ opts.banner = "Usage: #{$0} [OPTIONS]"
13
+
14
+ opts.on('-c', '--char [STRING]', 'Char to use as padding target.') do |value|
15
+ options[:char] = value
16
+ end
17
+
18
+ opts.on('-f', '--fill [STRING]', 'Char to use as filling.') do |value|
19
+ options[:fill] = value
20
+ end
21
+
22
+ opts.on('-p', '--pad [NUMBER]', 'Padd to add to the fill.') do |value|
23
+ options[:pad] = value.to_i
24
+ end
25
+
26
+ end.parse!
27
+
28
+ required_options = [:char, :pad, :fill]
29
+ required_options.each do |option|
30
+ unless options[option]
31
+ $stderr.puts "Can not run #{option.to_s} was not given."
32
+ exit 1
33
+ end
34
+ end
35
+
36
+ items = []
37
+
38
+ STDIN.each_line do |line|
39
+ items << line.chomp
40
+ end
41
+
42
+ max_index_of_char = items.map { |item| item.index(options[:char]) }.max
43
+ char = options[:char]
44
+
45
+ if char == ' '
46
+ char = '\s'
47
+ end
48
+
49
+ if char == '['
50
+ char = '\['
51
+ end
52
+
53
+ REGEX = Regexp.new("^([^#{char}]+)(#{char})(.*$)")
54
+
55
+ # puts "Max index of char: #{max_index_of_char}"
56
+
57
+ items.each do |item|
58
+ next unless REGEX.match(item)
59
+ item.gsub(REGEX) do |match|
60
+ puts "#{($1) + ($2).rjust((max_index_of_char) - $1.size + options[:pad], options[:fill])}#{$3}"
61
+ end
62
+ end
63
+
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'json'
4
+
5
+ STDIN.each_line do |line|
6
+ next if line.strip.empty?
7
+ begin
8
+ object = JSON.parse(JSON.parse(line))
9
+ puts object.to_json
10
+ rescue => e
11
+ $stderr.puts "Error: #{e.message}"
12
+ end
13
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ix-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.25
4
+ version: 0.0.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuyoshi Tlacaelel
@@ -207,6 +207,7 @@ executables:
207
207
  - ix-occurrence
208
208
  - ix-open
209
209
  - ix-pad
210
+ - ix-pad-char
210
211
  - ix-parse
211
212
  - ix-pass
212
213
  - ix-path
@@ -278,6 +279,7 @@ executables:
278
279
  - ix-stream
279
280
  - ix-string-similarity
280
281
  - ix-string-similarity2
282
+ - ix-string-to-json
281
283
  - ix-strip
282
284
  - ix-substract
283
285
  - ix-success
@@ -513,6 +515,7 @@ files:
513
515
  - bin/ix-occurrence
514
516
  - bin/ix-open
515
517
  - bin/ix-pad
518
+ - bin/ix-pad-char
516
519
  - bin/ix-parse
517
520
  - bin/ix-pass
518
521
  - bin/ix-path
@@ -584,6 +587,7 @@ files:
584
587
  - bin/ix-stream
585
588
  - bin/ix-string-similarity
586
589
  - bin/ix-string-similarity2
590
+ - bin/ix-string-to-json
587
591
  - bin/ix-strip
588
592
  - bin/ix-substract
589
593
  - bin/ix-success