zillabyte-cli 0.0.9 → 0.0.10

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
- YTVkNDVmMWE1NWJiMzhmMTk5M2IxOGJkZDExYjIxMTY3MGRiNDBjMg==
4
+ MjgyYWY1MTY5MmQ1ZTRhZWMyNTEyMzExMWIwODViZjc2NzFjYzZkZQ==
5
5
  data.tar.gz: !binary |-
6
- ZGEyMjU3NjM5MTE0NWE1N2I4ZDdkZjZlNTk2NmQzNzYzYmI2ZGZkYw==
6
+ NDNjOTk0MzU3NmNkZDZiMjIzYmEwYmQ1YjQzODM2M2QxZDU1M2E5Yg==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- NDk2ZTcyMjk1ODg5NTE3NTU0ZGFmNDlkYTY4MWIzOGEyYjEyYjJlNDk0YTI2
10
- OTAwYmRkMWU1MzliOWYyMmIyZWFjMTFiZWI0NWE0NmUzZTA3Y2Y4ZTkyNjMz
11
- ODBkYWQ1ZDA1MjkzZGE1NTg5MDA0NzMwZmFhYzNhNmRlYzBiNTY=
9
+ ZWU1MTJjZmRhMGIwM2U2YmJlMmIxYjQyOTk1ZmE0Njk3NDZmNzE5OGFhNjZh
10
+ NjQ4NzM2M2VmOTllYTUxNjNiNGU1MjQxNjIyMjIzM2IzMjI5ODkyNmQ0YTIx
11
+ ZDkzZjA5OTZlMDdkMDY5MzFjNTllZTBkZWY5MWNhNDk2ZjQxODc=
12
12
  data.tar.gz: !binary |-
13
- MjI3YzIzNGMzMjkzY2JjNjZmMjc2YzU4MDU3Y2RlNTQzYjE0OTYzN2VhNTc4
14
- ZWRmMGZhMjc2M2FiYjkwYTc1OGY2YzUwNjM3YmRiOTU1NzA2OWFiNzBiNWU4
15
- YTRjYTNiMzQyYWM5ZmVhZjdlZDY1MjI5ZDJkNjUzZjc3OWU1NTE=
13
+ NzIzM2I1OGU0YTA4ZGYwMDYzZDZlMTU0NzBjNTY3N2RjNzc5ZGUxMjNjZTY2
14
+ MGYwNzAzNDFiYWQwZWYxOTc3YTljNjhlY2NhNjU0NWRhNmIxNzIzMTA4ZWRi
15
+ MTZkNGUxZjNmNjNmYjI4YzczNzk2MGNmOGJmNTAwMTQ2NDYyZGE=
@@ -1,5 +1,5 @@
1
1
  module Zillabyte
2
2
  module CLI
3
- VERSION = "0.0.9"
3
+ VERSION = "0.0.10"
4
4
  end
5
5
  end
@@ -67,8 +67,16 @@ class Zillabyte::API::Data < Zillabyte::API::Base
67
67
  end
68
68
 
69
69
 
70
-
71
-
70
+ def delete(id, option={})
71
+
72
+ res = @api.request(
73
+ :expects => 200,
74
+ :method => :delete,
75
+ :path => "/relations/#{id}"
76
+ )
77
+
78
+ res.body
79
+ end
72
80
 
73
81
 
74
82
  # POST /datasets/1/append
@@ -1,5 +1,4 @@
1
1
  require 'net/http'
2
- require 'mkfifo'
3
2
  require 'zillabyte/cli/config'
4
3
 
5
4
  class Zillabyte::API::Flows < Zillabyte::API::Base
@@ -214,7 +213,7 @@ class Zillabyte::API::Flows < Zillabyte::API::Base
214
213
  end
215
214
  when "js"
216
215
  # command = "#{Zillabyte::API::CASPERJS_BIN} #{Zillabyte::API::API_CLIENT_JS} \"#{full_script}\" --info"
