Skip to content

Commit 94cbc16

Browse files
committed
Refactor code to simplify case statement
1 parent b7ecd55 commit 94cbc16

2 files changed

Lines changed: 10 additions & 21 deletions

File tree

lib/hdf5/file.rb

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,9 @@ def list_entries
2626
end
2727

2828
case FFI::MiV
29-
when 10
30-
status = HDF5::FFI.H5Literate(@file_id, :H5_INDEX_NAME, :H5_ITER_NATIVE, nil, callback, nil)
31-
when 14
32-
status = HDF5::FFI.H5Literate2(@file_id, :H5_INDEX_NAME, :H5_ITER_NATIVE, nil, callback, nil)
33-
end
34-
35-
raise 'Failed to iterate over file entries' if status < 0
29+
when 10 then HDF5::FFI.H5Literate(@file_id, :H5_INDEX_NAME, :H5_ITER_NATIVE, nil, callback, nil)
30+
when 14 then HDF5::FFI.H5Literate2(@file_id, :H5_INDEX_NAME, :H5_ITER_NATIVE, nil, callback, nil)
31+
end < 0 && raise('Failed to iterate over file entries')
3632

3733
list
3834
end
@@ -54,29 +50,27 @@ def group?(name)
5450
when 10
5551
info = HDF5::FFI::H5OInfoT.new
5652
HDF5::FFI.H5Oget_info_by_name(@file_id, name, info, 0)
57-
info[:type] == :H5O_TYPE_GROUP
5853
when 14
5954
info = HDF5::FFI::H5OInfo1T.new
6055
HDF5::FFI.H5Oget_info_by_name1(@file_id, name, info, 0)
61-
info[:type] == :H5O_TYPE_GROUP
6256
else
6357
raise 'This should not happen'
6458
end
59+
info[:type] == :H5O_TYPE_GROUP
6560
end
6661

6762
def dataset?(name)
6863
case FFI::MiV
6964
when 10
7065
info = HDF5::FFI::H5OInfoT.new
7166
HDF5::FFI.H5Oget_info_by_name(@file_id, name, info, 0)
72-
info[:type] == :H5O_TYPE_DATASET
7367
when 14
7468
info = HDF5::FFI::H5OInfo1T.new
7569
HDF5::FFI.H5Oget_info_by_name1(@file_id, name, info, 0)
76-
info[:type] == :H5O_TYPE_DATASET
7770
else
7871
raise 'This should not happen'
7972
end
73+
info[:type] == :H5O_TYPE_DATASET
8074
end
8175
end
8276
end

lib/hdf5/group.rb

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,9 @@ def list_datasets
1717
end
1818

1919
case HDF5::FFI::MiV
20-
when 10
21-
status = HDF5::FFI.H5Literate(@group_id, :H5_INDEX_NAME, :H5_ITER_NATIVE, nil, callback, nil)
22-
when 14
23-
status = HDF5::FFI.H5Literate2(@group_id, :H5_INDEX_NAME, :H5_ITER_NATIVE, nil, callback, nil)
24-
end
25-
raise 'Failed to list datasets' if status < 0
20+
when 10 then HDF5::FFI.H5Literate(@group_id, :H5_INDEX_NAME, :H5_ITER_NATIVE, nil, callback, nil)
21+
when 14 then HDF5::FFI.H5Literate2(@group_id, :H5_INDEX_NAME, :H5_ITER_NATIVE, nil, callback, nil)
22+
end.negative? && raise('Failed to list datasets')
2623

2724
datasets
2825
end
@@ -44,29 +41,27 @@ def group?(name)
4441
when 10
4542
info = HDF5::FFI::H5OInfoT.new
4643
HDF5::FFI.H5Oget_info_by_name(@group_id, name, info, 0)
47-
info[:type] == :H5O_TYPE_GROUP
4844
when 14
4945
info = HDF5::FFI::H5OInfo1T.new
5046
HDF5::FFI.H5Oget_info_by_name1(@group_id, name, info, 0)
51-
info[:type] == :H5O_TYPE_GROUP
5247
else
5348
raise 'This should not happen'
5449
end
50+
info[:type] == :H5O_TYPE_GROUP
5551
end
5652

5753
def dataset?(name)
5854
case HDF5::FFI::MiV
5955
when 10
6056
info = HDF5::FFI::H5OInfoT.new
6157
HDF5::FFI.H5Oget_info_by_name(@group_id, name, info, 0)
62-
info[:type] == :H5O_TYPE_DATASET
6358
when 14
6459
info = HDF5::FFI::H5OInfo1T.new
6560
HDF5::FFI.H5Oget_info_by_name1(@group_id, name, info, 0)
66-
info[:type] == :H5O_TYPE_DATASET
6761
else
6862
raise 'This should not happen'
6963
end
64+
info[:type] == :H5O_TYPE_DATASET
7065
end
7166
end
7267
end

0 commit comments

Comments
 (0)