solvebio 1.7.0 → 1.7.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.bumpversion.cfg +1 -1
- data/installer +13 -4
- data/lib/solvebio/api_operations.rb +2 -5
- data/lib/solvebio/cli/auth.rb +3 -3
- data/lib/solvebio/client.rb +25 -18
- data/lib/solvebio/sample.rb +1 -1
- data/lib/solvebio/version.rb +1 -1
- metadata +1 -1
data/.bumpversion.cfg
CHANGED
data/installer
CHANGED
@@ -22,7 +22,10 @@ function fail_exit() {
|
|
22
22
|
echo " #####################################"
|
23
23
|
echo
|
24
24
|
echo " Failed to install SolveBio."
|
25
|
-
echo " Contact us at support@solvebio.com"
|
25
|
+
echo " Contact us at support@solvebio.com for help."
|
26
|
+
echo
|
27
|
+
echo " In your email, please copy/paste the output of:"
|
28
|
+
echo " cat ${LOG}"
|
26
29
|
echo
|
27
30
|
echo " #####################################"
|
28
31
|
echo
|
@@ -42,18 +45,24 @@ echo " Installing SolveBio for Ruby..."
|
|
42
45
|
echo
|
43
46
|
echo " IMPORTANT: Your computer's password may be required. It will NOT be sent to SolveBio."
|
44
47
|
|
48
|
+
# Setup the log
|
49
|
+
LOG=/tmp/solvebio-ruby.log
|
50
|
+
echo "SolveBio Ruby Guided Installer log" > $LOG
|
51
|
+
echo `date` >> $LOG
|
52
|
+
|
45
53
|
# Are we installing or upgrading?
|
46
54
|
if [ $(gem list | grep solvebio -c) -ne 0 ]; then
|
47
|
-
sudo gem update
|
55
|
+
sudo gem update solvebio 2>&1 >> $LOG
|
48
56
|
else
|
49
|
-
sudo gem install -q solvebio 2>&1
|
57
|
+
sudo gem install -q solvebio 2>&1 >> $LOG
|
50
58
|
fi
|
51
59
|
|
52
60
|
if [ $? -eq 0 ]; then
|
61
|
+
VERSION=`ruby -e "require 'solvebio'; print SolveBio::VERSION"`
|
53
62
|
echo
|
54
63
|
echo " ##############################################"
|
55
64
|
echo
|
56
|
-
echo " Success! SolveBio for Ruby is now installed."
|
65
|
+
echo " Success! SolveBio for Ruby ${VERSION} is now installed."
|
57
66
|
echo
|
58
67
|
echo " Please run 'solvebio.rb login' to finish the setup."
|
59
68
|
echo
|
@@ -3,7 +3,7 @@ module SolveBio
|
|
3
3
|
module Create
|
4
4
|
module ClassMethods
|
5
5
|
def create(params={})
|
6
|
-
response = Client.
|
6
|
+
response = Client.post(url, params)
|
7
7
|
Util.to_solve_object(response)
|
8
8
|
end
|
9
9
|
end
|
@@ -55,10 +55,7 @@ module SolveBio
|
|
55
55
|
|
56
56
|
path = Dir.tmpdir unless path
|
57
57
|
filename = File.join(path, filename)
|
58
|
-
response =
|
59
|
-
|
60
|
-
response = Client.get(download_url, :raw => true,
|
61
|
-
:default_headers => false)
|
58
|
+
response = Client.get(download_url, :raw => true, :auth => false, :default_headers => false)
|
62
59
|
|
63
60
|
File.open(filename, 'wb') do |fh|
|
64
61
|
fh.write(response.body)
|
data/lib/solvebio/cli/auth.rb
CHANGED
@@ -14,7 +14,7 @@ module SolveBio
|
|
14
14
|
def ask_for_credentials()
|
15
15
|
print_message('Enter your SolveBio credentials')
|
16
16
|
email = Readline.readline('Email: ', true)
|
17
|
-
|
17
|
+
print 'Password (typing will be hidden): '
|
18
18
|
password = STDIN.noecho(&:gets).chomp
|
19
19
|
puts
|
20
20
|
return email, password
|
@@ -29,7 +29,7 @@ module SolveBio
|
|
29
29
|
:ruby_implementation => RbConfig::CONFIG['RUBY_SO_NAME'],
|
30
30
|
:architecture => RbConfig::CONFIG['arch'],
|
31
31
|
}
|
32
|
-
Client.
|
32
|
+
Client.post('/v1/reports/install', data) rescue nil
|
33
33
|
end
|
34
34
|
|
35
35
|
def login
|
@@ -46,7 +46,7 @@ module SolveBio
|
|
46
46
|
}
|
47
47
|
|
48
48
|
begin
|
49
|
-
response = Client.post('/v1/auth/token',
|
49
|
+
response = Client.post('/v1/auth/token', data)
|
50
50
|
rescue SolveBio::SolveError => e
|
51
51
|
puts "Login failed: #{e.to_s}"
|
52
52
|
return false
|
data/lib/solvebio/client.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module SolveBio
|
2
2
|
class Client
|
3
|
-
attr_reader :headers
|
4
|
-
attr_accessor :api_key
|
3
|
+
attr_reader :headers
|
4
|
+
attr_accessor :api_host, :api_key
|
5
5
|
|
6
6
|
# Add our own kind of Authorization tokens. This has to be
|
7
7
|
# done this way, late, because the rest-client gem looks for
|
@@ -13,8 +13,8 @@ module SolveBio
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def initialize(api_key=nil, api_host=nil)
|
16
|
-
@api_key = api_key
|
17
|
-
@api_host = api_host
|
16
|
+
@api_key = api_key
|
17
|
+
@api_host = api_host
|
18
18
|
|
19
19
|
# Mirroring comments from:
|
20
20
|
# http://ruby-doc.org/stdlib-2.1.2/libdoc/net/http/rdoc/Net/HTTP.html
|
@@ -32,7 +32,9 @@ module SolveBio
|
|
32
32
|
|
33
33
|
DEFAULT_REQUEST_OPTS = {
|
34
34
|
:raw => false,
|
35
|
-
:default_headers => true
|
35
|
+
:default_headers => true,
|
36
|
+
:auth => true,
|
37
|
+
:json => true
|
36
38
|
}
|
37
39
|
|
38
40
|
# Issues an HTTP GET across the wire via the Ruby 'rest-client'
|
@@ -44,14 +46,14 @@ module SolveBio
|
|
44
46
|
# Issues an HTTP POST across the wire via the Ruby 'rest-client'
|
45
47
|
# library. See *request* for information on opts.
|
46
48
|
def post(url, data, opts={})
|
47
|
-
opts[:payload] =
|
48
|
-
if opts.member?(:no_json)
|
49
|
-
data
|
50
|
-
else
|
51
|
-
data.to_json
|
52
|
-
end
|
49
|
+
opts[:payload] = data
|
53
50
|
request('post', url, opts)
|
54
51
|
end
|
52
|
+
|
53
|
+
def put(url, data, opts={})
|
54
|
+
opts[:payload] = data
|
55
|
+
request('put', url, opts)
|
56
|
+
end
|
55
57
|
|
56
58
|
# Issues an HTTP Request across the wire via the Ruby 'rest-client'
|
57
59
|
# library.
|
@@ -59,7 +61,8 @@ module SolveBio
|
|
59
61
|
opts = DEFAULT_REQUEST_OPTS.merge(opts)
|
60
62
|
|
61
63
|
# Expand URL with API host if none was given
|
62
|
-
api_host = @api_host
|
64
|
+
api_host = @api_host || SolveBio.api_host
|
65
|
+
api_key = opts[:auth] ? (@api_key || SolveBio.api_key) : nil
|
63
66
|
|
64
67
|
if not api_host
|
65
68
|
raise SolveError.new('No SolveBio API host is set')
|
@@ -68,12 +71,12 @@ module SolveBio
|
|
68
71
|
end
|
69
72
|
|
70
73
|
# Handle some default options and add authorization header
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
74
|
+
headers = opts[:default_headers] ? @headers.merge(opts[:headers] || {}) : nil
|
75
|
+
authorization = api_key ? "Token #{api_key}" : nil
|
76
|
+
|
77
|
+
# By default, encode payload as JSON
|
78
|
+
if ['post', 'put', 'patch'].include?(method.downcase) and opts[:json]
|
79
|
+
opts[:payload] = opts[:payload].to_json
|
77
80
|
end
|
78
81
|
|
79
82
|
SolveBio::logger.debug('API %s Request: %s' % [method.upcase, url])
|
@@ -141,6 +144,10 @@ module SolveBio
|
|
141
144
|
def self.post(url, data, opts={})
|
142
145
|
client.post(url, data, opts)
|
143
146
|
end
|
147
|
+
|
148
|
+
def self.put(url, data, opts={})
|
149
|
+
client.put(url, data, opts)
|
150
|
+
end
|
144
151
|
|
145
152
|
def self.request(method, url, opts={})
|
146
153
|
client.request(method, url, opts)
|
data/lib/solvebio/sample.rb
CHANGED
data/lib/solvebio/version.rb
CHANGED