Skip to content

Commit

Permalink
write to temporary files in binmode for windows compatibility, fixes #4
Browse files Browse the repository at this point in the history
  • Loading branch information
codekitchen committed Dec 19, 2010
1 parent 03333ec commit 0428bd2
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 0 deletions.
1 change: 1 addition & 0 deletions bin/ruby-protoc
Expand Up @@ -33,6 +33,7 @@ require 'protocol_buffers'
require 'protocol_buffers/compiler'

protocfile = Tempfile.new("ruby-protoc")
protocfile.binmode
ProtocolBuffers::Compiler.compile(protocfile.path, filenames, :include_dirs => include_dirs)
descriptor_set = FileDescriptorSet.parse(protocfile)
protocfile.close(true)
Expand Down
3 changes: 3 additions & 0 deletions lib/protocol_buffers/compiler.rb
Expand Up @@ -22,12 +22,14 @@ def self.compile_and_load(input_files, opts = {})
require 'protocol_buffers/compiler/file_descriptor_to_ruby'

tempfile = Tempfile.new("protocol_buffers_spec")
tempfile.binmode
compile(tempfile.path, input_files, opts)
descriptor_set = FileDescriptorSet.parse(tempfile)
tempfile.close(true)
descriptor_set.file.each do |file|
parsed = FileDescriptorToRuby.new(file)
output = Tempfile.new("protocol_buffers_spec_parsed")
output.binmode
parsed.write(output)
output.flush
load output.path
Expand All @@ -39,6 +41,7 @@ def self.compile_and_load(input_files, opts = {})
def self.compile_and_load_string(input, opts = {})
require 'tempfile'
tempfile = Tempfile.new("protocol_buffers_load_string")
tempfile.binmode
tempfile.write(input)
tempfile.flush
(opts[:include_dirs] ||= []) << File.dirname(tempfile.path)
Expand Down

0 comments on commit 0428bd2

Please sign in to comment.