iostreams 0.10.1 → 0.11.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 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