turbot 0.0.4 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- Yjg2ZWE5YWQwNzE5OTExODQ3OTUwZmM2MmY2ODZhNzQ2NmYzNDY1Nw==
4
+ OTQzMWUxY2MwYjQzYTZlYjhlMDIxZDRjYjk4MTU0NjI1MzFmYTYwMw==
5
5
  data.tar.gz: !binary |-
6
- M2RmNGVlMWU2YzY2MjM0N2NhZjk1MDIyMGMxOWMyNWE4NGY2OGE1Yg==
6
+ YThhNWFlNTA3ZDFhMTVlYmUwYTk5MDQyNmE2MGM3ZDU0ODVkOGZlNw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OWU1YTE0YmJhNDZlODMwY2ZlMWU0N2I5NWQyYTYwNTQwYzdiYThhYzA2M2Iz
10
- Y2RiNDgyNGY4MjY5MmY1MjRmYWNhNmMyZDYxYzI5NmFiNjBiYjJjYmZlMzg5
11
- YmVkOGJhZmJkOTI3MzhlNzhiNWNjZGYyZmNhZDc1OGVmNzg4MTQ=
9
+ MGUyZmVlNGRlNzExZjdkOTk2NDdiM2Q3YWY2OWY3NGFjYWVjN2RlNTVlY2Fj
10
+ YjhkN2FjNzkzZDliODljZmE1ZDhjNDRlMWFiNGQ4M2NkYWFhMjlhODI4Yzcy
11
+ N2IzZjU4NDk3YWQxYjU5ZTRjZGQ4ZWFjNTVlMDlmMDAyYWE0MGY=
12
12
  data.tar.gz: !binary |-
13
- MTc1Y2RlZGE3N2Y0OGM1ZTkzNDNhNGMwYzRjYzQxN2NiNjk1YzQzM2NjNzBj
14
- ZjU2OTlmOTUyNmFkODc1Y2E0ZDA1MmM4M2NjN2NkZjI2ZmY5NDI1ZDkzMzI3
15
- MTIzY2ZkMGYyNjM3ZDE0Nzk3MjJiZjYwOGZjYzY5Y2ZlODdlY2U=
13
+ N2NhNjVlMGMzMjgzNTQ3YTU2YTAyYTdlNGNmOTNlMzNhODZjZmU5ODY4MDE1
14
+ ZWRlMjk4M2ViYmUxNmEzZjRmNWE3YTQyMDM0ZDZjNGNlZmY1ZThhMzgyZDgx
15
+ ZDQ4YTEzMGRjY2ZiMjQzMDEyODZkMmU1MzEwMTI5NDcxNGI5MGU=
@@ -230,8 +230,6 @@ module Turbot
230
230
  run "login"
231
231
  retry
232
232
  end
233
- rescue Turbot::API::Errors::VerificationRequired, RestClient::PaymentRequired => e
234
- retry if Turbot::Helpers.confirm_billing
235
233
  rescue Turbot::API::Errors::NotFound => e