217
- command = "cd \"#{dir}\"; NODE_PATH=~/zb1/multilang/js #{Zillabyte::API::NODEJS_BIN} \"#{full_script}\" #{arg} #{stderr}"
216
+ command = "cd \"#{dir}\"; NODE_PATH=~/zb1/multilang/js/src/lib #{Zillabyte::API::NODEJS_BIN} \"#{full_script}\" #{arg} #{stderr}"
218
217
  else
219
218
  progress.error "unsupported language: #{hash["language"]}" if progress
220
219
  return nil
@@ -299,11 +299,16 @@ class Zillabyte::Command::Flows < Zillabyte::Command::Base
299
299
  if node['matches'] or node["relation"]
300
300
  matches = node['matches'] || (node["relation"]["query"])
301
301
  op_display.call "Grabbing remote data"
302
- res = api.query.agnostic(matches)["rows"]
303
- if(res.nil? or res.length == 0)
302
+
303
+ res = api.query.agnostic(matches)
304
+ rows = res["rows"]
305
+ column_aliases = res["column_aliases"]
306
+
307
+
308
+ if(rows.nil? or rows.length == 0)
304
309
  raise NameError, "Could not find data that matches your 'matches' clause"
305
310
  end
306
- res.each do |tuple|
311
+ rows.each do |tuple|
307
312
  values = {}
308
313
  meta = {}
309
314
  tuple.each do |k, v|
@@ -315,7 +320,7 @@ class Zillabyte::Command::Flows < Zillabyte::Command::Base
315
320
  values[k] = v
316
321
  end
317
322
  end
318
- read_msg = {"tuple" => values, "meta" => meta}.to_json
323
+ read_msg = {"tuple" => values, "meta" => meta, "column_aliases" => column_aliases}.to_json
319
324
  op_display.call "emit tuple: #{values} #{meta}"
320
325
  stream_messages[default_stream] ||= []
321
326
  stream_messages[default_stream] << read_msg
@@ -669,7 +674,7 @@ class Zillabyte::Command::Flows < Zillabyte::Command::Base
669
674
 
670
675
  when "js"
671
676
  # cmd = "#{Zillabyte::API::CASPERJS_BIN} #{Zillabyte::API::API_CLIENT_JS} \"#{full_script}\" #{arg}"
672
- cmd = "cd \"#{dir}\"; NODE_PATH=~/zb1/multilang/js #{Zillabyte::API::NODEJS_BIN} \"#{full_script}\" #{arg} #{stderr_opt}"
677
+ cmd = "cd \"#{dir}\"; NODE_PATH=~/zb1/multilang/js/src/lib #{Zillabyte::API::NODEJS_BIN} \"#{full_script}\" #{arg} #{stderr_opt}"
673
678
 
674
679
  else
675
680
  error "no language specified"
@@ -84,7 +84,7 @@ private
84
84
  puts
85
85
  summary_for_namespaces(additional_namespaces)
86
86
  puts
87
- puts "For help getting started, visit http://www.developers.zillabyte.com."
87
+ puts "For help getting started, visit http://docs.zillabyte.com."
88
88
  puts
89
89
  end
90
90
 
@@ -39,9 +39,19 @@ class Zillabyte::Command::Query < Zillabyte::Command::Base
39
39
  filtered = []
40
40
  headings = []
41
41
  if res['rows'].first
42
- headings = res['rows'].first.keys
42
+ concrete_headings = res['rows'].first.keys
43
+ concrete_headings.each do |ch|
44
+ has_alias = false
45
+ res['column_aliases'].each do |al|
46
+ if(al["concrete_name"] == ch)
47
+ headings << al["alias"]
48
+ has_alias = true
49
+ end
50
+ end
51
+ headings << ch if !has_alias
52
+ end
43
53
  rows = res['rows'].each do |obj|
44
- new_row = headings.map do |heading|
54
+ new_row = concrete_headings.map do |heading|
45
55
  obj[heading]
46
56
  end
47
57
  unless seen[new_row.to_s]
