wolfram-alpha 0.1

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.
@@ -0,0 +1,17 @@
1
+ # encoding: utf-8
2
+
3
+ require 'open-uri'
4
+ require 'nokogiri'
5
+
6
+ require 'wolfram-alpha/pod'
7
+ require 'wolfram-alpha/client'
8
+ require 'wolfram-alpha/subpod'
9
+ require 'wolfram-alpha/response'
10
+
11
+ module WolframAlpha
12
+ RequestURI = "http://api.wolframalpha.com/v2/query?input=%s&appid=%s"
13
+
14
+ class << Version = [1,0]
15
+ def to_s; join '.' end
16
+ end
17
+ end
@@ -0,0 +1,21 @@
1
+ # encoding: utf-8
2
+
3
+ module WolframAlpha
4
+ class Client
5
+ attr_accessor :app_id
6
+
7
+ def initialize app_id = nil
8
+ @app_id = app_id
9
+ end
10
+
11
+ def compute query
12
+ document = Nokogiri::XML open WolframAlpha::RequestURI % [URI.escape(query), @app_id]#File.open("/home/mk/Documents/response.xml")
13
+
14
+ if document.root.name == "queryresult"
15
+ Response.new document
16
+ else
17
+ raise "Invalid response"
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,13 @@
1
+ # encoding: utf-8
2
+
3
+ module WolframAlpha
4
+ class Pod
5
+ attr_reader :subpods
6
+
7
+ def initialize element
8
+ @element = element
9
+
10
+ @subpods = element.xpath("subpod").map { |element| Subpod.new self, element }
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # encoding: utf-8
2
+
3
+ module WolframAlpha
4
+ class Response
5
+ attr_reader :pods
6
+
7
+ def initialize document = nil
8
+ @document = document
9
+
10
+ @pods = @document.xpath("//pod").map { |element| Pod.new element }
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # encoding: utf-8
2
+
3
+ module WolframAlpha
4
+ class Subpod
5
+ def initialize pod, element
6
+ @pod, @element = pod, element
7
+ end
8
+
9
+ def text
10
+ @element.xpath("plaintext").text
11
+ end
12
+ end
13
+ end
metadata ADDED
@@ -0,0 +1,69 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wolfram-alpha
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ version: "0.1"
9
+ platform: ruby
10
+ authors:
11
+ - Mikkel Kroman
12
+ autorequire:
13
+ bindir: executables
14
+ cert_chain: []
15
+
16
+ date: 2011-01-27 00:00:00 +01:00
17
+ default_executable:
18
+ dependencies: []
19
+
20
+ description:
21
+ email: mk@maero.dk
22
+ executables: []
23
+
24
+ extensions: []
25
+
26
+ extra_rdoc_files: []
27
+
28
+ files:
29
+ - library/wolfram-alpha/client.rb
30
+ - library/wolfram-alpha/response.rb
31
+ - library/wolfram-alpha/pod.rb
32
+ - library/wolfram-alpha/subpod.rb
33
+ - library/wolfram-alpha.rb
34
+ has_rdoc: true
35
+ homepage:
36
+ licenses: []
37
+
38
+ post_install_message:
39
+ rdoc_options: []
40
+
41
+ require_paths:
42
+ - library
43
+ required_ruby_version: !ruby/object:Gem::Requirement
44
+ none: false
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ segments:
49
+ - 1
50
+ - 9
51
+ - 1
52
+ version: 1.9.1
53
+ required_rubygems_version: !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ segments:
59
+ - 0
60
+ version: "0"
61
+ requirements: []
62
+
63
+ rubyforge_project:
64
+ rubygems_version: 1.3.7
65
+ signing_key:
66
+ specification_version: 3
67
+ summary: Wolfram|Alpha API implementation.
68
+ test_files: []
69
+