lucabook 0.2.7 → 0.2.8

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: dbbe396e906d2a98f5a87f2f08a338be5c31956039b9e6378897c052dd752ae6
4
- data.tar.gz: cce0fca70ca474902567ecd83a67bf0a8be18904ea0ade9560063167ac2cc1f7
3
+ metadata.gz: 8a024fa5882d001a6fce7d60863cf0d5d1fefbb4ae92dc0a774a5ce79eeb5749
4
+ data.tar.gz: 7ce4e31ef3c99a02790a462a5db798fd65c9248ef1b2e467ad6a6920f0fa8cee
5
5
  SHA512:
6
- metadata.gz: 3aadaeb6cd7de826420830a8af50575cef9e5b89b6168e506fc6ee59cfd34f9462e6e0fedee1a470eb1eb3a778f3c4d37356be60947e592bb09cf86b0f20a7a4
7
- data.tar.gz: 10575e9029feeb6ba181fe95bb121a34a53945116c4d731859fe8dc5c788fd7428b5cc69688d1bbdfd696251be2422e934bf17cd47c6d29f10c62363269d174e
6
+ metadata.gz: 911cd82032b9d138e356d5a1d1fd7ca95c396ae953426071fd7334ec33cae25882746a5f4b353396211b24de3c79c16a2b8767f172e6368dc1dc0d5195b8a278
7
+ data.tar.gz: eda9e10010600b88708b08d5b099d18f870b73dea3d59d6ea7f8ac216588d4c4335846a4c084c90a470dad90facfa0aa076cfa625ddc6615c65302d834162006
@@ -1,7 +1,12 @@
1
1
  #!/usr/bin/ruby
2
2
 
3
- require "optparse"
4
- require "luca_book/console"
3
+ require 'optparse'
4
+ require 'luca_book'
5
+ require 'luca_book/console'
6
+
7
+ def import(args, params)
8
+ LucaBook::Import.new(args[0]).import_csv
9
+ end
5
10
 
6
11
  def list(args, params)
7
12
  if params["c"] or params["code"]
@@ -24,10 +29,19 @@ def report(args, params)
24
29
  end
25
30
  end
26
31
 
32
+ LucaRecord::Base.valid_project?
27
33
  cmd = ARGV.shift
28
34
 
29
35
  case cmd
30
- when "list"
36
+ when 'import'
37
+ params = {}
38
+ OptionParser.new do |opt|
39
+ opt.banner = 'Usage: luca import filepath'
40
+ # TODO: need to handle import config
41
+ args = opt.parse!(ARGV)
42
+ import(args, params)
43
+ end
44
+ when 'list'
31
45
  params = {}
32
46
  OptionParser.new do |opt|
33
47
  opt.banner = 'Usage: luca list [year month]'
@@ -36,7 +50,7 @@ when "list"
36
50
  args = opt.parse!(ARGV)
37
51
  list(args, params)
38
52
  end
39
- when "report"
53
+ when 'report'
40
54
  params = {}
41
55
  OptionParser.new do |opt|
42
56
  opt.banner = 'Usage: luca report'
@@ -45,8 +59,9 @@ when "report"
45
59
  args = opt.parse!(ARGV)
46
60
  report(args, params)
47
61
  end
48
- when "--help"
62
+ when '--help'
49
63
  puts 'Usage: luca subcommand'
64
+ puts ' import: import records'
50
65
  puts ' list: list records'
51
66
  puts ' report: show reports'
52
67
  else
@@ -1,8 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'luca_record'
3
4
  require 'luca_book/version'
4
5
 
5
6
  module LucaBook
7
+ autoload :Import, 'luca_book/import'
6
8
  autoload :Journal, 'luca_book/journal'
7
9
  autoload :State, 'luca_book/state'
8
10
  end
@@ -35,6 +35,13 @@ module LucaBook
35
35
  end
36
36
  end
37
37
 
38
+ # define new transaction ID & write data at once
39
+ def self.create_record!(date_obj, codes = nil)
40
+ gen_record_file!(@dirname, date_obj, codes) do |f|
41
+ f.write CSV.generate('', col_sep: "\t", headers: false) { |c| yield(c) }
42
+ end
43
+ end
44
+
38
45
  #
39
46
  # collect values on specified key
40
47
  #
@@ -218,6 +218,7 @@ module LucaBook
218
218
  end
219
219
  end
220
220
 
221
+ # TODO: replace load_tsv -> generic load_tsv_dict
221
222
  def load_start
222
223
  file = LucaSupport::Config::Pjdir + 'start.tsv'
223
224
  {}.tap do |dic|
@@ -227,6 +228,13 @@ module LucaBook
227
228
  end
228
229
  end
229
230
 
231
+ def load_tsv(path)
232
+ return enum_for(:load_tsv, path) unless block_given?
233
+
234
+ data = CSV.read(path, headers: true, col_sep: "\t", encoding: 'UTF-8')
235
+ data.each { |row| yield row }
236
+ end
237
+
230
238
  def self.calc_diff(num, code)
231
239
  amount = /\./.match(num.to_s) ? BigDecimal(num) : num.to_i
232
240
  amount * pn_debit(code.to_s)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LucaBook
4
- VERSION = '0.2.7'
4
+ VERSION = '0.2.8'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lucabook
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chuma Takahiro
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-05 00:00:00.000000000 Z
11
+ date: 2020-10-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lucarecord
@@ -73,7 +73,8 @@ files:
73
73
  - lib/luca_book/state.rb
74
74
  - lib/luca_book/version.rb
75
75
  homepage: https://github.com/chumaltd/luca/tree/master/lucabook
76
- licenses: []
76
+ licenses:
77
+ - GPL
77
78
  metadata:
78
79
  homepage_uri: https://github.com/chumaltd/luca/tree/master/lucabook
79
80
  source_code_uri: https://github.com/chumaltd/luca/tree/master/lucabook
@@ -85,7 +86,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
85
86
  requirements:
86
87
  - - ">="
87
88
  - !ruby/object:Gem::Version
88
- version: '0'
89
+ version: 2.6.0
89
90
  required_rubygems_version: !ruby/object:Gem::Requirement
90
91
  requirements:
91
92
  - - ">="