spruz 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/spruz.rb +1 -0
- data/lib/spruz/version.rb +1 -1
- data/lib/spruz/write.rb +20 -0
- data/lib/spruz/xt.rb +1 -0
- data/lib/spruz/xt/write.rb +11 -0
- metadata +5 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/lib/spruz.rb
CHANGED
data/lib/spruz/version.rb
CHANGED
data/lib/spruz/write.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
module Spruz
|
2
|
+
module Write
|
3
|
+
# Write to a file atomically
|
4
|
+
def write(filename, content = nil, mode = 'w')
|
5
|
+
temp = File.new(filename + ".tmp.#$$.#{Time.now.to_f}", mode)
|
6
|
+
if content.nil? and block_given?
|
7
|
+
yield temp
|
8
|
+
elsif !content.nil?
|
9
|
+
temp.write content
|
10
|
+
else
|
11
|
+
raise ArgumentError, "either content or block argument required"
|
12
|
+
end
|
13
|
+
temp.close
|
14
|
+
File.rename temp.path, filename
|
15
|
+
ensure
|
16
|
+
temp and !temp.closed? and temp.close
|
17
|
+
File.file?(temp.path) and File.unlink temp.path
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/spruz/xt.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 2
|
9
|
+
version: 0.1.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Florian Frank
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-06-14 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|
@@ -46,6 +46,7 @@ files:
|
|
46
46
|
- lib/spruz/bijection.rb
|
47
47
|
- lib/spruz/module_group.rb
|
48
48
|
- lib/spruz/memoize.rb
|
49
|
+
- lib/spruz/write.rb
|
49
50
|
- lib/spruz/generator.rb
|
50
51
|
- lib/spruz/hash_union.rb
|
51
52
|
- lib/spruz/version.rb
|
@@ -61,6 +62,7 @@ files:
|
|
61
62
|
- lib/spruz/xt/p.rb
|
62
63
|
- lib/spruz/xt/blank.rb
|
63
64
|
- lib/spruz/xt/symbol_to_proc.rb
|
65
|
+
- lib/spruz/xt/write.rb
|
64
66
|
- lib/spruz/xt/hash_union.rb
|
65
67
|
- lib/spruz/xt/full.rb
|
66
68
|
- lib/spruz/xt/irb.rb
|