lita-wolframalpha 1.0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: fae3e88da8a086e629e0c641063d3fe813691cd1
4
+ data.tar.gz: 953bd6f038b5ea667e849728c1557c2f683bb1b9
5
+ SHA512:
6
+ metadata.gz: ddbe295c92654296d8f481cd04ef0a988c8e9606ab615efc8ecc7aeb1737f9dec75f9f0dd9bca765d7cc39d47ac855c25cf0c9836eae85569b695d470e96bbdf
7
+ data.tar.gz: 848ea462d2cc9713a6b315facf3ee5e44f291a8186ad8992849441f0d0c55b6df390d95a94011a0fbda91d35f947e23484f0200d2f320e8e5ab8fb6c5ce42fa4
data/.gitignore ADDED
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ lita_config.rb
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,13 @@
1
+ Copyright (c) 2015-, Simon Lundström <simmel@soy.se>
2
+
3
+ Permission to use, copy, modify, and/or distribute this software for any
4
+ purpose with or without fee is hereby granted, provided that the above
5
+ copyright notice and this permission notice appear in all copies.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
8
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
9
+ FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
10
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
11
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
12
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
13
+ PERFORMANCE OF THIS SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,26 @@
1
+ # lita-wolframalpha
2
+
3
+ Query WolframAlpha®s computational knowledge engine™
4
+
5
+ ## Installation
6
+
7
+ Add lita-wolframalpha to your Lita instance's Gemfile:
8
+
9
+ ``` ruby
10
+ gem "lita-wolframalpha"
11
+ ```
12
+
13
+ ## Configuration
14
+
15
+ ### Required attributes
16
+
17
+ * `appid` (String) - Your API key for WolframAlpha, get it at http://products.wolframalpha.com/api/
18
+
19
+ ## Usage
20
+
21
+ ### `wa` or `wolframalpha`
22
+
23
+ ```
24
+ You: wolframalpha director of movie pi
25
+ Lita: Darren Aronofsky
26
+ ```
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
@@ -0,0 +1,37 @@
1
+ require "lita"
2
+ require "open-uri"
3
+ require "cgi"
4
+ require "nokogiri"
5
+
6
+ module Lita
7
+ module Handlers
8
+ class Wolframalpha < Handler
9
+ # An WolframAlpha API key
10
+ config :appid
11
+
12
+ route(/^w(?:olfram)?a(?:lpha)?\s+(.+)/, :wolframalpha, help: { "(wa|wolframalpha) the query to run" => "Query the WolframAlpha® computational knowledge engine™" })
13
+
14
+ def wolframalpha(response)
15
+ question = response.match_data.captures.join
16
+ query = CGI.escape(question)
17
+ url = "http://api.wolframalpha.com/v2/query?input=#{query}&appid=#{config.appid}"
18
+
19
+ answer = nil
20
+
21
+ begin
22
+ # FIXME Use the version from the gemspec
23
+ doc = Nokogiri::XML(open(url, "User-Agent" => "lita-wolframalpha/#{"1.0"} for Lita (https://lita.io)"))
24
+ answer = doc.css("pod[@id='Result'] plaintext").first.text
25
+ rescue => e
26
+ log.debug e
27
+ raise e
28
+ answer = "Couldn't get a clear answer, see: http://www.wolframalpha.com/input/?i=#{query}"
29
+ end
30
+ response.reply(answer)
31
+ end
32
+
33
+ end
34
+
35
+ Lita.register_handler(Wolframalpha)
36
+ end
37
+ end
@@ -0,0 +1,25 @@
1
+ Gem::Specification.new do |spec|
2
+ spec.name = "lita-wolframalpha"
3
+ spec.version = "1.0.0"
4
+ spec.authors = ["Simon Lundström"]
5
+ spec.email = ["simmel@soy.se"]
6
+ spec.description = "Query WolframAlpha®s computational knowledge engine™"
7
+ spec.summary = "Query WolframAlpha®s computational knowledge engine™"
8
+ spec.homepage = "https://github.com/simmel/lita-wolframalpha"
9
+ spec.license = "ISC license"
10
+ spec.metadata = { "lita_plugin_type" => "handler" }
11
+
12
+ spec.files = `git ls-files`.split($/)
13
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
14
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
15
+ spec.require_paths = ["lib"]
16
+
17
+ spec.add_runtime_dependency "lita", ">= 4.3"
18
+ spec.add_runtime_dependency "nokogiri", "~> 1.5"
19
+
20
+ spec.add_development_dependency "bundler", "~> 1.3"
21
+ spec.add_development_dependency "pry-byebug"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "rack-test"
24
+ spec.add_development_dependency "rspec", ">= 3.0.0"
25
+ end
@@ -0,0 +1,21 @@
1
+ require "lita-wolframalpha"
2
+ require "lita/rspec"
3
+
4
+ # A compatibility mode is provided for older plugins upgrading from Lita 3. Since this plugin
5
+ # was generated with Lita 4, the compatibility mode should be left disabled.
6
+ Lita.version_3_compatibility_mode = false
7
+
8
+ describe Lita::Handlers::Wolframalpha, lita_handler: true do
9
+
10
+ before do
11
+ require_relative '../lita_config'
12
+ end
13
+
14
+ it { is_expected.to route_command("wolframalpha director of movie pi").to(:wolframalpha) }
15
+
16
+ it "director of movie pi" do
17
+ send_message("wolframalpha director of movie pi")
18
+ expect(replies.last).to eq("Darren Aronofsky")
19
+ end
20
+
21
+ end
metadata ADDED
@@ -0,0 +1,152 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lita-wolframalpha
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Simon Lundström
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-06-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: lita
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '4.3'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '4.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: nokogiri
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '1.5'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '1.5'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry-byebug
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rack-test
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: 3.0.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: 3.0.0
111
+ description: Query WolframAlpha®s computational knowledge engine™
112
+ email:
113
+ - simmel@soy.se
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - .gitignore
119
+ - Gemfile
120
+ - LICENSE
121
+ - README.md
122
+ - Rakefile
123
+ - lib/lita-wolframalpha.rb
124
+ - lita-wolframalpha.gemspec
125
+ - spec/wolframalpha_spec.rb
126
+ homepage: https://github.com/simmel/lita-wolframalpha
127
+ licenses:
128
+ - ISC license
129
+ metadata:
130
+ lita_plugin_type: handler
131
+ post_install_message:
132
+ rdoc_options: []
133
+ require_paths:
134
+ - lib
135
+ required_ruby_version: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - '>='
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ required_rubygems_version: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - '>='
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ requirements: []
146
+ rubyforge_project:
147
+ rubygems_version: 2.0.14
148
+ signing_key:
149
+ specification_version: 4
150
+ summary: Query WolframAlpha®s computational knowledge engine™
151
+ test_files:
152
+ - spec/wolframalpha_spec.rb