ideone-ruby-api 1.0.2 → 1.1.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.
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: