ffi-libarchive 0.4.10 → 1.0.0
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 +4 -4
- data/lib/ffi-libarchive.rb +2 -1
- data/lib/ffi-libarchive/archive.rb +76 -62
- data/lib/ffi-libarchive/entry.rb +3 -0
- data/lib/ffi-libarchive/reader.rb +46 -2
- data/lib/ffi-libarchive/version.rb +1 -1
- data/lib/ffi-libarchive/writer.rb +5 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e9b6e6ed6fbbaf0e493767d47541307f64cfcffd32e23d33f0f47ab3efd6a35a
|
4
|
+
data.tar.gz: c85cb44e37fdbe3bec65f7408fc7e0eb821393bec658c929f6252d2ca01c6ecf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3bf10cbcfa75efc763348bce05f35f4891717a5c8aed5ab38e5ab2cd6c0d162b179fb2c3defb9af7c6e039e12f385590e66c8534b0eafd394706afc20b7ea55
|
7
|
+
data.tar.gz: 07cba89aa39ec4be250d187cb75113ae1b1f2c21b20b3854926fed0bc2f7ff413ba24c526fa5a2d2c7a3e27b2a8bc6ec2b27dfab54a6b7370c3ce8aea3c4dfc9
|
data/lib/ffi-libarchive.rb
CHANGED
@@ -46,7 +46,8 @@ module Archive
|
|
46
46
|
def self.require_all_libs_relative_to(fname, dir = nil)
|
47
47
|
dir ||= ::File.basename(fname, ".*")
|
48
48
|
search_me = ::File.expand_path(
|
49
|
-
::File.join(::File.dirname(fname), dir, "**", "*.rb")
|
49
|
+
::File.join(::File.dirname(fname), dir, "**", "*.rb")
|
50
|
+
)
|
50
51
|
|
51
52
|
Dir.glob(search_me).sort.each { |rb| require rb }
|
52
53
|
end
|
@@ -16,15 +16,24 @@ module Archive
|
|
16
16
|
attach_function :archive_errno, [:pointer], :int
|
17
17
|
|
18
18
|
attach_function :archive_read_new, [], :pointer
|
19
|
-
attach_function :archive_read_open_filename,
|
20
|
-
attach_function :archive_read_open_memory,
|
21
|
-
attach_function :
|
19
|
+
attach_function :archive_read_open_filename, %i{pointer string size_t}, :int
|
20
|
+
attach_function :archive_read_open_memory, %i{pointer pointer size_t}, :int
|
21
|
+
attach_function :archive_read_open1, [:pointer], :int
|
22
|
+
attach_function :archive_read_support_compression_program, %i{pointer string}, :int
|
22
23
|
attach_function :archive_read_support_compression_all, [:pointer], :int
|
23
24
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
callback :archive_read_callback, %i{pointer pointer pointer}, :int
|
26
|
+
callback :archive_skip_callback, %i{pointer pointer int64}, :int
|
27
|
+
callback :archive_seek_callback, %i{pointer pointer int64 int}, :int
|
28
|
+
attach_function :archive_read_set_read_callback, %i{pointer archive_read_callback}, :int
|
29
|
+
attach_function :archive_read_set_callback_data, %i{pointer pointer}, :int
|
30
|
+
attach_function :archive_read_set_skip_callback, %i{pointer archive_skip_callback}, :int
|
31
|
+
attach_function :archive_read_set_seek_callback, %i{pointer archive_seek_callback}, :int
|
32
|
+
|
33
|
+
attach_function_maybe :archive_read_set_format, %i{pointer int}, :int
|
34
|
+
attach_function_maybe :archive_read_append_filter, %i{pointer int}, :int
|
35
|
+
attach_function_maybe :archive_read_append_filter_program, %i{pointer pointer}, :int
|
36
|
+
attach_function_maybe :archive_read_append_filter_program_signature, %i{pointer string pointer size_t}, :int
|
28
37
|
|
29
38
|
attach_function_maybe :archive_read_support_filter_all, [:pointer], :int
|
30
39
|
attach_function_maybe :archive_read_support_filter_bzip2, [:pointer], :int
|
@@ -64,18 +73,18 @@ module Archive
|
|
64
73
|
attach_function_maybe :archive_read_support_format_zip_seekable, [:pointer], :int
|
65
74
|
|
66
75
|
attach_function :archive_read_finish, [:pointer], :int
|
67
|
-
attach_function :archive_read_extract,
|
76
|
+
attach_function :archive_read_extract, %i{pointer pointer int}, :int
|
68
77
|
attach_function :archive_read_header_position, [:pointer], :int
|
69
|
-
attach_function :archive_read_next_header,
|
70
|
-
attach_function :archive_read_data,
|
71
|
-
attach_function :archive_read_data_into_fd,
|
78
|
+
attach_function :archive_read_next_header, %i{pointer pointer}, :int
|
79
|
+
attach_function :archive_read_data, %i{pointer pointer size_t}, :size_t
|
80
|
+
attach_function :archive_read_data_into_fd, %i{pointer int}, :int
|
72
81
|
|
73
82
|
attach_function :archive_write_new, [], :pointer
|
74
|
-
attach_function :archive_write_open_filename,
|
75
|
-
callback :archive_open_callback,
|
76
|
-
callback :archive_write_callback,
|
77
|
-
callback :archive_close_callback,
|
78
|
-
attach_function :archive_write_open,
|
83
|
+
attach_function :archive_write_open_filename, %i{pointer string}, :int
|
84
|
+
callback :archive_open_callback, %i{pointer pointer}, :int
|
85
|
+
callback :archive_write_callback, %i{pointer pointer pointer size_t}, :int
|
86
|
+
callback :archive_close_callback, %i{pointer pointer}, :int
|
87
|
+
attach_function :archive_write_open, %i{pointer pointer pointer archive_write_callback pointer}, :int
|
79
88
|
attach_function :archive_write_set_compression_none, [:pointer], :int
|
80
89
|
attach_function_maybe :archive_write_set_compression_gzip, [:pointer], :int
|
81
90
|
attach_function_maybe :archive_write_set_compression_bzip2, [:pointer], :int
|
@@ -83,7 +92,7 @@ module Archive
|
|
83
92
|
attach_function_maybe :archive_write_set_compression_compress, [:pointer], :int
|
84
93
|
attach_function_maybe :archive_write_set_compression_lzma, [:pointer], :int
|
85
94
|
attach_function_maybe :archive_write_set_compression_xz, [:pointer], :int
|
86
|
-
attach_function :archive_write_set_compression_program,
|
95
|
+
attach_function :archive_write_set_compression_program, %i{pointer string}, :int
|
87
96
|
|
88
97
|
def self.archive_write_set_compression(archive, compression)
|
89
98
|
case compression
|
@@ -106,94 +115,94 @@ module Archive
|
|
106
115
|
end
|
107
116
|
end
|
108
117
|
|
109
|
-
attach_function :archive_write_set_format,
|
110
|
-
attach_function :archive_write_data,
|
111
|
-
attach_function :archive_write_header,
|
118
|
+
attach_function :archive_write_set_format, %i{pointer int}, :int
|
119
|
+
attach_function :archive_write_data, %i{pointer pointer size_t}, :ssize_t
|
120
|
+
attach_function :archive_write_header, %i{pointer pointer}, :int
|
112
121
|
attach_function :archive_write_finish, [:pointer], :void
|
113
122
|
attach_function :archive_write_get_bytes_in_last_block, [:pointer], :int
|
114
|
-
attach_function :archive_write_set_bytes_in_last_block,
|
123
|
+
attach_function :archive_write_set_bytes_in_last_block, %i{pointer int}, :int
|
115
124
|
|
116
125
|
attach_function :archive_entry_new, [], :pointer
|
117
126
|
attach_function :archive_entry_free, [:pointer], :void
|
118
127
|
attach_function :archive_entry_atime, [:pointer], :time_t
|
119
|
-
attach_function :archive_entry_atime_nsec,
|
128
|
+
attach_function :archive_entry_atime_nsec, %i{pointer time_t long}, :void
|
120
129
|
attach_function_maybe :archive_entry_atime_is_set, [:pointer], :int
|
121
|
-
attach_function :archive_entry_set_atime,
|
130
|
+
attach_function :archive_entry_set_atime, %i{pointer time_t long}, :int
|
122
131
|
attach_function_maybe :archive_entry_unset_atime, [:pointer], :int
|
123
132
|
attach_function_maybe :archive_entry_birthtime, [:pointer], :time_t
|
124
|
-
attach_function_maybe :archive_entry_birthtime_nsec,
|
133
|
+
attach_function_maybe :archive_entry_birthtime_nsec, %i{pointer time_t long}, :void
|
125
134
|
attach_function_maybe :archive_entry_birthtime_is_set, [:pointer], :int
|
126
|
-
attach_function_maybe :archive_entry_set_birthtime,
|
135
|
+
attach_function_maybe :archive_entry_set_birthtime, %i{pointer time_t long}, :int
|
127
136
|
attach_function_maybe :archive_entry_unset_birthtime, [:pointer], :int
|
128
137
|
attach_function :archive_entry_ctime, [:pointer], :time_t
|
129
|
-
attach_function :archive_entry_ctime_nsec,
|
138
|
+
attach_function :archive_entry_ctime_nsec, %i{pointer time_t long}, :void
|
130
139
|
attach_function_maybe :archive_entry_ctime_is_set, [:pointer], :int
|
131
|
-
attach_function :archive_entry_set_ctime,
|
140
|
+
attach_function :archive_entry_set_ctime, %i{pointer time_t long}, :int
|
132
141
|
attach_function_maybe :archive_entry_unset_ctime, [:pointer], :int
|
133
142
|
attach_function :archive_entry_mtime, [:pointer], :time_t
|
134
|
-
attach_function :archive_entry_mtime_nsec,
|
143
|
+
attach_function :archive_entry_mtime_nsec, %i{pointer time_t long}, :void
|
135
144
|
attach_function_maybe :archive_entry_mtime_is_set, [:pointer], :int
|
136
|
-
attach_function :archive_entry_set_mtime,
|
145
|
+
attach_function :archive_entry_set_mtime, %i{pointer time_t long}, :int
|
137
146
|
attach_function_maybe :archive_entry_unset_mtime, [:pointer], :int
|
138
147
|
attach_function :archive_entry_dev, [:pointer], :dev_t
|
139
|
-
attach_function :archive_entry_set_dev,
|
148
|
+
attach_function :archive_entry_set_dev, %i{pointer dev_t}, :void
|
140
149
|
attach_function :archive_entry_devmajor, [:pointer], :dev_t
|
141
|
-
attach_function :archive_entry_set_devmajor,
|
150
|
+
attach_function :archive_entry_set_devmajor, %i{pointer dev_t}, :void
|
142
151
|
attach_function :archive_entry_devminor, [:pointer], :dev_t
|
143
|
-
attach_function :archive_entry_set_devminor,
|
152
|
+
attach_function :archive_entry_set_devminor, %i{pointer dev_t}, :void
|
144
153
|
attach_function :archive_entry_filetype, [:pointer], :mode_t
|
145
|
-
attach_function :archive_entry_set_filetype,
|
146
|
-
attach_function :archive_entry_fflags,
|
147
|
-
attach_function :archive_entry_set_fflags,
|
154
|
+
attach_function :archive_entry_set_filetype, %i{pointer mode_t}, :void
|
155
|
+
attach_function :archive_entry_fflags, %i{pointer pointer pointer}, :void
|
156
|
+
attach_function :archive_entry_set_fflags, %i{pointer ulong ulong}, :void
|
148
157
|
attach_function :archive_entry_fflags_text, [:pointer], :string
|
149
158
|
attach_function :archive_entry_gid, [:pointer], :gid_t
|
150
|
-
attach_function :archive_entry_set_gid,
|
159
|
+
attach_function :archive_entry_set_gid, %i{pointer gid_t}, :void
|
151
160
|
attach_function :archive_entry_gname, [:pointer], :string
|
152
|
-
attach_function :archive_entry_set_gname,
|
161
|
+
attach_function :archive_entry_set_gname, %i{pointer string}, :void
|
153
162
|
attach_function :archive_entry_hardlink, [:pointer], :string
|
154
|
-
attach_function :archive_entry_set_hardlink,
|
155
|
-
attach_function :archive_entry_set_link,
|
163
|
+
attach_function :archive_entry_set_hardlink, %i{pointer string}, :void
|
164
|
+
attach_function :archive_entry_set_link, %i{pointer string}, :void
|
156
165
|
attach_function :archive_entry_ino, [:pointer], :ino_t
|
157
|
-
attach_function :archive_entry_set_ino,
|
166
|
+
attach_function :archive_entry_set_ino, %i{pointer ino_t}, :void
|
158
167
|
attach_function :archive_entry_mode, [:pointer], :mode_t
|
159
|
-
attach_function :archive_entry_set_mode,
|
160
|
-
attach_function :archive_entry_set_perm,
|
168
|
+
attach_function :archive_entry_set_mode, %i{pointer mode_t}, :void
|
169
|
+
attach_function :archive_entry_set_perm, %i{pointer mode_t}, :void
|
161
170
|
attach_function :archive_entry_nlink, [:pointer], :uint
|
162
|
-
attach_function :archive_entry_set_nlink,
|
171
|
+
attach_function :archive_entry_set_nlink, %i{pointer uint}, :void
|
163
172
|
attach_function :archive_entry_pathname, [:pointer], :string
|
164
|
-
attach_function :archive_entry_set_pathname,
|
173
|
+
attach_function :archive_entry_set_pathname, %i{pointer string}, :void
|
165
174
|
attach_function :archive_entry_rdev, [:pointer], :dev_t
|
166
|
-
attach_function :archive_entry_set_rdev,
|
175
|
+
attach_function :archive_entry_set_rdev, %i{pointer dev_t}, :void
|
167
176
|
attach_function :archive_entry_rdevmajor, [:pointer], :dev_t
|
168
|
-
attach_function :archive_entry_set_rdevmajor,
|
177
|
+
attach_function :archive_entry_set_rdevmajor, %i{pointer dev_t}, :void
|
169
178
|
attach_function :archive_entry_rdevminor, [:pointer], :dev_t
|
170
|
-
attach_function :archive_entry_set_rdevminor,
|
179
|
+
attach_function :archive_entry_set_rdevminor, %i{pointer dev_t}, :void
|
171
180
|
attach_function :archive_entry_size, [:pointer], :int64_t
|
172
|
-
attach_function :archive_entry_set_size,
|
181
|
+
attach_function :archive_entry_set_size, %i{pointer int64_t}, :void
|
173
182
|
attach_function_maybe :archive_entry_unset_size, [:pointer], :void
|
174
183
|
attach_function_maybe :archive_entry_size_is_set, [:pointer], :int
|
175
184
|
attach_function :archive_entry_sourcepath, [:pointer], :string
|
176
185
|
attach_function :archive_entry_strmode, [:pointer], :string
|
177
186
|
attach_function :archive_entry_symlink, [:pointer], :string
|
178
|
-
attach_function :archive_entry_set_symlink,
|
187
|
+
attach_function :archive_entry_set_symlink, %i{pointer string}, :void
|
179
188
|
attach_function :archive_entry_uid, [:pointer], :uid_t
|
180
|
-
attach_function :archive_entry_set_uid,
|
189
|
+
attach_function :archive_entry_set_uid, %i{pointer uid_t}, :void
|
181
190
|
attach_function :archive_entry_uname, [:pointer], :string
|
182
|
-
attach_function :archive_entry_set_uname,
|
183
|
-
attach_function :archive_entry_copy_stat,
|
184
|
-
attach_function :archive_entry_copy_fflags_text,
|
185
|
-
attach_function :archive_entry_copy_gname,
|
186
|
-
attach_function :archive_entry_copy_uname,
|
187
|
-
attach_function :archive_entry_copy_hardlink,
|
188
|
-
attach_function :archive_entry_copy_link,
|
189
|
-
attach_function :archive_entry_copy_symlink,
|
190
|
-
attach_function :archive_entry_copy_sourcepath,
|
191
|
-
attach_function :archive_entry_copy_pathname,
|
191
|
+
attach_function :archive_entry_set_uname, %i{pointer string}, :void
|
192
|
+
attach_function :archive_entry_copy_stat, %i{pointer pointer}, :void
|
193
|
+
attach_function :archive_entry_copy_fflags_text, %i{pointer string}, :string
|
194
|
+
attach_function :archive_entry_copy_gname, %i{pointer string}, :string
|
195
|
+
attach_function :archive_entry_copy_uname, %i{pointer string}, :string
|
196
|
+
attach_function :archive_entry_copy_hardlink, %i{pointer string}, :string
|
197
|
+
attach_function :archive_entry_copy_link, %i{pointer string}, :string
|
198
|
+
attach_function :archive_entry_copy_symlink, %i{pointer string}, :string
|
199
|
+
attach_function :archive_entry_copy_sourcepath, %i{pointer string}, :string
|
200
|
+
attach_function :archive_entry_copy_pathname, %i{pointer string}, :string
|
192
201
|
attach_function :archive_entry_xattr_clear, [:pointer], :void
|
193
|
-
attach_function :archive_entry_xattr_add_entry,
|
202
|
+
attach_function :archive_entry_xattr_add_entry, %i{pointer string pointer size_t}, :void
|
194
203
|
attach_function :archive_entry_xattr_count, [:pointer], :int
|
195
204
|
attach_function :archive_entry_xattr_reset, [:pointer], :int
|
196
|
-
attach_function :archive_entry_xattr_next,
|
205
|
+
attach_function :archive_entry_xattr_next, %i{pointer pointer pointer pointer}, :int
|
197
206
|
|
198
207
|
EOF = 1
|
199
208
|
OK = 0
|
@@ -278,6 +287,10 @@ module Archive
|
|
278
287
|
Reader.open_memory string, command, &block
|
279
288
|
end
|
280
289
|
|
290
|
+
def self.read_open_stream(reader, &block)
|
291
|
+
Reader.open_stream reader, &block
|
292
|
+
end
|
293
|
+
|
281
294
|
def self.write_open_filename(file_name, compression, format, &block)
|
282
295
|
Writer.open_filename file_name, compression, format, &block
|
283
296
|
end
|
@@ -336,6 +349,7 @@ module Archive
|
|
336
349
|
|
337
350
|
def archive
|
338
351
|
raise Error, "No archive open" unless @archive
|
352
|
+
|
339
353
|
@archive
|
340
354
|
end
|
341
355
|
protected :archive
|
data/lib/ffi-libarchive/entry.rb
CHANGED
@@ -60,6 +60,7 @@ module Archive
|
|
60
60
|
|
61
61
|
def entry
|
62
62
|
raise "No entry object" unless @entry
|
63
|
+
|
63
64
|
@entry
|
64
65
|
end
|
65
66
|
|
@@ -182,6 +183,7 @@ module Archive
|
|
182
183
|
|
183
184
|
stat = Archive::Stat.ffi_libarchive_create_lstat(filename)
|
184
185
|
raise Error, "Copy stat failed: #{Archive::Stat.ffi_error}" if stat.null?
|
186
|
+
|
185
187
|
C.archive_entry_copy_stat(entry, stat)
|
186
188
|
ensure
|
187
189
|
Archive::Stat.ffi_libarchive_free_stat(stat)
|
@@ -207,6 +209,7 @@ module Archive
|
|
207
209
|
|
208
210
|
stat = Archive::Stat.ffi_libarchive_create_stat(filename)
|
209
211
|
raise Error, "Copy stat failed: #{Archive::Stat.ffi_error}" if stat.null?
|
212
|
+
|
210
213
|
C.archive_entry_copy_stat(entry, stat)
|
211
214
|
ensure
|
212
215
|
Archive::Stat.ffi_libarchive_free_stat(stat)
|
@@ -28,6 +28,19 @@ module Archive
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
+
def self.open_stream(reader)
|
32
|
+
if block_given?
|
33
|
+
reader = new reader: reader
|
34
|
+
begin
|
35
|
+
yield reader
|
36
|
+
ensure
|
37
|
+
reader.close
|
38
|
+
end
|
39
|
+
else
|
40
|
+
new reader: reader
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
31
44
|
def initialize(params = {})
|
32
45
|
super C.method(:archive_read_new), C.method(:archive_read_finish)
|
33
46
|
|
@@ -40,13 +53,44 @@ module Archive
|
|
40
53
|
|
41
54
|
raise Error, @archive if C.archive_read_support_format_all(archive) != C::OK
|
42
55
|
|
43
|
-
|
56
|
+
case
|
57
|
+
when params[:file_name]
|
44
58
|
raise Error, @archive if C.archive_read_open_filename(archive, params[:file_name], 1024) != C::OK
|
45
|
-
|
59
|
+
when params[:memory]
|
46
60
|
str = params[:memory]
|
47
61
|
@data = FFI::MemoryPointer.new(str.bytesize + 1)
|
48
62
|
@data.write_string str, str.bytesize
|
49
63
|
raise Error, @archive if C.archive_read_open_memory(archive, @data, str.bytesize) != C::OK
|
64
|
+
when params[:reader]
|
65
|
+
@reader = params[:reader]
|
66
|
+
@buffer = nil
|
67
|
+
|
68
|
+
@read_callback = FFI::Function.new(:int, %i{pointer pointer pointer}) do |_, _, archive_data|
|
69
|
+
data = @reader.call || ""
|
70
|
+
@buffer = FFI::MemoryPointer.new(:char, data.size) if @buffer.nil? || @buffer.size < data.size
|
71
|
+
@buffer.write_bytes(data)
|
72
|
+
archive_data.write_pointer(@buffer)
|
73
|
+
data.size
|
74
|
+
end
|
75
|
+
C.archive_read_set_read_callback(archive, @read_callback)
|
76
|
+
|
77
|
+
if @reader.respond_to?(:skip)
|
78
|
+
@skip_callback = FFI::Function.new(:int, %i{pointer pointer int64}) do |_, _, offset|
|
79
|
+
@reader.skip(offset)
|
80
|
+
end
|
81
|
+
C.archive_read_set_skip_callback(archive, @skip_callback)
|
82
|
+
end
|
83
|
+
|
84
|
+
if @reader.respond_to?(:seek)
|
85
|
+
@seek_callback = FFI::Function.new(:int, %i{pointer pointer int64 int}) do |_, _, offset, whence|
|
86
|
+
@reader.seek(offset, whence)
|
87
|
+
end
|
88
|
+
C.archive_read_set_seek_callback(archive, @seek_callback)
|
89
|
+
end
|
90
|
+
|
91
|
+
# Required or open1 will segfault, even though the callback data is not used.
|
92
|
+
C.archive_read_set_callback_data(archive, nil)
|
93
|
+
raise Error, @archive if C.archive_read_open1(archive) != C::OK
|
50
94
|
end
|
51
95
|
rescue
|
52
96
|
close
|
@@ -58,9 +58,9 @@ module Archive
|
|
58
58
|
end
|
59
59
|
@data = write_callback params[:memory]
|
60
60
|
raise Error, @archive if C.archive_write_open(archive, nil,
|
61
|
-
|
62
|
-
|
63
|
-
|
61
|
+
nil,
|
62
|
+
@data,
|
63
|
+
nil) != C::OK
|
64
64
|
end
|
65
65
|
rescue
|
66
66
|
close
|
@@ -117,10 +117,12 @@ module Archive
|
|
117
117
|
if (n = C.archive_write_data(ar, str, str.bytesize)) < 1
|
118
118
|
return len
|
119
119
|
end
|
120
|
+
|
120
121
|
len += n
|
121
122
|
end
|
122
123
|
else
|
123
124
|
raise ArgumentError, "wrong number of argument (#{args.size}) for 1)" if args.size != 1
|
125
|
+
|
124
126
|
str = args[0]
|
125
127
|
C.archive_write_data(archive, str, str.bytesize)
|
126
128
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffi-libarchive
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Bellone
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2019-
|
13
|
+
date: 2019-12-28 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: ffi
|