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