lib/protobuf/compiler/compiler.rb in ruby_protobuf-0.3.2 vs lib/protobuf/compiler/compiler.rb in ruby_protobuf-0.3.3
- old
+ new
@@ -13,28 +13,22 @@
create_message proto_file, proto_dir, out_dir, file_create
create_rpc proto_file, proto_dir, out_dir, file_create
end
def create_message(proto_file, proto_dir='.', out_dir='.', file_create=true)
- out_dir.sub! %r{/$}, ''
- proto_dir.sub! %r{/$}, ''
- rb_file =
- if proto_file =~ %r{^/}
- then "#{out_dir}/#{proto_file.split('/').last.sub(/\.proto$/, '.pb.rb')}"
- else "#{out_dir}/#{proto_file.sub(/\.proto$/, '.pb.rb')}" end
+ rb_file = File.join(out_dir, File.basename(proto_file).sub(/\.[^\0]*\z/, '') + '.pb.rb')
proto_path = validate_existence proto_file, proto_dir
message_visitor = Protobuf::Visitor::CreateMessageVisitor.new proto_file, proto_dir, out_dir
File.open proto_path, 'r' do |file|
message_visitor.visit Protobuf::ProtoParser.new.parse(file)
end
message_visitor.create_files rb_file, out_dir, file_create
end
def create_rpc(proto_file, proto_dir='.', out_dir='.', file_create=true)
- message_file = "#{out_dir}/#{proto_file.sub(/\.proto$/, '.pb.rb')}"
- out_dir = "#{out_dir}/#{File.dirname proto_file}"
+ message_file = File.join(out_dir, File.basename(proto_file).sub(/\.[^\0]*\z/, '') + '.pb.rb')
proto_path = validate_existence proto_file, proto_dir
rpc_visitor = Protobuf::Visitor::CreateRpcVisitor.new
File.open proto_path, 'r' do |file|
rpc_visitor.visit Protobuf::ProtoParser.new.parse(file)
@@ -42,13 +36,17 @@
rpc_visitor.create_files message_file, out_dir, file_create
end
def validate_existence(path, base_dir)
if File.exist? path
- elsif File.exist?(path = "#{base_dir or '.'}/#{path}")
+ path
else
- raise ArgumentError.new("File does not exist: #{path}")
+ newpath = File.join(base_dir, path)
+ if File.exist? newpath
+ newpath
+ else
+ raise ArgumentError.new("File does not exist: #{path}")
+ end
end
- path
end
end
end