tins 1.16.1 → 1.16.2

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
  SHA256:
3
- metadata.gz: 470ca7e237caaf15f461cd35ca606b90c7e512f554ac669ba5f2d66bca076710
4
- data.tar.gz: 8e3b1a5275ce7235a0ebc23bd5438af6ccc9feda5d8296edcfc2d2c90eed46af
3
+ metadata.gz: 36c465f9a5d326907810bf93d1b541bf1fb6ac40f0087f23ed6de360fca8242b
4
+ data.tar.gz: 20fb5ad144f13384388349325312343455dcb6a2cf0be1a38895ba10b034dd01
5
5
  SHA512:
6
- metadata.gz: 84559e53a80ce06a097ab39d6fa83c1921d7af9d43e9d8864aab30853446cb3399e167051982141112f712698b9c428d17c9b50e00e4d408f8fb886f6e35148a
7
- data.tar.gz: 194493279f02c6121ae61df456d52abef3bc508ae3070c122ed245ac2e6eca5e74caec22a822e504fe19c3a95fe5e5818d5a8e784e5b17ed93bcaff2e9d872c8
6
+ metadata.gz: 8e4d7b8da9cbbacc3b1df6d90967938a14508f01660343a2dd4e6e6d49296e25c580b06fa234ee8b14a25de8c6495275f846cf75144660f80afde5bbb16cb034
7
+ data.tar.gz: 14416877896a3c2f9f4361639f5f8a9cfa2354912e5426119a2f7a7b7c1313ac4a6395e67f69bbbaff6eea96d753943d41b2e438c82180f8d523b4a1aabe9ea6
data/README.md CHANGED
@@ -12,6 +12,8 @@ Non yet.
12
12
 
13
13
  ## Changes
14
14
 
15
+ * 2017-12-05 Release 1.16.2
16
+ - Improve `temp_io` method with a given name.
15
17
  * 2017-12-05 Release 1.16.1
16
18
  - Improve `temp_io` method with block
17
19
  * 2017-11-29 Release 1.16.0
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.16.1
1
+ 1.16.2
@@ -1,20 +1,25 @@
1
- require 'tempfile'
1
+ require 'tmpdir'
2
2
 
3
3
  module Tins
4
4
  module TempIO
5
- def temp_io(content = nil)
6
- Tempfile.open(__method__.to_s, binmode: true) do |io|
7
- if content.respond_to?(:call)
8
- if content.respond_to?(:arity) && content.arity == 1
9
- content.call(io)
10
- else
11
- io.write content.call
5
+ def temp_io(content:, name: __method__)
6
+ name = File.basename(name.to_s)
7
+ Dir.mktmpdir do |dir|
8
+ Dir.chdir(dir) do
9
+ File.open(name, 'w+b') do |io|
10
+ if content.respond_to?(:call)
11
+ if content.respond_to?(:arity) && content.arity == 1
12
+ content.call(io)
13
+ else
14
+ io.write content.call
15
+ end
16
+ else
17
+ io.write content
18
+ end
19
+ io.rewind
20
+ yield io
12
21
  end
13
- else
14
- io.write content
15
22
  end
16
- io.rewind
17
- yield io
18
23
  end
19
24
  end
20
25
  end
@@ -1,6 +1,6 @@
1
1
  module Tins
2
2
  # Tins version
3
- VERSION = '1.16.1'
3
+ VERSION = '1.16.2'
4
4
  VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
@@ -4,15 +4,23 @@ require 'tins/xt/temp_io'
4
4
  module Tins
5
5
  class TempIOTest < Test::Unit::TestCase
6
6
  def test_with_string