@@ -109,14 +119,23 @@ class Zillabyte::Command::Query < Zillabyte::Command::Base
109
119
  headings = []
110
120
  filtered = []
111
121
  if res['rows'].first
112
- headings = res['rows'].first.keys
122
+ concrete_headings = res['rows'].first.keys
123
+ concrete_headings.each do |ch|
124
+ has_alias = false
125
+ res['column_aliases'].each do |al|
126
+ if(al["concrete_name"] == ch)
127
+ headings << al["alias"]
128
+ has_alias = true
129
+ end
130
+ end
131
+ headings << ch if !has_alias
132
+ end
113
133
  rows = res['rows'].each do |obj|
114
-
115
134
  # if obj['since']
116
135
  # opts[:since] = [obj['since'], opts[:since]].compact.max
117
136
  # end
118
137
 
119
- new_row = headings.map do |heading|
138
+ new_row = concrete_headings.map do |heading|
120
139
  if options[:no_truncation]
121
140
  obj[heading]
122
141
  else
@@ -169,4 +188,4 @@ class Zillabyte::Command::Query < Zillabyte::Command::Base
169
188
 
170
189
 
171
190
 
172
- end
191
+ end
@@ -45,6 +45,34 @@ class Zillabyte::Command::Relations < Zillabyte::Command::Base
45
45
  alias_command "relation:list", "relations:list"
46
46
 
47
47
 
48
+ # relations:delete ID
49
+ #
50
+ # deletes a relation
51
+ #
52
+ # -f, --force # Delete without asking for confirmation
53
+ def delete
54
+ id = options[:id] || shift_argument
55
+ forced = options[:force]
56
+ if not forced
57
+ while true
58
+
59
+ display "This operation cannot be undone. Are you sure you want to delete this relation? (yes/no):", false
60
+ confirm = ask
61
+ break if confirm == "yes" || confirm == "no"
62
+ display "Please enter 'yes' to delete the relation or 'no' to exit"
63
+ end
64
+ end
65
+
66
+ confirmed = forced || confirm == "yes"
67
+
68
+ if confirmed
69
+ response = api.data.delete(id)
70
+ display response["body"]
71
+ end
72
+
73
+
74
+ end
75
+
48
76
 
49
77
  # relations:status RELATION
50
78
  #
@@ -98,25 +126,32 @@ class Zillabyte::Command::Relations < Zillabyte::Command::Base
98
126
  # creates a new relation
99
127
  #
100
128
  # --schema SCHEMA # a JSON array of column types
101
- # --semantics SEMANTICS # a JSON array of semantics within the relation
102
129
  # --public # Make the relation public
103
130
  #
104
131
  def create
105
132
 
106
133
  name = options[:name] || shift_argument
134
+ file = options[:file] || shift_argument || nil
135
+ type = options[:type] || nil
136
+
107
137
  error "no name given" if name.nil?
108
138
 
109
139
  schema = JSON.parse(options[:schema]) if options[:schema]
110
- semantics = JSON.parse(options[:semantics]) if options[:semantics]
111
140
  is_public = options[:public] || false
112
141
 
113
- hash = set_relation_properties(schema,semantics,is_public)
142
+ hash = set_relation_properties(schema,is_public)
143
+ if file
144
+ type ||= File.extname(file).gsub(".", "")
145
+ rows = sanity_check_file(file,type, {"columns" => hash[:schema]})
146
+ hash[:rows] = rows
147
+ end
148
+
114
149
  res = api.data.create name, hash
115
150
 
116
151
  if res['error']
117
152
  display "error: #{res['error_message']}"
118
153
  else
119
- display "relation ##{res['id']} #{res['action']}. size: #{res['size']}"
154
+ display "relation ##{res['id']} #{res['action']}. size: #{res['size'] || 0} rows."
120
155
  end
121
156
 
122
157
  end
@@ -167,13 +202,24 @@ class Zillabyte::Command::Relations < Zillabyte::Command::Base
167
202
  res = self.api.data.get(name)
168
203
 
169
204
  if res["rows"].size > 0
170
-
171
- headings = res["rows"].first.keys
172
- headings.delete("id")
205
+ headings = []
206
+ concrete_headings = res["rows"].first.keys
207
+ concrete_headings.delete("id")
208
+ concrete_headings.each do |ch|
209
+ has_alias = false
210
+ res['column_aliases'].each do |al|
211
+ if(al["concrete_name"] == ch)
212
+ headings << al["alias"]
213
+ has_alias = true
214
+ end
215
+ end
216
+ headings << ch if !has_alias
217
+ end
218
+
173
219
  table = Terminal::Table.new :headings => headings
174
220
  res["rows"].each do |obj|
175
221
 
176
- new_row = headings.map do |heading|
222
+ new_row = concrete_headings.map do |heading|
177
223
  if options[:no_truncation]
178
224
  obj[heading]
179
225
  else
@@ -216,7 +262,7 @@ class Zillabyte::Command::Relations < Zillabyte::Command::Base
216
262
  relations = options[:relations]
217
263
  is_public = options[:public] || false
218
264
 
219
- hash = set_dataset_properties(schema,relations,is_public)
265
+ hash = set_relation_properties(schema,relations,is_public)
220
266
  res = api.data.create name, hash
221
267
 
222
268
  type = options[:type]
@@ -233,75 +279,45 @@ class Zillabyte::Command::Relations < Zillabyte::Command::Base
233
279
 
234
280
  private
235
281
 
236
- def set_dataset_properties(schema,relations,is_public)
282
+ def set_relation_properties(schema,is_public)
237
283
  valid_types=["STRING", "NUMERIC", "FLOAT"]
284
+ meta_names=["confidence", "since", "source"]
238
285
  if schema.nil?
239
286
  schema = []
240
287
 
241
288
  # Get the column types (required)
242
- index = 0
289
+ index = 1
290
+ display "Please enter column names and types:\n", false
291
+ already_aliased = {}
243
292
  while true
244
-
245
- display "type for column v#{index} [#{valid_types.join(', ')}] (empty when done):", false
246
- type = ask.upcase
247
- break if type == "" || type.nil?
248
- unless valid_types.member?(type)
249
- warn "invalid type: #{type}"
293
+
294
+ display "Column #{index} name (empty when done): ", false
295
+ cname = ask.strip
296
+ break if cname == "" || cname.nil?
297
+ if((cname[0].downcase == "v" and cname[1...-1].respond_to?("to_i") and cname[1...-1].to_i >= 0) or meta_names.member?(cname.downcase))
298
+ warn "\"v[number]\", \"confidence\", \"since\" and \"source\" are special names in Zillabyte. Please name your column name something else."
299
+ next
300
+ end
301
+ if(already_aliased[cname])
302
+ warn "Column name defined previously. Please use unique column names."
303
+ next
304
+ end
305
+
306
+ display "Type for column #{index} [#{valid_types.join(', ')}]: ", false
307
+ ctype = ask.upcase
308
+ unless valid_types.member?(ctype)
309
+ warn "invalid type: #{ctype}"
250
310
  next
251
311
  end
252
- index += 1
253
- schema << type
312
+ index += 1
313
+ schema << {cname => ctype}
314
+ already_aliased[cname] = 1
254
315
  end
255
316
 
256
317
  display "using schema: #{schema.to_json}"
257
318
 
258
319
  end
259
-
260
- if relations.nil?
261
-
262
- # Get the semantics (inner relations)
263
- relations = []
264
- display "would you like to define relations on your dataset? (yes/No): ", false
265
- if ['y', 'yes'].include?(ask.downcase)
266
-
267
- # Display the first bit of the taple
268
- display Terminal::Table.new(:rows => [schema], :headings => schema.size.times.map{|i| "v#{i}"}).to_s
269
-
270
- # Start collection relations
271
- while true
272
- display "relation predicate (ex: \"(company v0)\", \"(coordinates v1 v2)\"): ", false
273
- input = ask
274
- break if input.nil? || input == ""
275
-
276
- pred = input.gsub("(","").gsub(")", "").split(/\s+/)
277
- pred_name = pred[0]
278
- pred_cols = pred[1..-1]
279
- pred_cols.each_with_index do |col, pred_index|
280
- m = /v(\d+)/.match(col)
281
- if m.nil?
282
- warn "the predicate variables must be of the form \"v[1-10]\""
283
- next
284
- end
285
-
286
- column = m[1].to_i
287
- if column >= schema.size
288
- warn "the variable #{col} is out of range"
289
- next
290
- end
291
-
292
- # Otherwise, successful
293
- relations[column] ||= []
294
- relations[column] << "#{pred_name}.#{pred_index}"
295
- end
296
-
297
- end
298
-
299
- # Show them what the relation looks like
300
- display "using relation: #{relations.to_json}"
301
-
302
- end
303
- end
304
- {:schema => schema, :relations => relations, :public => is_public}
320
+ {:schema => schema, :public => is_public}
305
321
  end
306
322
 
307
323
  def sanity_check_file(file,type,dataset)
@@ -1,3 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem "zillabyte"
1
4
 
2
- gem "zillabyte", :path => "~/zb1/multilang/"
3
- gem "zillabyte-cli", :path => "~/zb1/cli/"
@@ -22,7 +22,10 @@ Zillabyte.simple_function do |fn|
22
22
  url = tuple['v0']
23
23
  html = tuple['v1']
24
24
 
25
- # does this page contains the 'hello world' phrase? If so, emit it
25
+ # For the purpose of this test, to show results from the test set,
26
+ # we'll loosen the search to include either hello or world
27
+ # instead of
28
+ # if html.include?('hello world')
26
29
  if html.include?('hello') or html.include?('world')
27
30
  controller.emit("URL" => url)
28
31
  end
@@ -20,23 +20,18 @@ Gem::Specification.new do |spec|
20
20
  end
21
21
  spec.require_paths = ["lib"]
22
22
 
23
- spec.add_development_dependency "bundler", "~> 1.3"
24
23
  spec.add_development_dependency "rake"
25
24
 
26
25
  spec.add_dependency "netrc", "~> 0.7.7"
27
26
  spec.add_dependency "rest-client", "~> 1.6.1"
28
27
 
29
- spec.add_dependency "excon"
30
- spec.add_dependency "terminal-table"
28
+ spec.add_dependency "excon", "~> 0.31"
29
+ spec.add_dependency "terminal-table", "~> 1.4"
31
30
  spec.add_dependency "activesupport", "~> 3.2.11"
32
31
 
33
- spec.add_dependency "colorize"
34
- spec.add_dependency "chronic"
35
- spec.add_dependency "ascii_charts"
36
- spec.add_dependency "indentation"
37
-
38
- spec.add_dependency "bundler"
39
-
40
- spec.add_dependency "mkfifo"
41
-
32
+ spec.add_dependency "bundler", "~> 1.3"
33
+ spec.add_dependency "colorize", "~> 0.6"
34
+ spec.add_dependency "chronic", "~> 0.10"
35
+ spec.add_dependency "ascii_charts", "~> 0.9.1"
36
+ spec.add_dependency "indentation", "~> 0.1"
42
37
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zillabyte-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - zillabyte
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-11 00:00:00.000000000 Z
11
+ date: 2014-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ~>
18
- - !ruby/object:Gem::Version
19
- version: '1.3'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ~>
25
- - !ruby/object:Gem::Version
26
- version: '1.3'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: rake
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -70,30 +56,30 @@ dependencies:
70
56
  name: excon
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - ! '>='
59
+ - - ~>
74
60
  - !ruby/object:Gem::Version
75
- version: '0'
61
+ version: '0.31'
76
62
  type: :runtime
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
- - - ! '>='
66
+ - - ~>
81
67
  - !ruby/object:Gem::Version
82
- version: '0'
68
+ version: '0.31'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: terminal-table
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
- - - ! '>='
73
+ - - ~>
88
74
  - !ruby/object:Gem::Version
89
- version: '0'
75
+ version: '1.4'
90
76
  type: :runtime
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
- - - ! '>='
80
+ - - ~>
95
81
  - !ruby/object:Gem::Version
96
- version: '0'
82
+ version: '1.4'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: activesupport
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -109,89 +95,75 @@ dependencies:
109
95
  - !ruby/object:Gem::Version
110
96
  version: 3.2.11
111
97
  - !ruby/object:Gem::Dependency
112
- name: colorize
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ! '>='
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :runtime
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ! '>='
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: chronic
98
+ name: bundler
127
99
  requirement: !ruby/object:Gem::Requirement
128
100
  requirements:
129
- - - ! '>='
101
+ - - ~>
130
102
  - !ruby/object:Gem::Version
131
- version: '0'
103
+ version: '1.3'
132
104
  type: :runtime
133
105
  prerelease: false
134
106
  version_requirements: !ruby/object:Gem::Requirement
135
107
  requirements:
136
- - - ! '>='
108
+ - - ~>
137
109
  - !ruby/object:Gem::Version
138
- version: '0'
110
+ version: '1.3'
139
111
  - !ruby/object:Gem::Dependency
140
- name: ascii_charts
112
+ name: colorize
141
113
  requirement: !ruby/object:Gem::Requirement
142
114
  requirements:
143
- - - ! '>='
115
+ - - ~>
144
116
  - !ruby/object:Gem::Version
145
- version: '0'
117
+ version: '0.6'
146
118
  type: :runtime
147
119
  prerelease: false
148
120
  version_requirements: !ruby/object:Gem::Requirement
149
121
  requirements:
150
- - - ! '>='
122
+ - - ~>
151
123
  - !ruby/object:Gem::Version
152
- version: '0'
124
+ version: '0.6'
153
125
  - !ruby/object:Gem::Dependency
154
- name: indentation
126
+ name: chronic
155
127
  requirement: !ruby/object:Gem::Requirement
156
128
  requirements:
157
- - - ! '>='
129
+ - - ~>
158
130
  - !ruby/object:Gem::Version
159
- version: '0'
131
+ version: '0.10'
160
132
  type: :runtime
161
133
  prerelease: false
162
134
  version_requirements: !ruby/object:Gem::Requirement
163
135
  requirements:
164
- - - ! '>='
136
+ - - ~>
165
137
  - !ruby/object:Gem::Version
166
- version: '0'
138
+ version: '0.10'
167
139
  - !ruby/object:Gem::Dependency
168
- name: bundler
140
+ name: ascii_charts
169
141
  requirement: !ruby/object:Gem::Requirement
170
142
  requirements:
171
- - - ! '>='
143
+ - - ~>
172
144
  - !ruby/object:Gem::Version
173
- version: '0'
145
+ version: 0.9.1
174
146
  type: :runtime
175
147
  prerelease: false
176
148
  version_requirements: !ruby/object:Gem::Requirement
177
149
  requirements:
178
- - - ! '>='
150
+ - - ~>
179
151
  - !ruby/object:Gem::Version
180
- version: '0'
152
+ version: 0.9.1
181
153
  - !ruby/object:Gem::Dependency
182
- name: mkfifo
154
+ name: indentation
183
155
  requirement: !ruby/object:Gem::Requirement
184
156
  requirements:
185
- - - ! '>='
157
+ - - ~>
186
158
  - !ruby/object:Gem::Version
187
- version: '0'
159
+ version: '0.1'
188
160
  type: :runtime
189
161
  prerelease: false
190
162
  version_requirements: !ruby/object:Gem::Requirement
191
163
  requirements:
192
- - - ! '>='
164
+ - - ~>
193
165
  - !ruby/object:Gem::Version
194
- version: '0'
166
+ version: '0.1'
195
167
  description: The Official Zillabyte CLI Gem
196
168
  email:
197
169
  - gem@zillabyte.com