quick_and_ruby 0.5.1 → 0.7.0
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 +4 -4
- data/.rubocop.yml +4 -2
- data/Gemfile +2 -0
- data/README.md +25 -1
- data/bin/epoch +6 -0
- data/bin/quickpdf +55 -0
- data/lib/quick_and_ruby/pdf/document.rb +42 -0
- data/lib/quick_and_ruby/pdf.rb +8 -0
- data/lib/quick_and_ruby/time/epoch_cli.rb +76 -0
- data/lib/quick_and_ruby/time/epoch_converter.rb +43 -0
- data/lib/quick_and_ruby/time.rb +10 -0
- data/lib/quick_and_ruby/version.rb +1 -1
- data/quick_and_ruby.gemspec +18 -9
- metadata +181 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ca92f547a72562016dbe6ae7c6565066c2b4677133db05202de86d5471c228b
|
4
|
+
data.tar.gz: 9f60ad5846b8102a14b5a9de65b9a8e5db4bc71aaba14280196ec3739d83cb41
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d093d56fb8ccb86f8f6a9b37e2caf034a89742d8aae6cadaa7fc200c24f1ace18cd8fbee4e536f94e39364bb551335be14e6818892b671990a3024f49968680
|
7
|
+
data.tar.gz: 60884d29f116d6adf7f41d59795d4a33ff6153fc089b4365ae57d6f1f4f3bbcb87f14d0aef95a70eb6d6b95121bb06e978aaadcace76e20e76a906cb3bd2a48d
|
data/.rubocop.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -8,7 +8,7 @@ Gem to group utilities in ruby.
|
|
8
8
|
gem install quick_and_ruby
|
9
9
|
```
|
10
10
|
|
11
|
-
##
|
11
|
+
## bin's
|
12
12
|
|
13
13
|
### proxy
|
14
14
|
|
@@ -25,6 +25,30 @@ datetime -o <offset> -i <incr> -f "<format>" <from>|now <to>|now
|
|
25
25
|
datetime -o <offset> -i <incr> -f "<format>" <from>|now
|
26
26
|
```
|
27
27
|
|
28
|
+
### epoch
|
29
|
+
|
30
|
+
Convert epoch and time.
|
31
|
+
|
32
|
+
Usage:
|
33
|
+
|
34
|
+
``` shell
|
35
|
+
# time to epoch
|
36
|
+
epoch 2025-01-01T01:01:01.000Z
|
37
|
+
1735693261
|
38
|
+
|
39
|
+
# epoch to time UTC
|
40
|
+
epoch -u 1735693261
|
41
|
+
2025-01-01T01:01:01.000Z
|
42
|
+
|
43
|
+
# epoch to time (local time zone)
|
44
|
+
epoch 1735693261
|
45
|
+
2025-01-01T02:01:01.000+01:00
|
46
|
+
|
47
|
+
# time to epoch millis
|
48
|
+
epoch -m 2025-01-01T01:01:01.123Z
|
49
|
+
1735693261123
|
50
|
+
```
|
51
|
+
|
28
52
|
### yaml2json
|
29
53
|
|
30
54
|
Convert yaml formated string, file or stdin to json format.
|
data/bin/epoch
ADDED
data/bin/quickpdf
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'gli'
|
4
|
+
require 'quick_and_ruby'
|
5
|
+
require 'quick_and_ruby/pdf'
|
6
|
+
|
7
|
+
class App
|
8
|
+
extend GLI::App
|
9
|
+
|
10
|
+
program_desc 'A quick PDF utility.'
|
11
|
+
|
12
|
+
version QuickAndRuby::VERSION
|
13
|
+
|
14
|
+
subcommand_option_handling :normal
|
15
|
+
arguments :strict
|
16
|
+
|
17
|
+
desc 'Extract links from a PDF document'
|
18
|
+
arg_name 'pdf_file [pdf_file2 ...]'
|
19
|
+
command:'extract-links' do |c|
|
20
|
+
c.desc 'URL schemes to extract (http, https, ftp, etc.). Can be specified multiple times'
|
21
|
+
c.flag [:s, :scheme], multiple: true, default_value: ['http', 'https']
|
22
|
+
|
23
|
+
c.action do |global_options, options, args|
|
24
|
+
raise GLI::BadCommandLine, "Missing required argument <PDF_FILE>" if args.empty?
|
25
|
+
|
26
|
+
schemes = options[:scheme].map(&:downcase)
|
27
|
+
|
28
|
+
error_count = 0
|
29
|
+
args.each do |pdf_filepath|
|
30
|
+
puts QuickAndRuby::Pdf::Document
|
31
|
+
.new(pdf_filepath)
|
32
|
+
.extract_links(schemes: schemes)
|
33
|
+
.compact
|
34
|
+
rescue StandardError => e
|
35
|
+
error_count += 1
|
36
|
+
puts "error: while processing #{pdf_filepath}: #{e}"
|
37
|
+
end
|
38
|
+
raise "error: #{error_count} errors while processing" if error_count.positive?
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
pre do |global,command,options,args|
|
43
|
+
true
|
44
|
+
end
|
45
|
+
|
46
|
+
post do |global,command,options,args|
|
47
|
+
true
|
48
|
+
end
|
49
|
+
|
50
|
+
on_error do |exception|
|
51
|
+
true
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
exit App.run(ARGV)
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'uri'
|
4
|
+
require 'pdf-reader'
|
5
|
+
|
6
|
+
module QuickAndRuby
|
7
|
+
module Pdf
|
8
|
+
class Document
|
9
|
+
DEFAULT_SCHEMES = %w[http https].freeze
|
10
|
+
|
11
|
+
attr_reader :filepath
|
12
|
+
|
13
|
+
def initialize(filepath)
|
14
|
+
@filepath = filepath
|
15
|
+
end
|
16
|
+
|
17
|
+
def extract_links(schemes: DEFAULT_SCHEMES)
|
18
|
+
links = []
|
19
|
+
|
20
|
+
doc_reader.pages.each do |page|
|
21
|
+
text = page.text
|
22
|
+
links += URI.extract(text, schemes)
|
23
|
+
|
24
|
+
annots = page.attributes[:Annots] || []
|
25
|
+
annots.each do |annot_ref|
|
26
|
+
annot = doc_reader.objects.deref(annot_ref)
|
27
|
+
next unless annot.is_a?(Hash) && annot[:A] && annot[:A][:URI]
|
28
|
+
|
29
|
+
target_uri = annot[:A][:URI]
|
30
|
+
|
31
|
+
links += URI.extract(target_uri, schemes)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
links.uniq
|
35
|
+
end
|
36
|
+
|
37
|
+
def doc_reader
|
38
|
+
@doc_reader ||= PDF::Reader.new(filepath)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'optparse'
|
4
|
+
|
5
|
+
# Usage example:
|
6
|
+
#
|
7
|
+
# epoch
|
8
|
+
# => 1740485717
|
9
|
+
# epoch -ms
|
10
|
+
# => 1740485775670
|
11
|
+
# epoch 1740485717
|
12
|
+
# => 2025-02-25T13:17:14.508+01:00
|
13
|
+
# epoch -u 1740485717
|
14
|
+
# => 2025-02-25T12:18:21.954Z
|
15
|
+
# epoch [-d|--diff] 1740485717
|
16
|
+
# => 30sec ago
|
17
|
+
# epoch [-v|--verbose] 1740485717
|
18
|
+
# => 2025-02-25T12:18:21.954Z
|
19
|
+
# => 30sec ago
|
20
|
+
|
21
|
+
module QuickAndRuby
|
22
|
+
module Time
|
23
|
+
class EpochCli
|
24
|
+
attr_reader :argv, :env
|
25
|
+
|
26
|
+
def initialize(argv: ARGV, env: ENV)
|
27
|
+
@argv = argv.clone
|
28
|
+
@env = env.to_h.clone
|
29
|
+
end
|
30
|
+
|
31
|
+
def run
|
32
|
+
options = parse_options
|
33
|
+
puts EpochConverter.new(**options.to_h).convert_all(*argv)
|
34
|
+
end
|
35
|
+
|
36
|
+
def parse_options(options: Options.new)
|
37
|
+
parser = OptionParser.new do |opts|
|
38
|
+
opts.banner = 'Usage: epoch [options]'
|
39
|
+
|
40
|
+
opts.on('-h', '--help', 'Prints this help') do
|
41
|
+
puts parser
|
42
|
+
exit
|
43
|
+
end
|
44
|
+
|
45
|
+
opts.on('-m', '--millis', 'Display epoch in milliseconds') do |_millis|
|
46
|
+
options.millis = true
|
47
|
+
end
|
48
|
+
|
49
|
+
opts.on('-u', '--utc', 'Display time in UTC') do
|
50
|
+
options.utc = true
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
parser.parse!(argv)
|
55
|
+
options
|
56
|
+
end
|
57
|
+
|
58
|
+
class Options
|
59
|
+
DEFAULT_MILLIS = false
|
60
|
+
DEFAULT_UTC = false
|
61
|
+
|
62
|
+
attr_accessor :millis, :utc
|
63
|
+
|
64
|
+
def initialize(millis: DEFAULT_MILLIS, utc: DEFAULT_UTC)
|
65
|
+
@millis = millis
|
66
|
+
@utc = utc
|
67
|
+
end
|
68
|
+
|
69
|
+
def to_h
|
70
|
+
{ millis: millis,
|
71
|
+
utc: utc }
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'time'
|
4
|
+
|
5
|
+
module QuickAndRuby
|
6
|
+
module Time
|
7
|
+
class EpochConverter
|
8
|
+
attr_reader :millis, :utc
|
9
|
+
|
10
|
+
def initialize(millis:, utc:)
|
11
|
+
@millis = millis
|
12
|
+
@utc = utc
|
13
|
+
end
|
14
|
+
|
15
|
+
def convert_all(*values)
|
16
|
+
values.map { |value_str| convert(value_str) }
|
17
|
+
end
|
18
|
+
|
19
|
+
def convert(value_str)
|
20
|
+
if value_str.match(/\D/)
|
21
|
+
convert_time(value_str)
|
22
|
+
else
|
23
|
+
convert_epoch(value_str)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def convert_time(time_str)
|
28
|
+
time = ::Time.parse(time_str)
|
29
|
+
epoch = time.to_f
|
30
|
+
epoch *= 1000 if millis
|
31
|
+
epoch.to_i
|
32
|
+
end
|
33
|
+
|
34
|
+
def convert_epoch(epoch_str)
|
35
|
+
epoch = epoch_str.to_i
|
36
|
+
epoch /= 1000.0 if epoch_str.size > 10
|
37
|
+
time = ::Time.at(epoch)
|
38
|
+
time = time.utc if utc
|
39
|
+
time.iso8601(3)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/quick_and_ruby.gemspec
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
|
|
15
15
|
spec.homepage = 'https://github.com/ttych/quick_and_ruby'
|
16
16
|
spec.license = 'MIT'
|
17
17
|
|
18
|
-
spec.required_ruby_version = '>
|
18
|
+
spec.required_ruby_version = '> 3.1'
|
19
19
|
|
20
20
|
if spec.respond_to?(:metadata)
|
21
21
|
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
@@ -42,13 +42,22 @@ Gem::Specification.new do |spec|
|
|
42
42
|
spec.executables = spec.files.grep(%r{^#{spec.bindir}/}) { |f| File.basename(f) }
|
43
43
|
spec.require_paths = ['lib']
|
44
44
|
|
45
|
-
spec.
|
46
|
-
spec.
|
45
|
+
spec.add_dependency 'gli', '~> 2.22', '>= 2.22.2'
|
46
|
+
# spec.add_dependency 'hexapdf', '~> 1.3'
|
47
|
+
spec.add_dependency 'ostruct', '~> 0.6', '>= 0.6.1'
|
48
|
+
spec.add_dependency 'pdf-reader', '~> 2.14', '>= 2.14.1'
|
49
|
+
spec.add_dependency 'webrick', '~> 1.9', '>= 1.9.1'
|
50
|
+
|
51
|
+
spec.add_development_dependency 'bump', '~> 0.10'
|
52
|
+
spec.add_development_dependency 'bundler', '~> 2.6', '>= 2.6.5'
|
47
53
|
spec.add_development_dependency 'byebug', '~> 11.1', '>= 11.1.3'
|
48
|
-
spec.add_development_dependency 'rake', '~> 13.
|
49
|
-
spec.add_development_dependency 'reek', '~> 6.
|
50
|
-
spec.add_development_dependency 'rspec', '~> 3.
|
51
|
-
spec.add_development_dependency 'rubocop', '~> 1.
|
52
|
-
spec.add_development_dependency 'rubocop-rake', '~> 0.
|
53
|
-
spec.add_development_dependency 'rubocop-rspec', '~>
|
54
|
+
spec.add_development_dependency 'rake', '~> 13.3', '>= 13.3.0'
|
55
|
+
spec.add_development_dependency 'reek', '~> 6.5'
|
56
|
+
spec.add_development_dependency 'rspec', '~> 3.13', '>= 3.13.1'
|
57
|
+
spec.add_development_dependency 'rubocop', '~> 1.76', '>= 1.76.1'
|
58
|
+
spec.add_development_dependency 'rubocop-rake', '~> 0.7', '>= 0.7.1'
|
59
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 3.6'
|
60
|
+
spec.add_development_dependency 'ruby-lsp', '~> 0.24'
|
61
|
+
spec.add_development_dependency 'ruby-lsp-reek', '~> 0.3', '>= 0.3.1'
|
62
|
+
spec.add_development_dependency 'ruby-lsp-rspec', '~> 0.1', '>= 0.1.25'
|
54
63
|
end
|
metadata
CHANGED
@@ -1,49 +1,128 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quick_and_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ttych
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
12
|
+
- !ruby/object:Gem::Dependency
|
13
|
+
name: gli
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
15
|
+
requirements:
|
16
|
+
- - "~>"
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: '2.22'
|
19
|
+
- - ">="
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 2.22.2
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - "~>"
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '2.22'
|
29
|
+
- - ">="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: 2.22.2
|
32
|
+
- !ruby/object:Gem::Dependency
|
33
|
+
name: ostruct
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - "~>"
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0.6'
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 0.6.1
|
42
|
+
type: :runtime
|
43
|
+
prerelease: false
|
44
|
+
version_requirements: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0.6'
|
49
|
+
- - ">="
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: 0.6.1
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: pdf-reader
|
54
|
+
requirement: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - "~>"
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: '2.14'
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.14.1
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.14'
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: 2.14.1
|
72
|
+
- !ruby/object:Gem::Dependency
|
73
|
+
name: webrick
|
74
|
+
requirement: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - "~>"
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '1.9'
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: 1.9.1
|
82
|
+
type: :runtime
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '1.9'
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: 1.9.1
|
13
92
|
- !ruby/object:Gem::Dependency
|
14
93
|
name: bump
|
15
94
|
requirement: !ruby/object:Gem::Requirement
|
16
95
|
requirements:
|
17
96
|
- - "~>"
|
18
97
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.10
|
98
|
+
version: '0.10'
|
20
99
|
type: :development
|
21
100
|
prerelease: false
|
22
101
|
version_requirements: !ruby/object:Gem::Requirement
|
23
102
|
requirements:
|
24
103
|
- - "~>"
|
25
104
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.10
|
105
|
+
version: '0.10'
|
27
106
|
- !ruby/object:Gem::Dependency
|
28
107
|
name: bundler
|
29
108
|
requirement: !ruby/object:Gem::Requirement
|
30
109
|
requirements:
|
31
110
|
- - "~>"
|
32
111
|
- !ruby/object:Gem::Version
|
33
|
-
version: '2.
|
112
|
+
version: '2.6'
|
34
113
|
- - ">="
|
35
114
|
- !ruby/object:Gem::Version
|
36
|
-
version: 2.
|
115
|
+
version: 2.6.5
|
37
116
|
type: :development
|
38
117
|
prerelease: false
|
39
118
|
version_requirements: !ruby/object:Gem::Requirement
|
40
119
|
requirements:
|
41
120
|
- - "~>"
|
42
121
|
- !ruby/object:Gem::Version
|
43
|
-
version: '2.
|
122
|
+
version: '2.6'
|
44
123
|
- - ">="
|
45
124
|
- !ruby/object:Gem::Version
|
46
|
-
version: 2.
|
125
|
+
version: 2.6.5
|
47
126
|
- !ruby/object:Gem::Dependency
|
48
127
|
name: byebug
|
49
128
|
requirement: !ruby/object:Gem::Requirement
|
@@ -70,102 +149,162 @@ dependencies:
|
|
70
149
|
requirements:
|
71
150
|
- - "~>"
|
72
151
|
- !ruby/object:Gem::Version
|
73
|
-
version: '13.
|
152
|
+
version: '13.3'
|
74
153
|
- - ">="
|
75
154
|
- !ruby/object:Gem::Version
|
76
|
-
version: 13.0
|
155
|
+
version: 13.3.0
|
77
156
|
type: :development
|
78
157
|
prerelease: false
|
79
158
|
version_requirements: !ruby/object:Gem::Requirement
|
80
159
|
requirements:
|
81
160
|
- - "~>"
|
82
161
|
- !ruby/object:Gem::Version
|
83
|
-
version: '13.
|
162
|
+
version: '13.3'
|
84
163
|
- - ">="
|
85
164
|
- !ruby/object:Gem::Version
|
86
|
-
version: 13.0
|
165
|
+
version: 13.3.0
|
87
166
|
- !ruby/object:Gem::Dependency
|
88
167
|
name: reek
|
89
168
|
requirement: !ruby/object:Gem::Requirement
|
90
169
|
requirements:
|
91
170
|
- - "~>"
|
92
171
|
- !ruby/object:Gem::Version
|
93
|
-
version: '6.
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 6.0.6
|
172
|
+
version: '6.5'
|
97
173
|
type: :development
|
98
174
|
prerelease: false
|
99
175
|
version_requirements: !ruby/object:Gem::Requirement
|
100
176
|
requirements:
|
101
177
|
- - "~>"
|
102
178
|
- !ruby/object:Gem::Version
|
103
|
-
version: '6.
|
104
|
-
- - ">="
|
105
|
-
- !ruby/object:Gem::Version
|
106
|
-
version: 6.0.6
|
179
|
+
version: '6.5'
|
107
180
|
- !ruby/object:Gem::Dependency
|
108
181
|
name: rspec
|
109
182
|
requirement: !ruby/object:Gem::Requirement
|
110
183
|
requirements:
|
111
184
|
- - "~>"
|
112
185
|
- !ruby/object:Gem::Version
|
113
|
-
version: '3.
|
186
|
+
version: '3.13'
|
187
|
+
- - ">="
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: 3.13.1
|
114
190
|
type: :development
|
115
191
|
prerelease: false
|
116
192
|
version_requirements: !ruby/object:Gem::Requirement
|
117
193
|
requirements:
|
118
194
|
- - "~>"
|
119
195
|
- !ruby/object:Gem::Version
|
120
|
-
version: '3.
|
196
|
+
version: '3.13'
|
197
|
+
- - ">="
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: 3.13.1
|
121
200
|
- !ruby/object:Gem::Dependency
|
122
201
|
name: rubocop
|
123
202
|
requirement: !ruby/object:Gem::Requirement
|
124
203
|
requirements:
|
125
204
|
- - "~>"
|
126
205
|
- !ruby/object:Gem::Version
|
127
|
-
version: '1.
|
206
|
+
version: '1.76'
|
128
207
|
- - ">="
|
129
208
|
- !ruby/object:Gem::Version
|
130
|
-
version: 1.
|
209
|
+
version: 1.76.1
|
131
210
|
type: :development
|
132
211
|
prerelease: false
|
133
212
|
version_requirements: !ruby/object:Gem::Requirement
|
134
213
|
requirements:
|
135
214
|
- - "~>"
|
136
215
|
- !ruby/object:Gem::Version
|
137
|
-
version: '1.
|
216
|
+
version: '1.76'
|
138
217
|
- - ">="
|
139
218
|
- !ruby/object:Gem::Version
|
140
|
-
version: 1.
|
219
|
+
version: 1.76.1
|
141
220
|
- !ruby/object:Gem::Dependency
|
142
221
|
name: rubocop-rake
|
143
222
|
requirement: !ruby/object:Gem::Requirement
|
144
223
|
requirements:
|
145
224
|
- - "~>"
|
146
225
|
- !ruby/object:Gem::Version
|
147
|
-
version: 0.
|
226
|
+
version: '0.7'
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: 0.7.1
|
148
230
|
type: :development
|
149
231
|
prerelease: false
|
150
232
|
version_requirements: !ruby/object:Gem::Requirement
|
151
233
|
requirements:
|
152
234
|
- - "~>"
|
153
235
|
- !ruby/object:Gem::Version
|
154
|
-
version: 0.
|
236
|
+
version: '0.7'
|
237
|
+
- - ">="
|
238
|
+
- !ruby/object:Gem::Version
|
239
|
+
version: 0.7.1
|
155
240
|
- !ruby/object:Gem::Dependency
|
156
241
|
name: rubocop-rspec
|
157
242
|
requirement: !ruby/object:Gem::Requirement
|
158
243
|
requirements:
|
159
244
|
- - "~>"
|
160
245
|
- !ruby/object:Gem::Version
|
161
|
-
version: '
|
246
|
+
version: '3.6'
|
162
247
|
type: :development
|
163
248
|
prerelease: false
|
164
249
|
version_requirements: !ruby/object:Gem::Requirement
|
165
250
|
requirements:
|
166
251
|
- - "~>"
|
167
252
|
- !ruby/object:Gem::Version
|
168
|
-
version: '
|
253
|
+
version: '3.6'
|
254
|
+
- !ruby/object:Gem::Dependency
|
255
|
+
name: ruby-lsp
|
256
|
+
requirement: !ruby/object:Gem::Requirement
|
257
|
+
requirements:
|
258
|
+
- - "~>"
|
259
|
+
- !ruby/object:Gem::Version
|
260
|
+
version: '0.24'
|
261
|
+
type: :development
|
262
|
+
prerelease: false
|
263
|
+
version_requirements: !ruby/object:Gem::Requirement
|
264
|
+
requirements:
|
265
|
+
- - "~>"
|
266
|
+
- !ruby/object:Gem::Version
|
267
|
+
version: '0.24'
|
268
|
+
- !ruby/object:Gem::Dependency
|
269
|
+
name: ruby-lsp-reek
|
270
|
+
requirement: !ruby/object:Gem::Requirement
|
271
|
+
requirements:
|
272
|
+
- - "~>"
|
273
|
+
- !ruby/object:Gem::Version
|
274
|
+
version: '0.3'
|
275
|
+
- - ">="
|
276
|
+
- !ruby/object:Gem::Version
|
277
|
+
version: 0.3.1
|
278
|
+
type: :development
|
279
|
+
prerelease: false
|
280
|
+
version_requirements: !ruby/object:Gem::Requirement
|
281
|
+
requirements:
|
282
|
+
- - "~>"
|
283
|
+
- !ruby/object:Gem::Version
|
284
|
+
version: '0.3'
|
285
|
+
- - ">="
|
286
|
+
- !ruby/object:Gem::Version
|
287
|
+
version: 0.3.1
|
288
|
+
- !ruby/object:Gem::Dependency
|
289
|
+
name: ruby-lsp-rspec
|
290
|
+
requirement: !ruby/object:Gem::Requirement
|
291
|
+
requirements:
|
292
|
+
- - "~>"
|
293
|
+
- !ruby/object:Gem::Version
|
294
|
+
version: '0.1'
|
295
|
+
- - ">="
|
296
|
+
- !ruby/object:Gem::Version
|
297
|
+
version: 0.1.25
|
298
|
+
type: :development
|
299
|
+
prerelease: false
|
300
|
+
version_requirements: !ruby/object:Gem::Requirement
|
301
|
+
requirements:
|
302
|
+
- - "~>"
|
303
|
+
- !ruby/object:Gem::Version
|
304
|
+
version: '0.1'
|
305
|
+
- - ">="
|
306
|
+
- !ruby/object:Gem::Version
|
307
|
+
version: 0.1.25
|
169
308
|
description: Set of small and standalone utilities in Ruby.
|
170
309
|
email:
|
171
310
|
- thomas.tych@gmail.com
|
@@ -173,9 +312,11 @@ executables:
|
|
173
312
|
- cat.rb
|
174
313
|
- datetime
|
175
314
|
- distinguished_name
|
315
|
+
- epoch
|
176
316
|
- jb
|
177
317
|
- json2yaml
|
178
318
|
- proxy
|
319
|
+
- quickpdf
|
179
320
|
- yaml2json
|
180
321
|
- yb
|
181
322
|
extensions: []
|
@@ -194,9 +335,11 @@ files:
|
|
194
335
|
- bin/cat.rb
|
195
336
|
- bin/datetime
|
196
337
|
- bin/distinguished_name
|
338
|
+
- bin/epoch
|
197
339
|
- bin/jb
|
198
340
|
- bin/json2yaml
|
199
341
|
- bin/proxy
|
342
|
+
- bin/quickpdf
|
200
343
|
- bin/yaml2json
|
201
344
|
- bin/yb
|
202
345
|
- lib/quick_and_ruby.rb
|
@@ -210,11 +353,16 @@ files:
|
|
210
353
|
- lib/quick_and_ruby/distinguished_name/attribute.rb
|
211
354
|
- lib/quick_and_ruby/distinguished_name/openssl_format.rb
|
212
355
|
- lib/quick_and_ruby/distinguished_name/rfc_format.rb
|
356
|
+
- lib/quick_and_ruby/pdf.rb
|
357
|
+
- lib/quick_and_ruby/pdf/document.rb
|
213
358
|
- lib/quick_and_ruby/proxy/arg_parser.rb
|
214
359
|
- lib/quick_and_ruby/proxy/env_parser.rb
|
215
360
|
- lib/quick_and_ruby/proxy/proxy.rb
|
216
361
|
- lib/quick_and_ruby/string.rb
|
217
362
|
- lib/quick_and_ruby/string/case.rb
|
363
|
+
- lib/quick_and_ruby/time.rb
|
364
|
+
- lib/quick_and_ruby/time/epoch_cli.rb
|
365
|
+
- lib/quick_and_ruby/time/epoch_converter.rb
|
218
366
|
- lib/quick_and_ruby/version.rb
|
219
367
|
- man/distinguished_name.1.ronn
|
220
368
|
- quick_and_ruby.gemspec
|
@@ -229,7 +377,6 @@ metadata:
|
|
229
377
|
source_code_uri: https://github.com/ttych/quick_and_ruby
|
230
378
|
changelog_uri: https://github.com/ttych/quick_and_ruby/CHANGELOG.md
|
231
379
|
rubygems_mfa_required: 'true'
|
232
|
-
post_install_message:
|
233
380
|
rdoc_options: []
|
234
381
|
require_paths:
|
235
382
|
- lib
|
@@ -237,15 +384,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
237
384
|
requirements:
|
238
385
|
- - ">"
|
239
386
|
- !ruby/object:Gem::Version
|
240
|
-
version: '
|
387
|
+
version: '3.1'
|
241
388
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
242
389
|
requirements:
|
243
390
|
- - ">="
|
244
391
|
- !ruby/object:Gem::Version
|
245
392
|
version: '0'
|
246
393
|
requirements: []
|
247
|
-
rubygems_version: 3.
|
248
|
-
signing_key:
|
394
|
+
rubygems_version: 3.6.8
|
249
395
|
specification_version: 4
|
250
396
|
summary: Quick and Ruby utilities.
|
251
397
|
test_files: []
|