lucarecord 0.2.28 → 0.5.0

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: c52d38b86c9670e3358ef9e94553902a3a511f626689566a4dc0b1d5e480c041
4
- data.tar.gz: 064b974bbeeaa1dbb8e644532c5e2bee67cdd5d697e1cdde99087204698aa665
3
+ metadata.gz: 7741bc3462c9b4bb661789bfb04d7b0ff72de0ac799ffd94f392024601f01252
4
+ data.tar.gz: '0396d2996311932d601f30f971bee36f85e1b361339371c2075c1a2accac80be'
5
5
  SHA512:
6
- metadata.gz: 20ece81a5471e985bdc6b46aa341b3d859ad050b28a5976b0b20f15a44971ac0111b16a58db1053c91da73d91f8c37dc26e6bd825b4604a3c17ced65239a19b2
7
- data.tar.gz: fc4af325295583e739fb972f3d96470f0a84d74ea4a4b330a16178d88de0c4700f64b28f36166539904c3b589c7540ec4486e36e74d6fd0d1e908da22e4cc685
6
+ metadata.gz: bfee9c41fca0234febda5614cca159b3b6b3d7c02215f216604dd0fc1a65e54ba819656ecf340a063b64115c86dbd83c424da2ba58bd3efb154b567801552dfe
7
+ data.tar.gz: 7c5b56ee7275218ba98c95cd75203f252243b5cfb304e0d6b6302e99d7cda7bf791b8400684ecdc762d7a3a8215d6dde0c9887215dedaa798a5397feac2e77a2
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## LucaRecord 0.5.0
2
+
3
+ * Exclude mail gem from dependencies. Just install it separately if you use mail functionality.
4
+
5
+ ## LucaRecord 0.4.0
6
+
7
+ * Replace YAML.load/load_file to YAML.safe_load for compatibility with Ruby 3.1
8
+
9
+ ## LucaRecord 0.3.0
10
+
11
+ * implement LucaRecord::IO.latest_month
12
+
1
13
  ## LucaRecord 0.2.28
2
14
 
3
15
  * implement LucaSupport::Range, handle #by_month enumeration between several months.
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'csv'
4
+ require 'date'
4
5
  require 'fileutils'
5
6
  require 'yaml'
6
7
  require 'pathname'
@@ -71,7 +72,7 @@ module LucaRecord
71
72
  when '.tsv', '.csv'
72
73
  load_tsv_dict(dict_path(file))
73
74
  when '.yaml', '.yml'
74
- YAML.load_file(dict_path(file), **{})
75
+ YAML.safe_load(File.read(dict_path(file)), permitted_classes: [Date])
75
76
  else
76
77
  raise 'cannot load this filetype'
77
78
  end
@@ -90,6 +90,12 @@ module LucaRecord # :nodoc:
90
90
  end
91
91
  end
92
92
 
93
+ # [year, month] pair of the latest record
94
+ #
95
+ def latest_month(code = nil, basedir = @dirname)
96
+ LucaSupport::Code.decode_term(Dir.entries(abs_path(basedir)).max)
97
+ end
98
+
93
99
  # ----------------------------------------------------------------
94
100
  # :section: Write Methods
95
101
  # <tt>basedir</tt> is set by class instance variable <tt>@dirname</tt>
@@ -144,7 +150,7 @@ module LucaRecord # :nodoc:
144
150
 
145
151
  def add_status!(id, status, basedir = @dirname)
146
152
  path = abs_path(basedir) / id2path(id)
147
- origin = YAML.load_file(path, **{})
153
+ origin = YAML.safe_load(File.read(path), permitted_classes: [Date])
148
154
  newline = { status => DateTime.now.to_s }
149
155
  origin['status'] = [] if origin['status'].nil?
150
156
  origin['status'] << newline
@@ -356,7 +362,7 @@ module LucaRecord # :nodoc:
356
362
  # TODO: implement JSON parse
357
363
  end
358
364
  else
359
- LucaSupport::Code.decimalize(YAML.load(io.read)).tap { |obj| validate_keys(obj) }
365
+ LucaSupport::Code.decimalize(YAML.safe_load(io.read, permitted_classes: [Date])).tap { |obj| validate_keys(obj) }
360
366
  end
361
367
  end
362
368
 
@@ -428,7 +434,7 @@ module LucaRecord # :nodoc:
428
434
  def load_config(path = nil)
429
435
  path = path.to_s
430
436
  if File.exist?(path)
431
- YAML.load_file(path, **{})
437
+ YAML.safe_load(File.read(path), permitted_classes: [Date])
432
438
  else
433
439
  {}
434
440
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LucaRecord
4
- VERSION = '0.2.28'
4
+ VERSION = '0.5.0'
5
5
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'date'
3
4
  require 'pathname'
4
5
  require 'yaml'
5
6
 
@@ -11,7 +12,7 @@ module LucaSupport
11
12
  {
12
13
  'decimal_separator' => '.',
13
14
  'thousands_separator' => ','
14
- }.merge(YAML.load_file(Pathname(PJDIR) / 'config.yml'))
15
+ }.merge(YAML.safe_load(File.read(Pathname(PJDIR) / 'config.yml'), permitted_classes: [Date]))
15
16
  rescue Errno::ENOENT
16
17
  {
17
18
  'decimal_separator' => '.',
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lucarecord
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.28
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chuma Takahiro
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-17 00:00:00.000000000 Z
11
+ date: 2022-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: mail
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: bundler
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -68,7 +54,7 @@ dependencies:
68
54
  version: 12.3.3
69
55
  description: 'ERP File operation framework
70
56
 
71
- '
57
+ '
72
58
  email:
73
59
  - co.chuma@gmail.com
74
60
  executables: []
@@ -110,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
96
  - !ruby/object:Gem::Version
111
97
  version: '0'
112
98
  requirements: []
113
- rubygems_version: 3.2.3
99
+ rubygems_version: 3.3.5
114
100
  signing_key:
115
101
  specification_version: 4
116
102
  summary: ERP File operation framework