wise 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: bc66c5ea74b929be6c2faec1ac32aa51d09e0e34
4
+ data.tar.gz: ab3381a13ea13cc82f18dbd2eda3c982332bb320
5
+ SHA512:
6
+ metadata.gz: daa4e6c22314bfc025b66999a8f2ea461d467d0961fe99ab1673fc7465780f66afa2c5790933a372bb06236897f57b9cbaa489417d89092a79101eb3774918b4
7
+ data.tar.gz: e19178c20e087d9ba69589f39c32277d7f644916ce79e5ecbf9b587442a07f3f0a1df4e9ee17a4ef5979e140d5e6c84fd90fe5b3669f4d8cce6911eb9018f9d3
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ Copyright (c) <2013>, <wise.io LLC>
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without modification,
5
+ are permitted provided that the following conditions are met:
6
+
7
+ - Redistributions of source code must retain the above copyright notice,
8
+ this list of conditions and the following disclaimer.
9
+ - Redistributions in binary form must reproduce the above copyright notice,
10
+ this list of conditions and the following disclaimer in the documentation
11
+ and/or other materials provided with the distribution.
12
+
13
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
14
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
16
+ IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
17
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
19
+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
20
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
21
+ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/README ADDED
@@ -0,0 +1,62 @@
1
+ = Wise.io for Ruby
2
+
3
+ == Usage
4
+ The following outlines the basic usage of the wise.io ruby library.
5
+
6
+ === Assumptions and limitations.
7
+ At the moment, only predictions on already existent models in already existent
8
+ projects are supported. The library has been tested in Ruby 1.8.7p358 as well as
9
+ in Ruby 2.0.0p0.
10
+
11
+ === Basic usage
12
+ Connecting to a wise.io project can be done in two ways. The Wise::project method suffices, as illustrated by the following example:
13
+
14
+ Wise.project 'robin/quasars', :user => 'robin', :password => '...' do |p|
15
+ p.predict 'train', 'quasarsTest.csv'
16
+ end
17
+
18
+ Alternately, a project handle may be created using Wise::Project.new:
19
+
20
+ p = Wise::Project.new 'robin/quasars', :user => 'robin', :password => '...'
21
+ p.predict 'train', 'quasarsTest.csv'
22
+
23
+ === Setting up a local wise.io profile
24
+ To avoid having to supply user name and password every time a project handle is
25
+ created, the +wise.rb+ binary supplied with the gem can be used to store
26
+ credentials in a local wise.io profile. To do this, simply run
27
+ <tt>wise.rb --setup</tt> as follows:
28
+
29
+ $ wise.rb --setup
30
+ User: robin
31
+ Password:
32
+ OK, wrote wise.io profile.
33
+
34
+ If the supplied credentials are valid, connecting to a project and performing
35
+ predictions on a model is as simple as:
36
+
37
+ Wise.project 'robin/quasars' do |p|
38
+ p.predict 'train', :dataset => 'test'
39
+ end
40
+
41
+ == License
42
+ Copyright (c) <2013>, <wise.io LLC>
43
+ All rights reserved.
44
+
45
+ Redistribution and use in source and binary forms, with or without modification,
46
+ are permitted provided that the following conditions are met:
47
+
48
+ - Redistributions of source code must retain the above copyright notice,
49
+ this list of conditions and the following disclaimer.
50
+ - Redistributions in binary form must reproduce the above copyright notice,
51
+ this list of conditions and the following disclaimer in the documentation
52
+ and/or other materials provided with the distribution.
53
+
54
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
55
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
56
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
57
+ IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
58
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
59
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
60
+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
61
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
62
+ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'etc'
4
+ require 'optparse'
5
+ require 'fileutils'
6
+
7
+ require 'wise/version'
8
+
9
+ optparse = OptionParser.new do |opts|
10
+ opts.banner = "Usage: wise.rb [options]"
11
+
12
+ opts.on_tail("-s", "--setup", "Setup wise.rb with username and password.") do
13
+ home = Etc.getpwuid.dir
14
+ wisedir = File.join home, ".wise"
15
+ profile = File.join wisedir, "profile"
16
+
17
+ FileUtils.mkdir_p wisedir, :mode => 0700
18
+
19
+ File.open(profile, "w") do |f|
20
+ print "User: "
21
+ user = gets.chomp
22
+
23
+ print "Password: "
24
+
25
+ system "stty -echo"
26
+ password = gets.chomp
27
+ system "stty echo"
28
+ print "\n"
29
+
30
+ f.write "#{user}\n#{password}"
31
+ end
32
+
33
+ FileUtils.chmod 0600, profile
34
+
35
+ puts "OK, wrote wise.io profile."
36
+ exit
37
+ end
38
+
39
+ opts.on_tail("-v", "--version", "Show version and exit.") do
40
+ puts "wise.rb, version #{Wise::VERSION}."
41
+ exit
42
+ end
43
+ end
44
+
45
+ begin
46
+ optparse.parse!
47
+ puts optparse
48
+ rescue OptionParser::InvalidOption
49
+ puts optparse
50
+ exit
51
+ end
@@ -0,0 +1,41 @@
1
+ # Copyright (c) <2013>, <wise.io LLC>
2
+ # All rights reserved.
3
+ #
4
+ # Redistribution and use in source and binary forms, with or without modification,
5
+ # are permitted provided that the following conditions are met:
6
+ #
7
+ # - Redistributions of source code must retain the above copyright notice,
8
+ # this list of conditions and the following disclaimer.
9
+ #
10
+ # - Redistributions in binary form must reproduce the above copyright notice,
11
+ # this list of conditions and the following disclaimer in the documentation
12
+ # and/or other materials provided with the distribution.
13
+ #
14
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17
+ # IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
18
+ # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19
+ # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20
+ # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
22
+ # USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23
+
24
+ # REST Client is Copyright (c) 2008-2013 by the REST Client Team. See
25
+ # https://github.com/rest-client/rest-client for further information.
26
+ # No ownership of, or affiliation to, REST Client or the REST Client Team is
27
+ # implied.
28
+
29
+ module RestClient # :nodoc:
30
+ class Resource # :nodoc:
31
+ def get(additional_headers={}, &block)
32
+ payload = additional_headers.delete(:payload)
33
+ headers = (options[:headers] || {}).merge(additional_headers)
34
+ Request.execute(options.merge(
35
+ :method => :get,
36
+ :url => url,
37
+ :payload => payload,
38
+ :headers => headers), &(block || @block))
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,39 @@
1
+ =begin
2
+ ---
3
+ Copyright (c) <2013>, <wise.io LLC>
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without modification,
7
+ are permitted provided that the following conditions are met:
8
+
9
+ - Redistributions of source code must retain the above copyright notice,
10
+ this list of conditions and the following disclaimer.
11
+
12
+ - Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19
+ IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
20
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
22
+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
23
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
24
+ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
+ =end
26
+ module Wise
27
+ end
28
+
29
+ require 'rest_client'
30
+ require 'json'
31
+ require 'csv'
32
+ require 'etc'
33
+
34
+ $:.unshift(File.dirname(__FILE__))
35
+ require File.join(File.dirname(__FILE__), '..', 'ext', 'restclient-ext.rb')
36
+
37
+ require 'wise/client'
38
+ require 'wise/project'
39
+ require 'wise/version'
@@ -0,0 +1,99 @@
1
+ =begin
2
+ ---
3
+ Copyright (c) <2013>, <wise.io LLC>
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without modification,
7
+ are permitted provided that the following conditions are met:
8
+
9
+ - Redistributions of source code must retain the above copyright notice,
10
+ this list of conditions and the following disclaimer.
11
+
12
+ - Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19
+ IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
20
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
22
+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
23
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
24
+ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
+ =end
26
+
27
+ module Wise
28
+ class AuthenticationError < StandardError # :nodoc:
29
+ end
30
+ class ResourceError < StandardError # :nodoc:
31
+ end
32
+
33
+ class Client # :nodoc:
34
+ attr_reader :rest
35
+
36
+ def initialize path, options
37
+ address = options[:address] || "https://wise.io"
38
+ owner, project = path.split("/")[1..2]
39
+
40
+ user, pass = get_credentials options
41
+
42
+ @rest = RestClient::Resource.new "#{address}/api", user, pass
43
+
44
+ begin
45
+ raw = @rest['project/'].get(:params => {:name => project,
46
+ :owner__username => owner, :limit => 1})
47
+
48
+ obj = JSON.load(raw)['objects'][0]
49
+ @owner = obj['owner']
50
+ @project = obj['id']
51
+ rescue RestClient::Unauthorized
52
+ raise AuthenticationError.new "Invalid credentials given."
53
+ end
54
+ end
55
+
56
+ def resource res
57
+ @rest[res]
58
+ end
59
+
60
+ def get_credentials options
61
+ user, pass = nil
62
+
63
+ if !options[:user].nil? && !options[:password].nil?
64
+ user, pass = [options[:user], options[:password]]
65
+ elsif File.exists?(prf = File.join(Etc.getpwuid.dir, ".wise", "profile"))
66
+ File.open(prf, "r") do |f|
67
+ user = f.readline.chomp
68
+ pass = f.readline.chomp
69
+ end
70
+ else
71
+ raise AuthenticationError.new "Credentials not given and profile not found."
72
+ end
73
+
74
+ return [user, pass]
75
+ end
76
+
77
+ def obj_id resource, obj
78
+ raw = @rest["#{resource}/"].get(:params => {:name => obj,
79
+ :ordering => '-created_at', :project => @project, :limit => 1})
80
+ resp = JSON.load(raw)['objects'][0]
81
+
82
+ raise ResourceError.new "Invalid #{resource} '#{obj}'." if resp.nil?
83
+ resp['id']
84
+ end
85
+
86
+ def model_id obj
87
+ case obj
88
+ when Integer
89
+ obj
90
+ when String
91
+ obj_id('model', obj)
92
+ end
93
+ end
94
+
95
+ def dataset_id dataset
96
+ obj_id('dataset', dataset)
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,94 @@
1
+ =begin
2
+ ---
3
+ Copyright (c) <2013>, <wise.io LLC>
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without modification,
7
+ are permitted provided that the following conditions are met:
8
+
9
+ - Redistributions of source code must retain the above copyright notice,
10
+ this list of conditions and the following disclaimer.
11
+
12
+ - Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19
+ IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
20
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
22
+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
23
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
24
+ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
+ =end
26
+
27
+ module Wise
28
+ # Creates a project handle for a wise.io project with the given path,
29
+ # yielding the project handle on succesful authentication; see
30
+ # Wise::Project.new for the supported options.
31
+ def self.project path, options = {} # :yields: project
32
+ p = Project.new path, options
33
+ yield p if block_given?
34
+ end
35
+
36
+ class Project
37
+ # Creates a project handle for an existing wise.io project.
38
+ #
39
+ # === Parameters:
40
+ # [path] The project path (e.g. 'robin/quasars').
41
+ # [options] See below.
42
+ #
43
+ # === Options:
44
+ # [address] The base address to connect to; defaults to \https://wise.io.
45
+ # [user] Username used for authentication.
46
+ # [password] Password used for authentication.
47
+ # Note that user and password can be omitted if a wise.io profile is set up;
48
+ # if user and password are given as options, however, the profile is
49
+ # ignored.
50
+ def initialize path, options = {}
51
+ @client = Client.new path, options
52
+ end
53
+
54
+ # Makes predictions on a model in the project.
55
+ #
56
+ # === Parameters
57
+ # [model]
58
+ # The model label or id.
59
+ # [f]
60
+ # The data for the model to predict - this may take several forms:
61
+ # * If f is a *String* corresponding to a path to a file, the contents of
62
+ # the file is used as the input; this is expected to be in a CSV format
63
+ # compatible with the model.
64
+ # * If f is an open *File*, its contents is used as input as above.
65
+ # * If f is a *Hash*, it is interpreted as a selection. See {the
66
+ # selection API}[http://docs.wise.io/python.html#wise.project.select]
67
+ # for more information.
68
+ # [raw]
69
+ # If true, returns the result as raw CSV data rather than as an array.
70
+ #
71
+ # === Returns
72
+ # The predictions for the data as an array.
73
+ def predict model, f, raw = false
74
+ params = {}
75
+
76
+ if (f.is_a? String) && (File.exists? File.join(Dir.pwd, f))
77
+ data = File.read(f)
78
+ elsif (f.is_a? File) && !f.closed?
79
+ data = f.read
80
+ elsif (f.is_a? Hash) && !f[:dataset].nil?
81
+ dataset = f.delete(:dataset)
82
+ data = f.to_json
83
+ params = {:dataset_id => (@client.dataset_id dataset)}
84
+ else
85
+ data = f
86
+ end
87
+
88
+ m_id = @client.model_id model
89
+ resp = @client.resource("model/#{m_id}/predict").get(:payload => data,
90
+ :params => params)
91
+ raw ? resp : CSV.parse(resp)
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,29 @@
1
+ =begin
2
+ ---
3
+ Copyright (c) <2013>, <wise.io LLC>
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without modification,
7
+ are permitted provided that the following conditions are met:
8
+
9
+ - Redistributions of source code must retain the above copyright notice,
10
+ this list of conditions and the following disclaimer.
11
+
12
+ - Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19
+ IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
20
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
22
+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
23
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
24
+ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
+ =end
26
+
27
+ module Wise
28
+ VERSION = "0.1.1" # :nodoc:
29
+ end
metadata ADDED
@@ -0,0 +1,86 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wise
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Wise.io, Inc.
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-04-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rest-client
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 1.6.7
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 1.6.7
27
+ - !ruby/object:Gem::Dependency
28
+ name: json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: 1.7.7
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: 1.7.7
41
+ description: A set of ruby bindings for communicating with the wise.io Machine Learning
42
+ as a Service platform.
43
+ email: contact@wise.io
44
+ executables:
45
+ - wise.rb
46
+ extensions: []
47
+ extra_rdoc_files:
48
+ - README
49
+ files:
50
+ - lib/wise/client.rb
51
+ - lib/wise/project.rb
52
+ - lib/wise/version.rb
53
+ - lib/wise.rb
54
+ - ext/restclient-ext.rb
55
+ - bin/wise.rb
56
+ - LICENSE
57
+ - README
58
+ homepage: http://wise.io
59
+ licenses:
60
+ - See LICENSE.
61
+ metadata: {}
62
+ post_install_message:
63
+ rdoc_options:
64
+ - --title
65
+ - Wise.io for Ruby
66
+ - --main
67
+ - README
68
+ require_paths:
69
+ - lib
70
+ required_ruby_version: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - '>='
73
+ - !ruby/object:Gem::Version
74
+ version: 1.8.7
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ requirements: []
81
+ rubyforge_project:
82
+ rubygems_version: 2.0.0
83
+ signing_key:
84
+ specification_version: 4
85
+ summary: Ruby client for the Wise.io platform.
86
+ test_files: []