iostreams 0.10.1 → 0.11.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
  SHA1:
3
- metadata.gz: f8b6a2e131f668f33e07b92d4bb97a502034be3e
4
- data.tar.gz: 75d6e4b9bd1fe755f390064418872b4038e3ea81
3
+ metadata.gz: 79c7b3bec464587bc14ad4cb1c951f6b08f8ffd2
4
+ data.tar.gz: 106e0fc38ffc1396ee5714ef19f9a14ea38113ae
5
5
  SHA512:
6
- metadata.gz: dc645f505a045422d8273b58354816676b4883953b5d1600073f8c913275eb555ed1d22c11ed74ec88014c7a74d5c0f3b9b4daef5aa243a629aa74a84601ccce
7
- data.tar.gz: 3a7afd7654017a715ca21f56567d40e924ff4c4e45fcd7e2ed72959b488d833e9cc74f8d08ce32cd7d66565ac86b9c8395c78b28862c23ac17f421eac8d33d19
6
+ metadata.gz: 3f61f7b6a5a07f0419ac4f322fa2b2e986adf0f104d8b65c7f20539e8adbdb3c629f24af3ab8376202d1fb4f18f8376cd6720a83ba654be6b8d784b36c22c1ad
7
+ data.tar.gz: bf2604ec77e4fd5923aaed1a478f66464e7f9a73c695574b3420b078723752be9b1eaed2b0f930da714b2958d649435711619c1528802ff4d60ce1e23d779d61
@@ -1,7 +1,7 @@
1
1
  require 'concurrent'
2
2
  module IOStreams
3
3
  # A registry to hold formats for processing files during upload or download
4
- @@extensions = Concurrent::Map.new
4
+ @extensions = Concurrent::Map.new
5
5
 
6
6
  UTF8_ENCODING = Encoding.find('UTF-8').freeze
7
7
  BINARY_ENCODING = Encoding.find('BINARY').freeze
@@ -36,7 +36,7 @@ module IOStreams
36
36
  parts = file_name.split('.')
37
37
  extensions = []
38
38
  while extension = parts.pop
39
- break unless @@extensions[extension.to_sym]
39
+ break unless @extensions[extension.to_sym]
40
40
  extensions.unshift(extension.to_sym)
41
41
  end
42
42
  extensions << :file if extensions.size == 0
@@ -52,7 +52,7 @@ module IOStreams
52
52
  # register_extension(:xls, MyXls::Reader, MyXls::Writer)
53
53
  def self.register_extension(extension, reader_class, writer_class)
54
54
  raise(ArgumentError, "Invalid extension #{extension.inspect}") unless extension.to_s =~ /\A\w+\Z/
55
- @@extensions[extension.to_sym] = Extension.new(reader_class, writer_class)
55
+ @extensions[extension.to_sym] = Extension.new(reader_class, writer_class)
56
56
  end
57
57
 
58
58
  # De-Register a file extension
@@ -63,7 +63,7 @@ module IOStreams
63
63
  # register_extension(:xls)
64
64
  def self.deregister_extension(extension)
65
65
  raise(ArgumentError, "Invalid extension #{extension.inspect}") unless extension.to_s =~ /\A\w+\Z/
66
- @@extensions.delete(extension.to_sym)
66
+ @extensions.delete(extension.to_sym)
67
67
  end
68
68
 
69
69
  # Returns a Reader for reading a file / stream
@@ -209,12 +209,18 @@ module IOStreams
209
209
  file_name_or_io.respond_to?(:write)
210
210
  end
211
211
 
212
- # Returns [true|false] whether the file is compressed
212
+ # Returns [true|false] whether the file is compressed.
213
213
  # Note: Currently only looks at the file name extension
214
214
  def self.compressed?(file_name)
215
215
  !(file_name =~ /\.(zip|gz|gzip|xls.|)\z/i).nil?
216
216
  end
217
217
 
218
+ # Returns [true|false] whether the file is encrypted.
219
+ # Note: Currently only looks at the file name extension
220
+ def self.encrypted?(file_name)
221
+ !(file_name =~ /\.(enc|pgp|gpg)\z/i).nil?
222
+ end
223
+
218
224
  # Deletes the specified stream from the supplied streams if present
219
225
  # Returns deleted stream, or nil if not found
220
226
  def self.delete_stream(stream, streams)
@@ -282,7 +288,7 @@ module IOStreams
282
288
  end
283
289
 
284
290
  def self.stream_struct_for_stream(type, stream, options={})
285
- ext = @@extensions[stream.to_sym] || raise(ArgumentError, "Unknown Stream type: #{stream.inspect}")
291
+ ext = @extensions[stream.to_sym] || raise(ArgumentError, "Unknown Stream type: #{stream.inspect}")
286
292
  klass = ext.send("#{type}_class")
287
293
  StreamStruct.new(klass, options)
288
294
  end
@@ -97,7 +97,7 @@ module IOStreams
97
97
  parts = file_name.split('.')
98
98
  extensions = []
99
99
  while extension = parts.pop
100
- break unless @@extensions[extension.to_sym]
100
+ break unless @extensions[extension.to_sym]
101
101
  extensions.unshift(extension.to_sym)
102
102
  end
103
103
  extensions << :file if extensions.size == 0
@@ -1,3 +1,3 @@
1
1
  module IOStreams #:nodoc
2
- VERSION = '0.10.1'
2
+ VERSION = '0.11.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iostreams
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reid Morrison
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-28 00:00:00.000000000 Z
11
+ date: 2017-05-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -94,7 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
94
  version: '0'
95
95
  requirements: []
96
96
  rubyforge_project:
97
- rubygems_version: 2.6.8
97
+ rubygems_version: 2.6.11
98
98
  signing_key:
99
99
  specification_version: 4
100
100
  summary: Ruby file streaming. Supports Text, Zip, Gzip, Xlsx, csv, PGP / GPG and Symmetric