judge0 0.0.7 → 0.0.8

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
  SHA256:
3
- metadata.gz: 545726a9f95c2a9c33f8683225584c494d2b5f4dab7fa6dce81d0d31a676eb4c
4
- data.tar.gz: df780eb8d9636aa9ba111311771422a7124ef51357da6e5a456ba77792e418c3
3
+ metadata.gz: be6cceb98b75c3c157176a555aeda2826744f420b0afb7542874ed62b19b1ee8
4
+ data.tar.gz: 4601235293d68af691cd420ce9b572f2dbe28bc965b099fef32c2491276ab743
5
5
  SHA512:
6
- metadata.gz: 3782230d10a4446ae5cc2dd0723ccf2df9c360c03d730ea0755eb56fbfbec45475ddd548e51ee416367fc7ef90c7ff9049044b227e7f76772ca17f308d219c61
7
- data.tar.gz: 7b6f15240c695c02be408855a42ae20defd4fee9819d1b98eae5eb54c74dbc1ec8c04de7ecbdfd1f7389be0fdb5169a390c3d878b13fd76b2ba9c5c6c572e074
6
+ metadata.gz: 4b806ca2d4ad2adab6250a7c1e8a70fab3f5197100f98ceb2fc1a08713fa02c619981c0fbe85a7b3b94e8cf4b185ee542c6f87b7a2c66f777078ef64ac19c6c5
7
+ data.tar.gz: 4db48c17260a6a6b1ea60537e626f194eced29d85bf3cba25051d8e8975e27b623d1c1cbbfa46868871cdf56a77ff122dc03bb4923cfbf3bc00e3a4f8592872d
data/README.md CHANGED
@@ -25,6 +25,7 @@ gem 'judge0'
25
25
 
26
26
  ### simple code execution
27
27
 
28
+
28
29
  ```ruby
29
30
  sub = Judge0::Submission.new do |config|
30
31
  config.source_code = 'p "Hello world!"'
@@ -35,6 +36,28 @@ sub.run # hash of the submission result
35
36
  sub.stdout # output
36
37
  ```
37
38
 
39
+ ### wait the response on another thread
40
+
41
+ ```ruby
42
+ sub = Judge0::Submission.new do |config|
43
+ config.source_code = 'sleep 2; p "Hello world!"'
44
+ config.language_id = 72
45
+ end
46
+
47
+ sub.get_token
48
+
49
+ t = Thread.new {
50
+ sub.wait_response!
51
+ }
52
+
53
+ puts "🛏️ waiting..." # doing something while the code is running
54
+
55
+ t.join
56
+
57
+ puts sub.output
58
+
59
+ ```
60
+
38
61
  ### tests battery execution
39
62
 
40
63
  ```ruby
@@ -117,4 +140,4 @@ pp Judge0::config_info
117
140
 
118
141
  ```bash
119
142
  gem push judge0-x.x.x.gem
120
- ```
143
+ ```
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'judge0'
3
- s.version = '0.0.7'
3
+ s.version = '0.0.8'
4
4
  s.date = '2020-01-20'
5
5
  s.summary = 'ruby interface for judge0 api.'
6
6
  s.description = 'ruby interface for judge0 api.'
@@ -4,7 +4,7 @@ require 'json'
4
4
  require 'submission.rb'
5
5
 
6
6
  module Judge0
7
- @@base_url = 'https://api.judge0.com/'
7
+ @@base_url = 'http://roupi.xyz:3000/'
8
8
 
9
9
  def self.base_url=(url)
10
10
  @@base_url = url
@@ -38,4 +38,4 @@ module Judge0
38
38
  resp = Faraday.get(url "/languages/#{id}")
39
39
  JSON.parse(resp.body)
40
40
  end
41
- end
41
+ end
@@ -19,18 +19,9 @@ module Judge0
19
19
  end
20
20
 
21
21
  def run
22
- res = wait_response(get_token)
22
+ get_token
23
23
 
24
- @stdout = res['stdout']
25
- @time = res['time'].to_f
26
- @memory = res['memory']
27
- @stderr = res['stderr']
28
- @compile_out = res['compile_out']
29
- @message = res['message']
30
- @status_id = res['status']['id']
31
- @status_description = res['status']['description']
32
-
33
- result
24
+ wait_response!
34
25
  end
35
26
 
36
27
  def tests_battery (tests)
@@ -48,7 +39,7 @@ module Judge0
48
39
  get_token
49
40
  end
50
41
  tests.map do |test|
51
- wait_response(test)
42
+ wait_response
52
43
  end
53
44
  end
54
45
 
@@ -75,8 +66,6 @@ module Judge0
75
66
  msg
76
67
  end
77
68
 
78
- private
79
-
80
69
  def to_hash
81
70
  Hash[
82
71
  instance_variables.map do |name|
@@ -85,18 +74,35 @@ module Judge0
85
74
  ]
86
75
  end
87
76
 
77
+ def to_submission(response)
78
+ @stdout = response['stdout']
79
+ @time = response['time'].to_f
80
+ @memory = response['memory']
81
+ @stderr = response['stderr']
82
+ @compile_out = response['compile_out']
83
+ @message = response['message']
84
+ @status_id = response['status']['id']
85
+ @status_description = response['status']['description']
86
+
87
+ result
88
+ end
89
+
88
90
  def get_token
89
91
  resp = Faraday.post(Judge0.url('/submissions/?base64_encoded=false&wait=false'), to_hash)
90
92
  @token = JSON.parse(resp.body)['token']
91
93
  end
92
94
 
93
- def wait_response(token)
95
+ def wait_response
94
96
  begin
95
- resp = Faraday.get(Judge0.url("/submissions/#{token}"))
97
+ resp = Faraday.get(Judge0.url("/submissions/#{@token}"))
96
98
  body = JSON.parse(resp.body)
97
99
  puts "waiting: #{token} - #{body['status']['description']}" unless ENV['RAILS_ENV'] == 'test'
98
100
  end while body['status']['id'] <= 2
99
101
  body
100
102
  end
103
+
104
+ def wait_response!
105
+ to_submission(wait_response)
106
+ end
101
107
  end
102
108
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: judge0
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Breno Nunes