tempfile_for 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,7 +1,8 @@
1
1
 
2
2
  # TempfileFor
3
3
 
4
- Easily create temporary files for in-memory data, modify the file, and get the full content returned.
4
+ Easily create temporary files for in-memory data, modify the file, and get the
5
+ full content returned.
5
6
 
6
7
  ## Installation
7
8
 
@@ -37,8 +38,9 @@ Tempfile.for("string1") { |tempfile| `echo -n ', string2' >> #{tempfile.path}` }
37
38
  # => "string1, string2"
38
39
  ```
39
40
 
40
- Say, you have some in-memory data, like an image you fetch from an URL - and you want to somehow modify it partially
41
- like e.g., add or remove IPTC tags, or scale it, etc. Often, the gems used to modify images or other media files
41
+ Say, you have some in-memory data, like an image you fetch from an URL - and
42
+ you want to somehow modify it partially like e.g., add or remove IPTC tags, or
43
+ scale it, etc. Often, the gems used to modify images or other media files
42
44
  require a path to the file to be able to modify it.
43
45
 
44
46
  This is easy thanks to TempfileFor:
@@ -60,16 +62,28 @@ If you want to use TempfileFor without initial data, simply use:
60
62
  Tempfile.blank { |tempfile| `echo -n data >> #{tempfile.path}` }
61
63
  ```
62
64
 
65
+ ### Tempfile object
66
+
67
+ In case you need the tempfile object itself, because you e.g. don't want to
68
+ load it into memory, add `:read => false` to either `Tempfile#for` or
69
+ `Tempfile#blank`
70
+
71
+ ```ruby
72
+ Tempfile.for("string", :read => false) { |tempfile| ... } # => #<File:/tmp/tempfile...>
73
+ Tempfile.blank(:read => false) { |tempfile| ... } # => #<File:/tmp/tempfile...>
74
+ ```
75
+
63
76
  ## Encoding
64
77
 
65
- If you're using ruby 1.9+, TempfileFor preserves the encoding of the supplied data. Thus, the following code
78
+ TempfileFor preserves the encoding of the supplied data. Thus, the following
79
+ code
66
80
 
67
81
  ```ruby
68
82
  Tempfile.for("string1".encode(Encoding::ISO_8859_1)) { ... }
69
83
  ```
70
84
 
71
85
  will return a string encoded as ISO-8859-1. If you use the blank method, you
72
- can supply the desired encoding, such that
86
+ can supply the desired encoding via
73
87
 
74
88
  ```ruby
75
89
  Tempfile.blank(:encoding => Encoding::BINARY) { ... }
@@ -1,3 +1,3 @@
1
1
  module TempfileFor
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
data/lib/tempfile_for.rb CHANGED
@@ -3,55 +3,26 @@ require "tempfile_for/version"
3
3
  require "tempfile"
4
4
 
5
5
  class Tempfile
6
- def self.for(data)
7
- tempfile = nil
8
-
9
- if RUBY_VERSION < "1.9"
10
- tempfile = open("tempfile")
11
- else
12
- tempfile = open("tempfile", :encoding => data.encoding)
13
- end
14
-
15
- begin
6
+ def self.for(data, options = {})
7
+ blank :encoding => data.encoding, :read => options[:read] do |tempfile|
16
8
  tempfile.write data
17
9
  tempfile.flush
18
10
 
19
11
  yield tempfile
20
-
21
- tempfile.flush
22
-
23
- if RUBY_VERSION < "1.9"
24
- File.read tempfile.path
25
- else
26
- File.read tempfile.path, :encoding => data.encoding
27
- end
28
- ensure
29
- tempfile.close!
30
12
  end
31
13
  end
32
14
 
33
15
  def self.blank(options = {})
34
- tempfile = nil
16
+ tempfile = open("tempfile", :encoding => options[:encoding])
35
17
 
36
- if RUBY_VERSION < "1.9" || options[:encoding].nil?
37
- tempfile = open("tempfile")
38
- else
39
- tempfile = open("tempfile", :encoding => options[:encoding])
40
- end
18
+ yield tempfile
41
19
 
42
- begin
43
- yield tempfile
20
+ tempfile.flush
21
+ tempfile.rewind
44
22
 
45
- tempfile.flush
46
-
47
- if RUBY_VERSION < "1.9" || options[:encoding].nil?
48
- File.read tempfile.path
49
- else
50
- File.read tempfile.path, :encoding => options[:encoding]
51
- end
52
- ensure
53
- tempfile.close!
54
- end
23
+ options[:read] != false ? tempfile.read : tempfile
24
+ ensure
25
+ tempfile.close! if options[:read] != false
55
26
  end
56
27
  end
57
28
 
@@ -1,29 +1,20 @@
1
- # encoding: utf-8
2
1
 
3
2
  require File.expand_path("../../lib/tempfile_for", __FILE__)
4
- require "test/unit"
5
3
 
6
- class TempfileForTest < Test::Unit::TestCase
4
+ require "minitest"
5
+ require "minitest/autorun"
6
+
7
+ class TempfileForTest < Minitest::Test
7
8
  def test_tempfile_for
8
9
  assert_equal "string1, string2", Tempfile.for("string1") { |tempfile| `echo -n ', string2' >> #{tempfile.path}` }
9
-
10
- if RUBY_VERSION >= "1.9"
11
- string = "string1".force_encoding(Encoding::ISO_8859_1)
12
-
13
- res = Tempfile.for(string) { |tempfile| `echo -n ', string2' >> #{tempfile.path}` }
14
-
15
- assert_equal Encoding::ISO_8859_1, res.encoding
16
- end
10
+ assert_equal "string1, string2", Tempfile.for("string1", :read => false) { |tempfile| `echo -n ', string2' >> #{tempfile.path}` }.read
11
+ assert_equal Encoding::ISO_8859_1, Tempfile.for("string1".force_encoding(Encoding::ISO_8859_1)) { |tempfile| `echo -n ', string2' >> #{tempfile.path}` }.encoding
17
12
  end
18
13
 
19
14
  def test_tempfile_blank
20
15
  assert_equal "data", Tempfile.blank { |tempfile| `echo -n data >> #{tempfile.path}` }
21
-
22
- if RUBY_VERSION >= "1.9"
23
- res = Tempfile.blank(:encoding => Encoding::ISO_8859_1) { |tempfile| `echo -n data >> #{tempfile.path}` }
24
-
25
- assert_equal Encoding::ISO_8859_1, res.encoding
26
- end
16
+ assert_equal "data", Tempfile.blank(:read => false) { |tempfile| `echo -n data >> #{tempfile.path}` }.read
17
+ assert_equal Encoding::ISO_8859_1, Tempfile.blank(:encoding => Encoding::ISO_8859_1) { |tempfile| `echo -n data >> #{tempfile.path}` }.encoding
27
18
  end
28
19
  end
29
20
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tempfile_for
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-11-12 00:00:00.000000000 Z
12
+ date: 2014-05-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake