lucadeal 0.5.0 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fa7bf6bd03335ca54d5bf0a1bf2b3e525677ef21e0ea20b009530ba73b310fc9
4
- data.tar.gz: 7791dbb5b32566b52ae2bc4209382ca59f1eb95b3f284990f16bd0427f7302ae
3
+ metadata.gz: 010b355d37f7fdd2fa49fa9000923fbaac7791bbda971760b8c862daa4ab2664
4
+ data.tar.gz: e6a2cc3bbef17ee547ba669b22f1390782e6567b753da98288a760106fb31215
5
5
  SHA512:
6
- metadata.gz: a1b16a74bfdb56bdbda22f1f5003e24f9f5361d361b38c0875a6d8289607328f670a0f10756dc41af7df92b12c1d3b162f15bf9fa68069d175815e13af70bd74
7
- data.tar.gz: fce3bf80a9cf60ac5b904e7c51bd7fa83911cd1b5d59377cfb5cdfcaa49adc63fef2d6fdc2fbb8c8d6f0443cd9434ce0dd9eddd8012694439bc0554c818771f2
6
+ metadata.gz: beb6f9aa0a2c02f4726faab2b7aa9d398c1256dd106a5c5595ce1f48da757c9699577661be6fb2de5bab8b19da9a147716000cae4400c0f004e90375bf371801
7
+ data.tar.gz: ad20fd6cdc1c2f056206398a4266a89b7523be8aabed79c2a80d53f001205d23e3830c55b4baf8e5db186cf86dce04236aea296fd07c511658af90e3ec06ff26
data/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ ## LucaDeal 0.5.2
2
+
3
+ * Fix: Setup project dir for `luca-deal invoice mail`
4
+
5
+ ## LucaDeal 0.5.1
6
+
7
+ * Refine `luca-deal customer list` output: Limit columns to name, address and id.
8
+ * Reworked global constants w/LucaRecord v0.7
9
+ * Removed bundler from test suite avoiding casual native build
10
+ * add `luca-deal version` subcommand
11
+
1
12
  ## LucaDeal 0.5.0
2
13
 
3
14
  * `luca-deal` command now searches valid sub directory.
data/exe/luca-deal CHANGED
@@ -1,19 +1,12 @@
1
1
  #!/usr/bin/ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- unless Dir.exist?('data') || ARGV[0] == 'new'
5
- target = 'customers'
6
- Dir.glob('*').reject { |f| File.symlink?(f) }
7
- .find { |f| File.directory?("#{f}/data/#{target}") }.tap do |d|
8
- abort "No valid data directory, exit..." if d.nil?
9
-
10
- Dir.chdir(d)
11
- end
12
- end
4
+ REQUIRED_DIR='customers'
13
5
 
14
6
  require 'date'
15
7
  require 'optparse'
16
8
  require 'luca_deal'
9
+ require 'luca_cmd'
17
10
 
18
11
  class LucaCmd
19
12
  class Customer < LucaCmd
@@ -67,6 +60,7 @@ class LucaCmd
67
60
  end
68
61
 
69
62
  def self.list(args = nil, params = {})
63
+ params[:col_order] = %w(name address id)
70
64
  render(LucaDeal::Customer.new.list_name, params)
71
65
  end
72
66
  end
@@ -284,7 +278,7 @@ class LucaCmd
284
278
  when 'json'
285
279
  puts JSON.dump(dat)
286
280
  when 'nu'
287
- LucaSupport::View.nushell(dat, :expand)
281
+ LucaSupport::View.nushell(dat, :expand, params[:col_order] || [])
288
282
  when 'explore'
289
283
  LucaSupport::View.nushell(dat, :explore)
290
284
  when 'csv'
@@ -303,7 +297,6 @@ def new_pj(args = nil, params = {})
303
297
  LucaDeal::Setup.create_project args[0]
304
298
  end
305
299
 
306
- LucaRecord::Base.valid_project?
307
300
  cmd = ARGV.shift
308
301
  params = {}
309
302
 
@@ -315,7 +308,9 @@ when /customers?/
315
308
  OptionParser.new do |opt|
316
309
  opt.banner = 'Usage: luca-deal customers create CustomerName'
317
310
  args = opt.parse(ARGV)
318
- LucaCmd::Customer.create(args, params)
311
+ LucaCmd.check_dir(REQUIRED_DIR) do
312
+ LucaCmd::Customer.create(args, params)
313
+ end
319
314
  end
320
315
  when 'list'
321
316
  OptionParser.new do |opt|
@@ -324,7 +319,9 @@ when /customers?/
324
319
  opt.on('--explore', 'explore table in nushell') { |_v| params[:output] = 'explore' }
325
320
  opt.on('-o', '--output VAL', 'output serialized data') { |v| params[:output] = v }
326
321
  args = opt.parse(ARGV)
327
- LucaCmd::Customer.list(args, params)
322
+ LucaCmd.check_dir(REQUIRED_DIR) do
323
+ LucaCmd::Customer.list(args, params)
324
+ end
328
325
  end
329
326
  when 'describe'
330
327
  OptionParser.new do |opt|
@@ -332,10 +329,14 @@ when /customers?/
332
329
  opt.on('--nu', 'show table in nushell') { |_v| params[:output] = 'nu' }
333
330
  opt.on('-o', '--output VAL', 'output serialized data') { |v| params[:output] = v }
334
331
  args = opt.parse(ARGV)
335
- LucaCmd::Customer.describe(args, params)
332
+ LucaCmd.check_dir(REQUIRED_DIR) do
333
+ LucaCmd::Customer.describe(args, params)
334
+ end
336
335
  end
337
336
  when 'delete'
338
- LucaCmd::Customer.delete(ARGV)
337
+ LucaCmd.check_dir(REQUIRED_DIR) do
338
+ LucaCmd::Customer.delete(ARGV)
339
+ end
339
340
  else
340
341
  puts 'Proper subcommand needed.'
341
342
  puts
@@ -356,7 +357,9 @@ when /contracts?/
356
357
  params['category'] = 'sales_fee'
357
358
  end
358
359
  args = opt.parse(ARGV)
359
- LucaCmd::Contract.create(args, params)
360
+ LucaCmd.check_dir(REQUIRED_DIR) do
361
+ LucaCmd::Contract.create(args, params)
362
+ end
360
363
  end
361
364
  when 'describe'
362
365
  OptionParser.new do |opt|
@@ -364,10 +367,14 @@ when /contracts?/
364
367
  opt.on('--nu', 'show table in nushell') { |_v| params[:output] = 'nu' }
365
368
  opt.on('-o', '--output VAL', 'output serialized data') { |v| params[:output] = v }
366
369
  args = opt.parse(ARGV)
367
- LucaCmd::Contract.describe(args, params)
370
+ LucaCmd.check_dir(REQUIRED_DIR) do
371
+ LucaCmd::Contract.describe(args, params)
372
+ end
368
373
  end
369
374
  when 'delete'
370
- LucaCmd::Contract.delete(ARGV)
375
+ LucaCmd.check_dir(REQUIRED_DIR) do
376
+ LucaCmd::Contract.delete(ARGV)
377
+ end
371
378
  else
372
379
  puts 'Proper subcommand needed.'
373
380
  puts
@@ -378,7 +385,9 @@ when /contracts?/
378
385
  exit 1
379
386
  end
380
387
  when 'export'
381
- LucaCmd::Invoice.export(ARGV)
388
+ LucaCmd.check_dir(REQUIRED_DIR) do
389
+ LucaCmd::Invoice.export(ARGV)
390
+ end
382
391
  when /invoices?/, 'i'
383
392
  subcmd = ARGV.shift
384
393
  case subcmd
@@ -389,10 +398,14 @@ when /invoices?/, 'i'
389
398
  opt.on('--monthly', 'generate monthly data') { |_v| params[:mode] = 'monthly' }
390
399
  opt.on('--with-fee', 'generate sales fee data after monthly invoice creation') { |_v| params[:fee] = true }
391
400
  args = opt.parse(ARGV)
392
- LucaCmd::Invoice.create(args, params)
401
+ LucaCmd.check_dir(REQUIRED_DIR) do
402
+ LucaCmd::Invoice.create(args, params)
403
+ end
393
404
  end
394
405
  when 'delete'
395
- LucaCmd::Invoice.delete(ARGV)
406
+ LucaCmd.check_dir(REQUIRED_DIR) do
407
+ LucaCmd::Invoice.delete(ARGV)
408
+ end
396
409
  when 'list'
397
410
  OptionParser.new do |opt|
398
411
  opt.banner = 'Usage: luca-deal invoices list [options] year month [date]'
@@ -402,21 +415,27 @@ when /invoices?/, 'i'
402
415
  opt.on('--mail', 'send payment list by email') { |_v| params[:mail] = true }
403
416
  opt.on('--full', 'add settlement info') { |_v| params[:mode] = 'full' }
404
417
  args = opt.parse(ARGV)
405
- LucaCmd::Invoice.list(args, params)
418
+ LucaCmd.check_dir(REQUIRED_DIR) do
419
+ LucaCmd::Invoice.list(args, params)
420
+ end
406
421
  end
407
422
  when 'mail'
408
423
  OptionParser.new do |opt|
409
424
  opt.banner = 'Usage: luca-deal invoices mail [options] year month [date]'
410
425
  opt.on('--preview', 'send to preview user') { |_v| params['mode'] = 'preview' }
411
426
  args = opt.parse(ARGV)
412
- LucaCmd::Invoice.mail(args, params)
427
+ LucaCmd.check_dir(REQUIRED_DIR) do
428
+ LucaCmd::Invoice.mail(args, params)
429
+ end
413
430
  end
414
431
  when 'print'
415
432
  OptionParser.new do |opt|
416
433
  opt.banner = 'Usage: luca-deal invoices print [options] <invoice_id | year month>'
417
434
  opt.on('--pdf', 'output PDF invoices. wkhtmlpdf is required') { |_v| params[:output] = :pdf }
418
435
  args = opt.parse(ARGV)
419
- LucaCmd::Invoice.print(args, params)
436
+ LucaCmd.check_dir(REQUIRED_DIR) do
437
+ LucaCmd::Invoice.print(args, params)
438
+ end
420
439
  end
421
440
  when 'settle'
422
441
  params[:term] = 1
@@ -424,7 +443,9 @@ when /invoices?/, 'i'
424
443
  opt.banner = 'Usage: luca-deal invoices settle [filepath]'
425
444
  opt.on('--search-term VAL', 'search invoice N months before payment date. default: 1') { |v| params[:term] = v.to_i }
426
445
  args = opt.parse(ARGV)
427
- LucaCmd::Invoice.settle(args, params)
446
+ LucaCmd.check_dir(REQUIRED_DIR) do
447
+ LucaCmd::Invoice.settle(args, params)
448
+ end
428
449
  end
429
450
  else
430
451
  puts 'Proper subcommand needed.'
@@ -452,7 +473,9 @@ when /reports?/, 'r'
452
473
  opt.on('--detail', 'show detail info') { |_v| params[:detail] = true }
453
474
  opt.on('--force-due', 'respect due date over actual payment') { |_v| params[:due] = true }
454
475
  args = opt.parse(ARGV)
455
- LucaCmd::Invoice.report(args, params)
476
+ LucaCmd.check_dir(REQUIRED_DIR) do
477
+ LucaCmd::Invoice.report(args, params)
478
+ end
456
479
  end
457
480
  else
458
481
  puts 'Proper subcommand needed.'
@@ -476,12 +499,18 @@ when /fee/
476
499
  opt.banner = 'Usage: luca-deal fee create [options] year month [date]'
477
500
  opt.on('--monthly', 'generate monthly data') { |_v| params[:mode] = 'monthly' }
478
501
  args = opt.parse(ARGV)
479
- LucaCmd::Fee.create(args, params)
502
+ LucaCmd.check_dir(REQUIRED_DIR) do
503
+ LucaCmd::Fee.create(args, params)
504
+ end
480
505
  end
481
506
  when 'delete'
482
- LucaCmd::Fee.delete(ARGV)
507
+ LucaCmd.check_dir(REQUIRED_DIR) do
508
+ LucaCmd::Fee.delete(ARGV)
509
+ end
483
510
  when 'export'
484
- LucaCmd::Fee.export(ARGV)
511
+ LucaCmd.check_dir(REQUIRED_DIR) do
512
+ LucaCmd::Fee.export(ARGV)
513
+ end
485
514
  when 'list'
486
515
  OptionParser.new do |opt|
487
516
  opt.banner = 'Usage: luca-deal fee list [options] year month [date]'
@@ -490,14 +519,18 @@ when /fee/
490
519
  opt.on('-o', '--output VAL', 'output serialized data') { |v| params[:output] = v }
491
520
  opt.on('--html', 'output html invoices') { |_v| params[:html] = 'monthly' }
492
521
  args = opt.parse(ARGV)
493
- LucaCmd::Fee.list(args, params)
522
+ LucaCmd.check_dir(REQUIRED_DIR) do
523
+ LucaCmd::Fee.list(args, params)
524
+ end
494
525
  end
495
526
  when 'mail'
496
527
  OptionParser.new do |opt|
497
528
  opt.banner = 'Usage: luca-deal fee mail [options] year month [date]'
498
529
  opt.on('--preview', 'send to preview user') { |_v| params['mode'] = 'preview' }
499
530
  args = opt.parse(ARGV)
500
- LucaCmd::Fee.mail(args, params)
531
+ LucaCmd.check_dir(REQUIRED_DIR) do
532
+ LucaCmd::Fee.mail(args, params)
533
+ end
501
534
  end
502
535
  else
503
536
  puts 'Proper subcommand needed.'
@@ -509,6 +542,9 @@ when /fee/
509
542
  puts ' mail: send mail with report'
510
543
  exit 1
511
544
  end
545
+ when 'version'
546
+ puts "luca-deal: version #{LucaDeal::VERSION}"
547
+ exit 0
512
548
  else
513
549
  puts 'Proper subcommand needed.'
514
550
  puts
data/lib/luca_deal/fee.rb CHANGED
@@ -5,7 +5,6 @@ require 'json'
5
5
  require 'yaml'
6
6
  require 'pathname'
7
7
  require 'bigdecimal'
8
- require 'luca_support/config'
9
8
  require 'luca_support/mail'
10
9
  require 'luca_deal'
11
10
 
@@ -67,7 +66,7 @@ module LucaDeal
67
66
  end
68
67
 
69
68
  def deliver_mail(attachment_type = nil, mode: nil, skip_no_item: true)
70
- attachment_type = CONFIG.dig('fee', 'attachment') || :html
69
+ attachment_type = CONST.config.dig('fee', 'attachment') || :html
71
70
  fees = self.class.asof(@date.year, @date.month)
72
71
  raise "No report for #{@date.year}/#{@date.month}" if fees.count.zero?
73
72
 
@@ -76,7 +75,7 @@ module LucaDeal
76
75
  next if skip_no_item && dat['items'].empty?
77
76
 
78
77
  mail = compose_mail(dat, mode: mode, attachment: attachment_type.to_sym)
79
- LucaSupport::Mail.new(mail, PJDIR).deliver
78
+ LucaSupport::Mail.new(mail, CONST.pjdir).deliver
80
79
  self.class.add_status!(path, 'mail_delivered') if mode.nil?
81
80
  end
82
81
  end
@@ -101,9 +100,9 @@ module LucaDeal
101
100
 
102
101
  mail = Mail.new
103
102
  mail.to = dat.dig('customer', 'to') if mode.nil?
104
- mail.subject = CONFIG.dig('fee', 'mail_subject') || 'Your Report is available'
103
+ mail.subject = CONST.config.dig('fee', 'mail_subject') || 'Your Report is available'
105
104
  if mode == :preview
106
- mail.cc = CONFIG.dig('mail', 'preview') || CONFIG.dig('mail', 'from')
105
+ mail.cc = CONST.config.dig('mail', 'preview') || CONST.config.dig('mail', 'from')
107
106
  mail.subject = '[preview] ' + mail.subject
108
107
  end
109
108
  mail.text_part = Mail::Part.new(body: render_erb(search_template('fee-report-mail.txt.erb')), charset: 'UTF-8')
@@ -224,10 +223,10 @@ module LucaDeal
224
223
  __dir__
225
224
  end
226
225
 
227
- # TODO: load labels from CONFIG before country defaults
226
+ # TODO: load labels from CONST.config before country defaults
228
227
  #
229
228
  def export_labels
230
- case CONFIG['country']
229
+ case CONST.confg['country']
231
230
  when 'jp'
232
231
  {
233
232
  debit: { fee: '支払手数料', tax: '支払手数料', deduction: '未払費用' },
@@ -245,9 +244,9 @@ module LucaDeal
245
244
  #
246
245
  def set_company
247
246
  {}.tap do |h|
248
- h['name'] = CONFIG.dig('company', 'name')
249
- h['address'] = CONFIG.dig('company', 'address')
250
- h['address2'] = CONFIG.dig('company', 'address2')
247
+ h['name'] = CONST.config.dig('company', 'name')
248
+ h['address'] = CONST.config.dig('company', 'address')
249
+ h['address2'] = CONST.config.dig('company', 'address2')
251
250
  end
252
251
  end
253
252
 
@@ -281,9 +280,9 @@ module LucaDeal
281
280
  # load Tax Rate from config.
282
281
  #
283
282
  def load_tax_rate(name)
284
- return 0 if CONFIG.dig('tax_rate', name).nil?
283
+ return 0 if CONST.config.dig('tax_rate', name).nil?
285
284
 
286
- BigDecimal(take_current(CONFIG['tax_rate'], name).to_s)
285
+ BigDecimal(take_current(CONST.config['tax_rate'], name).to_s)
287
286
  end
288
287
 
289
288
  # Fees are unique contract_id in each month
@@ -6,7 +6,6 @@ require 'yaml'
6
6
  require 'pathname'
7
7
  require 'bigdecimal'
8
8
  require 'luca_support/code'
9
- require 'luca_support/config'
10
9
  require 'luca_support/mail'
11
10
  require 'luca_deal/contract'
12
11
  require 'luca_record'
@@ -69,9 +68,9 @@ module LucaDeal
69
68
 
70
69
  mail = Mail.new
71
70
  mail.to = dat.dig('customer', 'to') if mode.nil?
72
- mail.subject = CONFIG.dig('invoice', 'mail_subject') || 'Your Invoice is available'
71
+ mail.subject = LucaRecord::CONST.config.dig('invoice', 'mail_subject') || 'Your Invoice is available'
73
72
  if mode == :preview
74
- mail.cc = CONFIG.dig('mail', 'preview') || CONFIG.dig('mail', 'from')
73
+ mail.cc = LucaRecord::CONST.config.dig('mail', 'preview') || LucaRecord::CONST.config.dig('mail', 'from')
75
74
  mail.subject = '[preview] ' + mail.subject
76
75
  end
77
76
  mail.text_part = Mail::Part.new(body: render_erb(search_template('invoice-mail.txt.erb')), charset: 'UTF-8')
@@ -284,7 +283,7 @@ module LucaDeal
284
283
  end
285
284
  @invoices = res.values
286
285
  end
287
- @company = CONFIG.dig('company', 'name')
286
+ @company = LucaRecord::CONST.config.dig('company', 'name')
288
287
  @legend = if mode == 'full'
289
288
  '[S] Settled, [P] Partially settled, [O] Overpaid'
290
289
  else
@@ -297,10 +296,10 @@ module LucaDeal
297
296
  end
298
297
 
299
298
  mail = Mail.new
300
- mail.to = CONFIG.dig('mail', 'preview') || CONFIG.dig('mail', 'from')
299
+ mail.to = LucaRecord::CONST.config.dig('mail', 'preview') || LucaRecord::CONST.config.dig('mail', 'from')
301
300
  mail.subject = 'Check monthly payment list'
302
301
  mail.html_part = Mail::Part.new(body: render_erb(search_template('monthly-payment-list.html.erb')), content_type: 'text/html; charset=UTF-8')
303
- LucaSupport::Mail.new(mail, PJDIR).deliver
302
+ LucaSupport::Mail.new(mail, LucaRecord::CONST.pjdir).deliver
304
303
  end
305
304
 
306
305
  def export_json
@@ -421,9 +420,9 @@ module LucaDeal
421
420
  end
422
421
 
423
422
  def deliver_one(invoice, path, mode: nil, attachment_type: nil)
424
- attachment_type ||= CONFIG.dig('invoice', 'attachment') || :html
423
+ attachment_type ||= LucaRecord::CONST.config.dig('invoice', 'attachment') || :html
425
424
  mail = compose_mail(invoice, mode: mode, attachment: attachment_type.to_sym)
426
- LucaSupport::Mail.new(mail, PJDIR).deliver
425
+ LucaSupport::Mail.new(mail, LucaRecord::CONST.pjdir).deliver
427
426
  self.class.add_status!(path, 'mail_delivered') if mode.nil?
428
427
  end
429
428
 
@@ -431,10 +430,10 @@ module LucaDeal
431
430
  __dir__
432
431
  end
433
432
 
434
- # TODO: load labels from CONFIG before country defaults
433
+ # TODO: load labels from LucaRecord::CONST.config before country defaults
435
434
  #
436
435
  def export_labels
437
- case CONFIG['country']
436
+ case LucaRecord::CONST.config['country']
438
437
  when 'jp'
439
438
  {
440
439
  debit: { items: '売掛金', tax: '売掛金' },
@@ -452,9 +451,9 @@ module LucaDeal
452
451
  #
453
452
  def set_company
454
453
  {}.tap do |h|
455
- h['name'] = CONFIG.dig('company', 'name')
456
- h['address'] = CONFIG.dig('company', 'address')
457
- h['address2'] = CONFIG.dig('company', 'address2')
454
+ h['name'] = LucaRecord::CONST.config.dig('company', 'name')
455
+ h['address'] = LucaRecord::CONST.config.dig('company', 'address')
456
+ h['address2'] = LucaRecord::CONST.config.dig('company', 'address2')
458
457
  end
459
458
  end
460
459
 
@@ -477,9 +476,9 @@ module LucaDeal
477
476
  # load Tax Rate from config.
478
477
  #
479
478
  def load_tax_rate(name)
480
- return 0 if CONFIG.dig('tax_rate', name).nil?
479
+ return 0 if LucaRecord::CONST.config.dig('tax_rate', name).nil?
481
480
 
482
- BigDecimal(take_current(CONFIG['tax_rate'], name).to_s)
481
+ BigDecimal(take_current(LucaRecord::CONST.config['tax_rate'], name).to_s)
483
482
  end
484
483
 
485
484
  def attachment_name(dat, type)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LucaDeal
4
- VERSION = '0.5.0'
4
+ VERSION = '0.5.2'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lucadeal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chuma Takahiro
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-20 00:00:00.000000000 Z
11
+ date: 2024-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lucarecord
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.6.0
19
+ version: 0.7.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.6.0
26
+ version: 0.7.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -103,7 +103,7 @@ metadata:
103
103
  homepage_uri: https://github.com/chumaltd/luca/tree/master/lucadeal
104
104
  source_code_uri: https://github.com/chumaltd/luca/tree/master/lucadeal
105
105
  changelog_uri: https://github.com/chumaltd/luca/tree/master/lucadeal/CHANGELOG.md
106
- post_install_message:
106
+ post_install_message:
107
107
  rdoc_options: []
108
108
  require_paths:
109
109
  - lib
@@ -119,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
119
  version: '0'
120
120
  requirements: []
121
121
  rubygems_version: 3.4.10
122
- signing_key:
122
+ signing_key:
123
123
  specification_version: 4
124
124
  summary: Deal with contracts
125
125
  test_files: []