7
- returned = temp_io('foo') { |io|
7
+ returned = temp_io(content: 'foo') { |io|
8
8
  assert_equal 'foo', io.read
9
9
  :done
10
10
  }
11
11
  assert_equal returned, :done
12
12
  end
13
13
 
14
+ def test_with_suffixed_name
15
+ returned = temp_io(content: 'foo', name: 'foo.csv') { |io|
16
+ assert_true io.path.end_with?('foo.csv')
17
+ :done
18
+ }
19
+ assert_equal returned, :done
20
+ end
21
+
14
22
  def test_with_proc
15
- returned = temp_io(-> { 'foo' }) { |io|
23
+ returned = temp_io(content: -> { 'foo' }) { |io|
16
24
  assert_equal 'foo', io.read
17
25
  :done
18
26
  }
@@ -20,7 +28,7 @@ module Tins
20
28
  end
21
29
 
22
30
  def test_with_proc_and_io_arg
23
- returned = temp_io(-> io { io << 'foo' }) { |io|
31
+ returned = temp_io(content: -> io { io << 'foo' }) { |io|
24
32
  assert_equal 'foo', io.read
25
33
  :done
26
34
  }
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: tins 1.16.1 ruby lib
2
+ # stub: tins 1.16.2 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "tins".freeze
6
- s.version = "1.16.1"
6
+ s.version = "1.16.2"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
10
10
  s.authors = ["Florian Frank".freeze]
11
- s.date = "2017-12-05"
11
+ s.date = "2017-12-06"
12
12
  s.description = "All the stuff that isn't good/big enough for a real library.".freeze
13
13
  s.email = "flori@ping.de".freeze
14
14
  s.extra_rdoc_files = ["README.md".freeze, "lib/dslkit.rb".freeze, "lib/dslkit/polite.rb".freeze, "lib/dslkit/rude.rb".freeze, "lib/spruz.rb".freeze, "lib/tins.rb".freeze, "lib/tins/alias.rb".freeze, "lib/tins/annotate.rb".freeze, "lib/tins/ask_and_send.rb".freeze, "lib/tins/attempt.rb".freeze, "lib/tins/bijection.rb".freeze, "lib/tins/case_predicate.rb".freeze, "lib/tins/complete.rb".freeze, "lib/tins/concern.rb".freeze, "lib/tins/count_by.rb".freeze, "lib/tins/date_dummy.rb".freeze, "lib/tins/date_time_dummy.rb".freeze, "lib/tins/deep_const_get.rb".freeze, "lib/tins/deep_dup.rb".freeze, "lib/tins/dslkit.rb".freeze, "lib/tins/duration.rb".freeze, "lib/tins/expose.rb".freeze, "lib/tins/extract_last_argument_options.rb".freeze, "lib/tins/file_binary.rb".freeze, "lib/tins/find.rb".freeze, "lib/tins/generator.rb".freeze, "lib/tins/go.rb".freeze, "lib/tins/hash_symbolize_keys_recursive.rb".freeze, "lib/tins/hash_union.rb".freeze, "lib/tins/if_predicate.rb".freeze, "lib/tins/implement.rb".freeze, "lib/tins/limited.rb".freeze, "lib/tins/lines_file.rb".freeze, "lib/tins/memoize.rb".freeze, "lib/tins/method_description.rb".freeze, "lib/tins/minimize.rb".freeze, "lib/tins/module_group.rb".freeze, "lib/tins/named_set.rb".freeze, "lib/tins/null.rb".freeze, "lib/tins/once.rb".freeze, "lib/tins/p.rb".freeze, "lib/tins/partial_application.rb".freeze, "lib/tins/proc_compose.rb".freeze, "lib/tins/proc_prelude.rb".freeze, "lib/tins/range_plus.rb".freeze, "lib/tins/require_maybe.rb".freeze, "lib/tins/responding.rb".freeze, "lib/tins/secure_write.rb".freeze, "lib/tins/sexy_singleton.rb".freeze, "lib/tins/string_byte_order_mark.rb".freeze, "lib/tins/string_camelize.rb".freeze, "lib/tins/string_underscore.rb".freeze, "lib/tins/string_version.rb".freeze, "lib/tins/subhash.rb".freeze, "lib/tins/temp_io.rb".freeze, "lib/tins/terminal.rb".freeze, "lib/tins/thread_local.rb".freeze, "lib/tins/time_dummy.rb".freeze, "lib/tins/to.rb".freeze, "lib/tins/to_proc.rb".freeze, "lib/tins/token.rb".freeze, "lib/tins/uniq_by.rb".freeze, "lib/tins/unit.rb".freeze, "lib/tins/version.rb".freeze, "lib/tins/write.rb".freeze, "lib/tins/xt.rb".freeze, "lib/tins/xt/annotate.rb".freeze, "lib/tins/xt/ask_and_send.rb".freeze, "lib/tins/xt/attempt.rb".freeze, "lib/tins/xt/blank.rb".freeze, "lib/tins/xt/case_predicate.rb".freeze, "lib/tins/xt/complete.rb".freeze, "lib/tins/xt/concern.rb".freeze, "lib/tins/xt/count_by.rb".freeze, "lib/tins/xt/date_dummy.rb".freeze, "lib/tins/xt/date_time_dummy.rb".freeze, "lib/tins/xt/deep_const_get.rb".freeze, "lib/tins/xt/deep_dup.rb".freeze, "lib/tins/xt/dslkit.rb".freeze, "lib/tins/xt/expose.rb".freeze, "lib/tins/xt/extract_last_argument_options.rb".freeze, "lib/tins/xt/file_binary.rb".freeze, "lib/tins/xt/full.rb".freeze, "lib/tins/xt/hash_symbolize_keys_recursive.rb".freeze, "lib/tins/xt/hash_union.rb".freeze, "lib/tins/xt/if_predicate.rb".freeze, "lib/tins/xt/implement.rb".freeze, "lib/tins/xt/irb.rb".freeze, "lib/tins/xt/method_description.rb".freeze, "lib/tins/xt/named.rb".freeze, "lib/tins/xt/null.rb".freeze, "lib/tins/xt/p.rb".freeze, "lib/tins/xt/partial_application.rb".freeze, "lib/tins/xt/proc_compose.rb".freeze, "lib/tins/xt/proc_prelude.rb".freeze, "lib/tins/xt/range_plus.rb".freeze, "lib/tins/xt/require_maybe.rb".freeze, "lib/tins/xt/responding.rb".freeze, "lib/tins/xt/secure_write.rb".freeze, "lib/tins/xt/sexy_singleton.rb".freeze, "lib/tins/xt/string.rb".freeze, "lib/tins/xt/string_byte_order_mark.rb".freeze, "lib/tins/xt/string_camelize.rb".freeze, "lib/tins/xt/string_underscore.rb".freeze, "lib/tins/xt/string_version.rb".freeze, "lib/tins/xt/subhash.rb".freeze, "lib/tins/xt/temp_io.rb".freeze, "lib/tins/xt/time_dummy.rb".freeze, "lib/tins/xt/time_freezer.rb".freeze, "lib/tins/xt/to.rb".freeze, "lib/tins/xt/uniq_by.rb".freeze, "lib/tins/xt/write.rb".freeze]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tins
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.16.1
4
+ version: 1.16.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-05 00:00:00.000000000 Z
11
+ date: 2017-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar