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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c685bd6937aa82ca104aa4d885bb6cb150e465d61dafe2fc4c5bcd18f2a19cc5
4
- data.tar.gz: c6e90670c6447c6261fb3c25be94d7617c0c4a4042da22cd302f5c9a9c906481
3
+ metadata.gz: 7ca92f547a72562016dbe6ae7c6565066c2b4677133db05202de86d5471c228b
4
+ data.tar.gz: 9f60ad5846b8102a14b5a9de65b9a8e5db4bc71aaba14280196ec3739d83cb41
5
5
  SHA512:
6
- metadata.gz: '03189ba3378295c3358c4449d30d6c2c6075f1c292f83b6f5db7f4cedcac775e3bc6cfd0d639cb50d54fcbe56f77aa70df2eaad3fe17263286bb968f34097933'
7
- data.tar.gz: 00b294e7bc307dbb19947dfc48dd49cdd0b803fc5c69258ddcf6d5596b2df9923fb2be3e86921b3784ccef348d78f2d5865fe13c3a3cba15c5927e42b7f8278d
6
+ metadata.gz: 2d093d56fb8ccb86f8f6a9b37e2caf034a89742d8aae6cadaa7fc200c24f1ace18cd8fbee4e536f94e39364bb551335be14e6818892b671990a3024f49968680
7
+ data.tar.gz: 60884d29f116d6adf7f41d59795d4a33ff6153fc089b4365ae57d6f1f4f3bbcb87f14d0aef95a70eb6d6b95121bb06e978aaadcace76e20e76a906cb3bd2a48d
data/.rubocop.yml CHANGED
@@ -1,10 +1,12 @@
1
- require:
1
+ ---
2
+
3
+ plugins:
2
4
  - rubocop-rake
3
5
  - rubocop-rspec
4
6
 
5
7
  AllCops:
6
8
  NewCops: enable
7
- TargetRubyVersion: 2.7
9
+ TargetRubyVersion: 3.1
8
10
 
9
11
  Gemspec/DevelopmentDependencies:
10
12
  Enabled: false
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in quick_and_ruby.gemspec
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
- ## bins
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
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'quick_and_ruby/time'
5
+
6
+ QuickAndRuby::Time::EpochCli.new.run
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,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'pdf/document'
4
+
5
+ module QuickAndRuby
6
+ module Pdf
7
+ end
8
+ 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
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'version'
4
+ require_relative 'time/epoch_converter'
5
+ require_relative 'time/epoch_cli'
6
+
7
+ module QuickAndRuby
8
+ module Time
9
+ end
10
+ end
@@ -1,3 +1,3 @@
1
1
  module QuickAndRuby
2
- VERSION = '0.5.1'.freeze
2
+ VERSION = '0.7.0'.freeze
3
3
  end
@@ -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 = '> 2.7'
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.add_development_dependency 'bump', '~> 0.10.0'
46
- spec.add_development_dependency 'bundler', '~> 2.2', '>= 2.2.31'
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.0', '>= 13.0.6'
49
- spec.add_development_dependency 'reek', '~> 6.0', '>= 6.0.6'
50
- spec.add_development_dependency 'rspec', '~> 3.10'
51
- spec.add_development_dependency 'rubocop', '~> 1.22', '>= 1.22.3'
52
- spec.add_development_dependency 'rubocop-rake', '~> 0.6.0'
53
- spec.add_development_dependency 'rubocop-rspec', '~> 2.6'
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.5.1
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: 2024-12-15 00:00:00.000000000 Z
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.0
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.0
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.2'
112
+ version: '2.6'
34
113
  - - ">="
35
114
  - !ruby/object:Gem::Version
36
- version: 2.2.31
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.2'
122
+ version: '2.6'
44
123
  - - ">="
45
124
  - !ruby/object:Gem::Version
46
- version: 2.2.31
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.0'
152
+ version: '13.3'
74
153
  - - ">="
75
154
  - !ruby/object:Gem::Version
76
- version: 13.0.6
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.0'
162
+ version: '13.3'
84
163
  - - ">="
85
164
  - !ruby/object:Gem::Version
86
- version: 13.0.6
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.0'
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.0'
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.10'
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.10'
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.22'
206
+ version: '1.76'
128
207
  - - ">="
129
208
  - !ruby/object:Gem::Version
130
- version: 1.22.3
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.22'
216
+ version: '1.76'
138
217
  - - ">="
139
218
  - !ruby/object:Gem::Version
140
- version: 1.22.3
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.6.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.6.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: '2.6'
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: '2.6'
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: '2.7'
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.1.6
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: []