Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
tallty_import_export
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
open-source
tallty_import_export
Commits
7d2f8062
Commit
7d2f8062
authored
Nov 09, 2023
by
liyijie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: update try_method & try_chain logic
parent
482a9691
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
34 deletions
+15
-34
export.rb
lib/tallty_import_export/export.rb
+15
-34
No files found.
lib/tallty_import_export/export.rb
View file @
7d2f8062
...
...
@@ -195,7 +195,7 @@ module TalltyImportExport
records
end
def
get_full_key
header
def
get_full_key
(
header
)
[
header
.
with_indifferent_access
[
:json
],
header
.
with_indifferent_access
[
:key
]].
compact
.
join
(
'.'
)
end
...
...
@@ -238,42 +238,23 @@ module TalltyImportExport
''
end
def
try_chain
(
record
,
arr
)
arr
.
reduce
(
record
)
do
|
r
,
m
|
if
r
.
is_a?
(
Array
)
r
.
try
(
m
)
||
r
.
try
(
:[]
,
m
.
to_i
)
elsif
r
.
is_a?
(
Hash
)
r
.
try
(
:[]
,
m
)
||
r
.
try
(
:[]
,
m
.
to_sym
)
else
data
=
begin
r
.
try
(
m
)
rescue
StandardError
nil
end
if
data
.
nil?
data
=
begin
r
.
try
(
:[]
,
m
)
rescue
StandardError
nil
end
end
if
data
.
nil?
data
=
begin
r
.
try
(
:[]
,
m
.
to_sym
)
rescue
StandardError
nil
end
end
data
end
def
try_chain
(
payload
,
arr
)
arr
.
reduce
(
payload
)
do
|
r
,
m
|
if
m
=~
/^\d+$/
&&
r
.
is_a?
(
Array
)
# If m is an integer string and r is an array
r
[
m
.
to_i
]
else
r
.
try
(
m
)
||
r
.
try
(
:[]
,
m
)
end
rescue
StandardError
nil
end
end
def
try_method
(
recor
d
,
method
,
prefix:
nil
)
prefix_arr
=
prefix
.
to_s
.
split
(
/\./
)
arr
=
method
.
to_s
.
split
(
/\./
)
try_chain
record
,
prefix_arr
+
arr
end
def
try_method
(
payloa
d
,
method
,
prefix:
nil
)
prefix_arr
=
prefix
.
to_s
.
split
(
/\./
)
arr
=
method
.
split
(
'.'
).
flat_map
{
|
m
|
m
.
include?
(
'['
)
?
m
.
split
(
/\[\s*|\s*\]/
).
reject
(
&
:
empty?
)
:
m
}
try_chain
record
,
prefix_arr
+
arr
end
# 根据数据类型 attr_type 进行数据的格式化
def
handle_format
(
data
,
header
,
**
opts
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment