judge_system 1.6.2 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ba3f139032a07d9ecd980e4ff48da971e44ff90b
4
- data.tar.gz: 68edac85951112a2271a3520095ca33538ff8a1a
3
+ metadata.gz: b660aa3bec0dbf79d34e989d520db2ac8e054297
4
+ data.tar.gz: e89140416835964c8c316542e7f024b0533a5684
5
5
  SHA512:
6
- metadata.gz: b61e6e414e6d962a1338784b98eed2d27db8c78cac8f44048a19fcd9ea6b2a49c73ae36e8cdd5a8e7c03c1df34c01b1ac3a51b955a0ea369b7c49ad4d7884c39
7
- data.tar.gz: ffa7e76dd59039997ae016acade1522869b046dab6e7ced59de2b8b2b4004901e3d835dee20bf2065368ba94552fdb98f452fe8a55b61ba5d97998dc002e223a
6
+ metadata.gz: e74f4e301741e5f9ffbc887f57afdaef066458526b811b0c86419ed87cdcc8e1728db0fef161820a6d806566fcc3a8a726bd86d962142f6dc383a4df2ab05043
7
+ data.tar.gz: 4e055ca45616f1278bc6eb54c539381c7ece5a495b9f79ac672524c96d48b338665b1f4572eb9b16ac9b56a35961b1747d7e0a5d069c2b104e0e5752c7d69a6f
data/README.md CHANGED
@@ -1,11 +1,11 @@
1
- [![wercker status](https://app.wercker.com/status/0964573b38729ce98909559e3779cca5/s/master "wercker status")](https://app.wercker.com/project/byKey/0964573b38729ce98909559e3779cca5)
1
+ [![wercker status](https://app.wercker.com/status/0964573b38729ce98909559e3779cca5/m/master "wercker status")](https://app.wercker.com/project/byKey/0964573b38729ce98909559e3779cca5)
2
2
  # JudgeSystem
3
3
 
4
4
  Judge_system is a compile and judge system for online judge.
5
5
  This system work on [melpon/wandbox](https://github.com/melpon/wandbox).
6
6
  That means you don't have to concern about dangerous codes if you use judge_system.
7
7
  Judge_system returns four results ('AC', 'WA', 'RE', 'TLE').
8
- Now, it can compile c, c++, ruby, go, python3.
8
+ Now, it can compile c, c++, ruby, go, python3, swift.
9
9
 
10
10
  ## Installation
11
11
 
@@ -31,7 +31,7 @@ require 'judge_system'
31
31
  JudgeSystem.judge_result lang: (string text), code: (string text), answer: (string text), stdin: (string text), time: (num sec)
32
32
 
33
33
  #Lang is the extension of languages (example: c is 'c', c++ is 'cpp', ruby is 'rb', go is 'go', python3 is 'py').
34
- #You can't use more than 2M byte code and input.
34
+ #You can't use more than 6M byte code and input.
35
35
 
36
36
  ```
37
37
 
data/judge_system.gemspec CHANGED
@@ -27,7 +27,8 @@ Gem::Specification.new do |spec|
27
27
  spec.bindir = "exe"
28
28
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
29
  spec.require_paths = ["lib"]
30
-
30
+ spec.add_development_dependency "rbzip2"
31
+ spec.add_development_dependency "ffi"
31
32
  spec.add_development_dependency "bundler", "~> 1.13"
32
33
  spec.add_development_dependency "rake", "~> 10.0"
33
34
  spec.add_development_dependency "rspec", "~> 3.0"
@@ -1,6 +1,13 @@
1
- require 'zlib'
2
1
  require 'base64'
3
- stdin = Zlib::Inflate.new(Zlib::MAX_WBITS + 32).inflate(Base64.decode64($stdin.read)).split("\n<$><*><$>\n")
2
+
3
+ File.open("stdin.txt.bz2", "wb") do |file|
4
+ file.write Base64.decode64 $stdin.read
5
+ file.close
6
+ end
7
+
8
+ system("bunzip2 stdin.txt.bz2")
9
+
10
+ stdin = File.open("stdin.txt").read.split("\n<$><*><$>\n")
4
11
  code = stdin[0]
5
12
  input = stdin[1]
6
13
  time = stdin[2]
@@ -1,6 +1,13 @@
1
- require 'zlib'
2
1
  require 'base64'
3
- stdin = Zlib::Inflate.new(Zlib::MAX_WBITS + 32).inflate(Base64.decode64($stdin.read)).split("\n<$><*><$>\n")
2
+
3
+ File.open("stdin.txt.bz2", "wb") do |file|
4
+ file.write Base64.decode64 $stdin.read
5
+ file.close
6
+ end
7
+
8
+ system("bunzip2 stdin.txt.bz2")
9
+
10
+ stdin = File.open("stdin.txt").read.split("\n<$><*><$>\n")
4
11
  code = stdin[0]
5
12
  input = stdin[1]
6
13
  time = stdin[2]
@@ -1,6 +1,13 @@
1
- require 'zlib'
2
1
  require 'base64'
3
- stdin = Zlib::Inflate.new(Zlib::MAX_WBITS + 32).inflate(Base64.decode64($stdin.read)).split("\n<$><*><$>\n")
2
+
3
+ File.open("stdin.txt.bz2", "wb") do |file|
4
+ file.write Base64.decode64 $stdin.read
5
+ file.close
6
+ end
7
+
8
+ system("bunzip2 stdin.txt.bz2")
9
+
10
+ stdin = File.open("stdin.txt").read.split("\n<$><*><$>\n")
4
11
  code = stdin[0]
5
12
  input = stdin[1]
6
13
  time = stdin[2]
@@ -1,6 +1,13 @@
1
- require 'zlib'
2
1
  require 'base64'
3
- stdin = Zlib::Inflate.new(Zlib::MAX_WBITS + 32).inflate(Base64.decode64($stdin.read)).split("\n<$><*><$>\n")
2
+
3
+ File.open("stdin.txt.bz2", "wb") do |file|
4
+ file.write Base64.decode64 $stdin.read
5
+ file.close
6
+ end
7
+
8
+ system("bunzip2 stdin.txt.bz2")
9
+
10
+ stdin = File.open("stdin.txt").read.split("\n<$><*><$>\n")
4
11
  code = stdin[0]
5
12
  input = stdin[1]
6
13
  time = stdin[2]
@@ -1,6 +1,13 @@
1
- require 'zlib'
2
1
  require 'base64'
3
- stdin = Zlib::Inflate.new(Zlib::MAX_WBITS + 32).inflate(Base64.decode64($stdin.read)).split("\n<$><*><$>\n")
2
+
3
+ File.open("stdin.txt.bz2", "wb") do |file|
4
+ file.write Base64.decode64 $stdin.read
5
+ file.close
6
+ end
7
+
8
+ system("bunzip2 stdin.txt.bz2")
9
+
10
+ stdin = File.open("stdin.txt").read.split("\n<$><*><$>\n")
4
11
  code = stdin[0]
5
12
  input = stdin[1]
6
13
  time = stdin[2]
@@ -1,6 +1,13 @@
1
- require 'zlib'
2
1
  require 'base64'
3
- stdin = Zlib::Inflate.new(Zlib::MAX_WBITS + 32).inflate(Base64.decode64($stdin.read)).split("\n<$><*><$>\n")
2
+
3
+ File.open("stdin.txt.bz2", "wb") do |file|
4
+ file.write Base64.decode64 $stdin.read
5
+ file.close
6
+ end
7
+
8
+ system("bunzip2 stdin.txt.bz2")
9
+
10
+ stdin = File.open("stdin.txt").read.split("\n<$><*><$>\n")
4
11
  code = stdin[0]
5
12
  input = stdin[1]
6
13
  time = stdin[2]
data/lib/judge_system.rb CHANGED
@@ -30,7 +30,7 @@ module JudgeSystem
30
30
  sys = File.open("#{path}/compile_systems/#{lang}_system.rb", "r").read
31
31
  data = nil
32
32
  spliter = "\n<$><*><$>\n"
33
- stdin = ZlibInput.zlib(code + spliter + input + spliter + ("%f" % time))
33
+ stdin = BZip2Input.compress(code + spliter + input + spliter + ("%f" % time))
34
34
  begin
35
35
  data = compile( compiler: "ruby-head", code: sys, stdin: stdin )
36
36
  rescue
@@ -1,3 +1,3 @@
1
1
  module JudgeSystem
2
- VERSION = "1.6.2"
2
+ VERSION = "1.7.0"
3
3
  end
data/lib/zlib_input.rb CHANGED
@@ -1,9 +1,12 @@
1
- require 'zlib'
1
+ require 'rbzip2'
2
2
  require 'base64'
3
- module ZlibInput
4
- def zlib input
5
- data = Zlib::Deflate.deflate(input, Zlib::BEST_COMPRESSION)
6
- Base64.encode64(data)
3
+ module BZip2Input
4
+ def compress input
5
+ string = StringIO.new
6
+ bz2 = RBzip2::FFI::Compressor.new string
7
+ bz2.write input
8
+ bz2.close
9
+ Base64.encode64(string.string)
7
10
  end
8
- module_function :zlib
11
+ module_function :compress
9
12
  end
metadata CHANGED
@@ -1,15 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: judge_system
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.2
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - getty104
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-29 00:00:00.000000000 Z
11
+ date: 2017-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rbzip2
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: ffi
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: bundler
15
43
  requirement: !ruby/object:Gem::Requirement