236
234
  error extract_error(e.response.body) {
237
235
  e.response.body =~ /^([\w\s]+ not found).?$/ ? $1 : "Resource not found"
@@ -252,6 +250,9 @@ module Turbot
252
250
  arguments << '--confirm' << bot
253
251
  retry
254
252
  end
253
+ rescue RestClient::PaymentRequired => e
254
+ # We've repurposed a 402 as a general error
255
+ error extract_error(e.http_body)
255
256
  rescue Turbot::API::Errors::Timeout, RestClient::RequestTimeout
256
257
  error "API request timed out. Please try again, or contact support@turbot.com if this issue persists."
257
258
  rescue Turbot::API::Errors::ErrorWithResponse => e
@@ -24,10 +24,10 @@ class Turbot::Command::Bots < Turbot::Command::Base
24
24
  #
25
25
  def index
26
26
  validate_arguments!
27
- bots = api.list_bots
27
+ bots = api.list_bots.data
28
28
  unless bots.empty?
29
29
  styled_header("Bots")
30
- styled_array(bots.map{|bot| bot['bot_id']})
30
+ styled_array(bots.map{|bot| bot[:bot_id]})
31
31
  else
32
32
  display("You have no bots.")
33
33
  end
@@ -92,7 +92,6 @@ class Turbot::Command::Bots < Turbot::Command::Base
92
92
  # Created new bot template at my_amazing_bot!
93
93
 
94
94
  def generate
95
- puts "running generate"
96
95
  validate_arguments!
97
96
  language = options[:language] || "ruby"
98
97
  puts "Generating #{language} code..."
@@ -105,18 +104,25 @@ class Turbot::Command::Bots < Turbot::Command::Base
105
104
  end
106
105
  manifest_template = File.expand_path("../../../../templates/manifest.json", __FILE__)
107
106
  scraper_template = File.expand_path("../../../../templates/#{scraper}", __FILE__)
107
+ license_template = File.expand_path("../../../../templates/LICENSE.txt", __FILE__)
108
108
  manifest = JSON.parse(open(manifest_template).read.sub(/{{bot_id}}/, bot))
109
109
 
110
110
  FileUtils.cp(scraper_template, "#{bot}/#{scraper}")
111
+ FileUtils.cp(license_template, "#{bot}/LICENSE.txt")
111
112
  open("#{bot}/manifest.json", "w") do |f|
112
113
  f.write(manifest.to_json)
113
114
  end
114
115
 
115
- api.create_bot(bot, manifest)
116
+ response = api.create_bot(bot, manifest)
116
117
 
117
- # TODO handle errors
118
-
119
- puts "Created new bot template at #{bot}!"
118
+ case response
119
+ when Turbot::API::SuccessResponse
120
+ display("Created new bot template at #{bot}!")
121
+ when Turbot::API::FailureResponse
122
+ display('Could not create new bot')
123
+ display(response.message)
124
+ FileUtils.rm_r(bot)
125
+ end
120
126
  end
121
127
 
122
128
 
@@ -142,9 +148,17 @@ class Turbot::Command::Bots < Turbot::Command::Base
142
148
  manifest['files'].each { |f| zipfile.add(f, File.join(working_dir,f)) }
143
149
  end
144
150
 
145
- File.open(archive_path) do |file|
151
+ response = File.open(archive_path) do |file|
146
152
  api.update_code(bot, file)
147
153
  end
154
+
155
+ case response
156
+ when Turbot::API::SuccessResponse
157
+ display('Successfully pushed bot code')
158
+ when Turbot::API::FailureResponse
159
+ display('Failed to push bot code')
160
+ display(response.message)
161
+ end
148
162
  end
149
163
 
150
164
  alias_command "push", "bots:push"
@@ -255,16 +269,16 @@ class Turbot::Command::Bots < Turbot::Command::Base
255
269
  batch << JSON.parse(line)
256
270
  spinner(count)
257
271
  if count % 20 == 0
258
- result = api.update_draft_data(bot, config, batch.to_json)
272
+ result = api.update_draft_data(bot, config, batch.to_json).data
259
273
  batch = []
260
274
  end
261
275
  count += 1
262
276
  end
263
277
  if !batch.empty?
264
- result = api.update_draft_data(bot, config, batch.to_json)
278
+ result = api.update_draft_data(bot, config, batch.to_json).data
265
279
  end
266
280
  puts "Sent #{count} records."
267
- puts "View your records at #{result['url']}"
281
+ puts "View your records at #{result[:url]}"
268
282
  end
269
283
 
270
284
  private
@@ -324,7 +338,7 @@ class Turbot::Command::Bots < Turbot::Command::Base
324
338
  end
325
339
 
326
340
  def scraper_file(dir)
327
- Dir.glob("scraper*").first
341
+ Dir.glob("scraper*").reject{|n| !n.match(/(rb|py)$/)}.first
328
342
  end
329
343
 
330
344
  def manifest_path
@@ -333,6 +347,6 @@ class Turbot::Command::Bots < Turbot::Command::Base
333
347
 
334
348
  def get_schema(type)
335
349
  hyphenated_name = type.to_s.gsub("_", "-").gsub(" ", "-")
336
- schema = File.expand_path("../../../../schema/schemas/#{hyphenated_name}-schema.json", __FILE__)
350
+ File.expand_path("../../../../schema/schemas/#{hyphenated_name}-schema.json", __FILE__)
337
351
  end
338
352
  end
@@ -1,3 +1,3 @@
1
1
  module Turbot
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.6"
3
3
  end
@@ -0,0 +1,22 @@
1
+ Copyright (c) <date> <your name here>
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turbot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Turbot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-03 00:00:00.000000000 Z
11
+ date: 2014-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: netrc
@@ -98,16 +98,16 @@ dependencies:
98
98
  name: turbot-api
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ! '>='
101
+ - - '='
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: 0.0.3
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ! '>='
108
+ - - '='
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: 0.0.3
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: excon
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -195,6 +195,7 @@ files:
195
195
  - spec/turbot/helpers_spec.rb
196
196
  - spec/turbot/plugin_spec.rb
197
197
  - spec/turbot/updater_spec.rb
198
+ - templates/LICENSE.txt
198
199
  - templates/manifest.json
199
200
  - templates/scraper.py
200
201
  - templates/scraper.rb