data-writer 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -59,3 +59,4 @@ If this method is called and DATA is not defined then it will raise a DATANotFou
59
59
  The file objects returned by this method have their #rewind method changed so that it seeks back to
60
60
  the start of DATA, and not back to the start of the file.
61
61
 
62
+
data/data-writer.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'data-writer'
3
- s.version = '0.9.1'
4
- s.date = '2012-07-18'
3
+ s.version = '0.9.2'
4
+ s.date = '2012-07-30'
5
5
  s.summary = "Allows you to write to DATA"
6
6
  s.description = "Normally you can only read from DATA but with data-writer you can also write to it. This allows you to easily persist data in a source file."
7
7
  s.authors = ["Kalle Lindstrom"]
data/lib/data-writer.rb CHANGED
@@ -1,3 +1,4 @@
1
+ #encoding: utf-8
1
2
 
2
3
  class DATAWriter
3
4
 
@@ -43,11 +44,13 @@ class DATAWriter
43
44
  #
44
45
  def self.get_valid_string_mode(mode)
45
46
  if mode =~ /w/
46
- clear_end # truncate after __END__ only.
47
- valid_mode = 0
48
- valid_mode |= mode.include?("+") ? File::RDWR : File::RDONLY
49
- valid_mode |= File::BINARY if mode.include?("b")
50
- valid_mode
47
+ clear_end # truncate after __END__ only.
48
+ if mode.include?("+")
49
+ mode.sub!("w", "r")
50
+ else
51
+ mode.sub!("w", "r+")
52
+ end
53
+ mode
51
54
  else
52
55
  mode
53
56
  end
@@ -79,15 +82,19 @@ class DATAWriter
79
82
  # Helper method to create a file that works in both 1.8 and 1.9 and different implementations.
80
83
  #
81
84
  def self.create_file(path, mode_string, opt = {})
85
+ ruby = RUBY_VERSION[/\d\.\d\.\d/]
86
+
82
87
  if RUBY_PLATFORM =~ /java/i
83
- if RUBY_VERSION =~ /1\.9\.3/
84
- File.new(path, mode_string, opt) # Only JRuby 1.7 seem to implement this method the 1.9 way.
88
+ if ruby >= "1.9.3"
89
+ opt = {:encoding => __ENCODING__}.merge(opt) # Make sure the IO encoding is the same as the source encoding.
90
+ File.new(path, mode_string, opt) # Only JRuby 1.7 seem to implement this method the 1.9 way.
85
91
  else
86
92
  File.new(path, mode_string)
87
93
  end
88
94
 
89
95
  else
90
- if RUBY_VERSION =~ /1\.9/
96
+ if ruby >= "1.9.0"
97
+ opt = {:encoding => __ENCODING__}.merge(opt)
91
98
  File.new(path, mode_string, opt)
92
99
  else
93
100
  File.new(path, mode_string)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data-writer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.9.2
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: 2012-07-18 00:00:00.000000000 Z
12
+ date: 2012-07-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake