ideone-ruby-api 1.0.2 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.2
1
+ 1.1.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{ideone-ruby-api}
8
- s.version = "1.0.2"
8
+ s.version = "1.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kenny Meyer"]
12
- s.date = %q{2011-07-11}
12
+ s.date = %q{2011-07-12}
13
13
  s.email = %q{knny.myer@gmail.com}
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE.txt",
@@ -7,9 +7,11 @@
7
7
  # License:: Distributes under the same terms as Ruby
8
8
 
9
9
  require 'savon' # SOAP Client
10
+ require 'logger'
11
+ require 'pp'
10
12
 
11
13
  Savon.configure do |config|
12
- config.log = false # disable logging
14
+ config.log = false # TODO: Make this a setting
13
15
  end
14
16
 
15
17
 
@@ -33,6 +35,10 @@ class Ideone
33
35
  :pass => @password,
34
36
  }
35
37
  @languages_cache = nil
38
+ # Set up logger
39
+ @log = Logger.new(STDOUT)
40
+ @log.level = Logger::WARN
41
+
36
42
  end
37
43
 
38
44
  # Create a submission and upload it to Ideone.
@@ -45,7 +51,7 @@ class Ideone
45
51
  # * std_input: the string to pass to the program on stdin
46
52
  # * run: a boolean flag to signifying if Ideone should compile and
47
53
  # run the program
48
- # * private: a boolean flag to toggle visibility of code to others
54
+ # * is_private: a boolean flag to toggle visibility of code to others
49
55
  #
50
56
  # Returns
51
57
  # -------
@@ -54,16 +60,16 @@ class Ideone
54
60
  # unique id of the program. The URL of the submission is
55
61
  # http://ideone.com/LINK.
56
62
  def create_submission(source_code, lang_id, std_input="", run=true,
57
- private=false)
63
+ is_private=false)
58
64
  request_body = @request_body
59
65
  request_body[:sourceCode] = source_code
60
66
  request_body[:language] = lang_id
61
67
  request_body[:input] = std_input
62
68
  request_body[:run] = run
63
- request_body[:private] = private
69
+ request_body[:private] = is_private
64
70
  response = @client.request :createSubmission, :body => @request_body
65
71
 
66
- return response.to_hash[:create_submission_response][:return][:item]
72
+ return pp response.to_hash[:create_submission_response][:return][:item]
67
73
  end
68
74
 
69
75
  # Given the unique link of a submission, returns its current status.
@@ -104,7 +110,7 @@ class Ideone
104
110
  request_body[:link] = link
105
111
  response = @client.request :getSubmissionStatus, :body => request_body
106
112
 
107
- return response.to_hash[:get_submission_status][:return][:item]
113
+ return pp response.to_hash[:get_submission_status_response][:return][:item]
108
114
  end
109
115
 
110
116
  # Return a hash of requested details about a submission with the id
@@ -120,20 +126,26 @@ class Ideone
120
126
  # * with_stderr: request the error output
121
127
  # * with_cmpinfo: request compilation flags
122
128
  def submission_details(link,
123
- with_source=true,
124
- with_input=true,
125
- with_output=true,
126
- with_stderr=true,
127
- with_cmpinfo=true)
129
+ with_source=true,
130
+ with_input=true,
131
+ with_output=true,
132
+ with_stderr=true,
133
+ with_cmpinfo=true)
128
134
  request_body = @request_body
135
+ request_body[:link] = link
129
136
  request_body[:withSource] = with_source
130
137
  request_body[:withInput] = with_input
131
138
  request_body[:withOutput] = with_output
132
139
  request_body[:withStderr] = with_stderr
133
140
  request_body[:withCmpinfo] = with_cmpinfo
134
- response = @client.request :getSubmissionDetails, :body => request_body
141
+ begin
142
+ response = @client.request :getSubmissionDetails, :body => request_body
143
+ rescue Savon::SOAP::Fault => fault
144
+ @log.warn fault.to_s
145
+ raise fault
146
+ end
135
147
 
136
- return response.to_hash[:get_submission_details][:return][:item]
148
+ return pp response.to_hash[:get_submission_details_response][:return][:item]
137
149
  end
138
150
 
139
151
  # Get a list of supported languages and cache it.
@@ -142,15 +154,14 @@ class Ideone
142
154
  response = @client.request :getLanguages, :body => @request_body
143
155
  languages = response.to_hash[:get_languages_response][:return][:item]
144
156
  @languages_cache = languages
145
- return languages
146
157
  end
147
- return @languages_cache
158
+ return pp @languages_cache
148
159
  end
149
160
 
150
161
  # A test function that always returns the same thing.
151
162
  def test
152
163
  response = @client.request :testFunction, :body => @request_body
153
164
 
154
- return response.to_hash[:test_function_response][:return][:item]
165
+ return pp response.to_hash[:test_function_response][:return][:item]
155
166
  end
156
167
  end
@@ -16,6 +16,7 @@ class TestIdeoneRubyApi < Test::Unit::TestCase
16
16
  instance = Ideone.new(USER, PASS)
17
17
 
18
18
  result = instance.test
19
+ puts result
19
20
  assert_not_nil result
20
21
  end
21
22
 
@@ -31,7 +32,9 @@ class TestIdeoneRubyApi < Test::Unit::TestCase
31
32
  def test_create_submission
32
33
  instance = Ideone.new(USER, PASS)
33
34
 
34
- code = "puts 'hello, world'"
35
+ code = <<-eos
36
+ puts "This is a test submission created from ideone-ruby-api. https://github.com/kennym/ideone-gem/blob/master/lib/ideone.rb"
37
+ eos
35
38
  result = instance.create_submission(code, 17)
36
39
 
37
40
  puts result
@@ -41,7 +44,7 @@ class TestIdeoneRubyApi < Test::Unit::TestCase
41
44
  def test_submission_status
42
45
  instance = Ideone.new(USER, PASS)
43
46
 
44
- result = instance.submission_status("ZUIWF")
47
+ result = instance.submission_status("VWMD7")
45
48
  puts result
46
49
  assert_not_nil result
47
50
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ideone-ruby-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-07-11 00:00:00.000000000 -04:00
12
+ date: 2011-07-12 00:00:00.000000000 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: savon
17
- requirement: &12370800 !ruby/object:Gem::Requirement
17
+ requirement: &13829920 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *12370800
25
+ version_requirements: *13829920
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: shoulda
28
- requirement: &12369940 !ruby/object:Gem::Requirement
28
+ requirement: &13828660 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *12369940
36
+ version_requirements: *13828660
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: bundler
39
- requirement: &12369080 !ruby/object:Gem::Requirement
39
+ requirement: &13827500 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 1.0.0
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *12369080
47
+ version_requirements: *13827500
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: jeweler
50
- requirement: &12368000 !ruby/object:Gem::Requirement
50
+ requirement: &13826060 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ~>
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: 1.6.4
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *12368000
58
+ version_requirements: *13826060
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: rcov
61
- requirement: &12366640 !ruby/object:Gem::Requirement
61
+ requirement: &13824880 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: '0'
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *12366640
69
+ version_requirements: *13824880
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: rspec
72
- requirement: &12363520 !ruby/object:Gem::Requirement
72
+ requirement: &13799340 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,7 +77,7 @@ dependencies:
77
77
  version: '0'
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *12363520
80
+ version_requirements: *13799340
81
81
  description:
82
82
  email: knny.myer@gmail.com
83
83
  executables: []
@@ -112,7 +112,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
112
112
  version: '0'
113
113
  segments:
114
114
  - 0
115
- hash: -560738434367915780
115
+ hash: 2345481423367782386
116
116
  required_rubygems_version: !ruby/object:Gem::Requirement
117
117
  none: false
118
118
  requirements: