tempfile_for 0.0.5 → 0.0.6
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.
- data/README.md +27 -0
- data/lib/tempfile_for.rb +22 -0
- data/lib/tempfile_for/version.rb +1 -1
- data/test/tempfile_for_test.rb +14 -2
- metadata +2 -2
data/README.md
CHANGED
@@ -25,6 +25,8 @@ $ gem install tempfile_for
|
|
25
25
|
|
26
26
|
## Usage
|
27
27
|
|
28
|
+
### for
|
29
|
+
|
28
30
|
TempfileFor is a very tiny gem, with only a few lines of code.
|
29
31
|
However, it can save you lines of ugly code.
|
30
32
|
|
@@ -50,6 +52,31 @@ image = Tempfile.for(data) do |tempfile|
|
|
50
52
|
end
|
51
53
|
```
|
52
54
|
|
55
|
+
### blank
|
56
|
+
|
57
|
+
If you want to use TempfileFor without initial data, simply use:
|
58
|
+
|
59
|
+
```ruby
|
60
|
+
Tempfile.blank { |tempfile| `echo -n data >> #{tempfile.path}` }
|
61
|
+
```
|
62
|
+
|
63
|
+
## Encoding
|
64
|
+
|
65
|
+
If you're using ruby 1.9+, TempfileFor preserves the encoding of the supplied data. Thus, the following code
|
66
|
+
|
67
|
+
```ruby
|
68
|
+
Tempfile.for("string1".encode(Encoding::ISO_8859_1)) { ... }
|
69
|
+
```
|
70
|
+
|
71
|
+
will return a string encoded as ISO-8859-1. If you use the blank method, you
|
72
|
+
can supply the desired encoding, such that
|
73
|
+
|
74
|
+
```ruby
|
75
|
+
Tempfile.blank(:encoding => Encoding::BINARY) { ... }
|
76
|
+
```
|
77
|
+
|
78
|
+
will return a string encoded as binary.
|
79
|
+
|
53
80
|
## Contributing
|
54
81
|
|
55
82
|
1. Fork it
|
data/lib/tempfile_for.rb
CHANGED
@@ -29,5 +29,27 @@ class Tempfile
|
|
29
29
|
tempfile.close!
|
30
30
|
end
|
31
31
|
end
|
32
|
+
|
33
|
+
def self.blank(options = {})
|
34
|
+
tempfile = nil
|
35
|
+
|
36
|
+
if RUBY_VERSION < "1.9" || options[:encoding].nil?
|
37
|
+
tempfile = open("tempfile")
|
38
|
+
else
|
39
|
+
tempfile = open("tempfile", :encoding => options[:encoding])
|
40
|
+
end
|
41
|
+
|
42
|
+
begin
|
43
|
+
yield tempfile
|
44
|
+
|
45
|
+
if RUBY_VERSION < "1.9" || options[:encoding].nil?
|
46
|
+
File.read tempfile.path
|
47
|
+
else
|
48
|
+
File.read tempfile.path, :encoding => options[:encoding]
|
49
|
+
end
|
50
|
+
ensure
|
51
|
+
tempfile.close!
|
52
|
+
end
|
53
|
+
end
|
32
54
|
end
|
33
55
|
|
data/lib/tempfile_for/version.rb
CHANGED
data/test/tempfile_for_test.rb
CHANGED
@@ -8,9 +8,21 @@ class TempfileForTest < Test::Unit::TestCase
|
|
8
8
|
assert_equal "string1, string2", Tempfile.for("string1") { |tempfile| `echo -n ', string2' >> #{tempfile.path}` }
|
9
9
|
|
10
10
|
if RUBY_VERSION >= "1.9"
|
11
|
-
string = "string1".force_encoding(
|
11
|
+
string = "string1".force_encoding(Encoding::ISO_8859_1)
|
12
|
+
|
12
13
|
res = Tempfile.for(string) { |tempfile| `echo -n ', string2' >> #{tempfile.path}` }
|
13
|
-
|
14
|
+
|
15
|
+
assert_equal Encoding::ISO_8859_1, res.encoding
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_tempfile_blank
|
20
|
+
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
|
14
26
|
end
|
15
27
|
end
|
16
28
|
end
|
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.
|
4
|
+
version: 0.0.6
|
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-04-
|
12
|
+
date: 2013-04-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|