bimbly 1.2.1 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/bimbly.rb +74 -2
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 287b627a09f75f158d3b653ed7fceebc10277944
4
- data.tar.gz: 182e951c4ad6ae352a8b2a13e6cef9df8438b07a
3
+ metadata.gz: 73d9be79026f790ae5d9ef131774fb81d15b7ac2
4
+ data.tar.gz: ecee06ae7896ac18b9c46876c4cdf8d99b33bd4e
5
5
  SHA512:
6
- metadata.gz: 8d385f7c63c74ca70b0318f3f5cc4fbb85c0cfae04ee32ea7915632e7a30bfc2f8ee9363eb4722d12d8755a64b111d9f04afdc61f92635fb9ff702cffb1c8667
7
- data.tar.gz: 89c4c249e20bdefb63667eb6c5aedd0275d6815c8fb8f5cb4dea44ef57ecb19ec2b1a0503a11f14d0b21f0631e96e150ee353028a295f60fe79fe6ed634fcb32
6
+ metadata.gz: ddc0e539932fb6c30b6ca7ebaa2dd11addab6130db31f0d3015a1b67f4d298f60986e9fc66c55e097c294bdc2d28326d74e2f15d0a69d3b53d85554ef8f11e3e
7
+ data.tar.gz: 5e47a884eb91b74850e7f0772b7de5d045b37a8977e03b64a11587db0a32a1b12f43d121bf53223416181908d82429b5d827f2641d3e8ba49c8add41baa964a6
data/lib/bimbly.rb CHANGED
@@ -7,8 +7,8 @@ require 'pp'
7
7
  class Bimbly
8
8
  attr_reader :data_type, :error_codes, :error_names, :obj_sets
9
9
  attr_accessor :array, :base_url, :cert, :doc_pointer, :file, :file_select, :headers, :mando_array,
10
- :meth_name, :menu, :param_pointer, :password, :pointer, :port, :req_pointer, :user,
11
- :verb
10
+ :meth_name, :menu, :param_pointer, :password, :pointer, :port, :req_pointer,
11
+ :saved_array, :user, :verb
12
12
 
13
13
  MANDO_EXCEPT = { create_volumes: ['size'] }
14
14
 
@@ -26,6 +26,7 @@ class Bimbly
26
26
  end
27
27
 
28
28
  @meth_name = nil
29
+ @saved_array = []
29
30
 
30
31
  @base_url = "NotConnected"
31
32
  @menu = []
@@ -161,6 +162,8 @@ class Bimbly
161
162
  @meth_name = nil
162
163
  @doc_pointer = @obj_sets
163
164
  @param_pointer = @obj_sets
165
+
166
+ return nil
164
167
  end
165
168
 
166
169
  def details
@@ -214,6 +217,74 @@ class Bimbly
214
217
  return nil
215
218
  end
216
219
 
220
+ def save
221
+ #Method to save call to array
222
+ method_array = @meth_name.to_s.split("_")
223
+
224
+ operation = method_array.shift
225
+
226
+ if method_array.last == "id"
227
+ method_array.pop(2)
228
+ elsif method_array.last == "detailed"
229
+ method_array.pop
230
+ end
231
+
232
+ object = method_array.join("_")
233
+
234
+ operations_hash = {}
235
+
236
+ if @meth_name.match(/_by_id/)
237
+ id = @uri.match(/#{object}\/(.*)/)[1]
238
+ id = id.split("/")[0]
239
+ operations_hash['id'] = id unless id.nil?
240
+ end
241
+
242
+ operations_hash['params'] = extract_params if @uri.match(/\?/)
243
+ operations_hash['request'] = @payload unless @payload.nil?
244
+
245
+ if operations_hash.empty?
246
+ @saved_array << { operation => [ object ] }
247
+ else
248
+ @saved_array << { operation => [ object => operations_hash ] }
249
+ end
250
+
251
+ reset
252
+ end
253
+
254
+ def review
255
+ #Method to review calls that are saved
256
+ @saved_array.each do |ele|
257
+ pp ele
258
+ end
259
+
260
+ return nil
261
+ end
262
+
263
+ def create_playbook(file)
264
+ #Method to output saved calls to a yaml formated playbook
265
+ raise ArgumentError, "Supply #create_playbook with a file name" if file.nil?
266
+ File.write(file, @saved_array.to_yaml)
267
+
268
+ return nil
269
+ end
270
+
271
+ def create_template(file)
272
+ #Method to take saved calls, scrub data, and create a yml template for them
273
+ raise ArgumentError, "Supply #create_template with a file name" if file.nil?
274
+ end
275
+
276
+ def extract_params
277
+ params_hash = {}
278
+ params = @uri.split("?")[1]
279
+ params_array = params.split("&")
280
+ params_array.each do |param|
281
+ key, value = param.split("=")
282
+
283
+ params_hash[key] = value
284
+ end
285
+ params_hash
286
+ end
287
+
217
288
  def build_params(hash)
218
289
  raise ArgumentError, "Please provide a valid hash for parameters" unless
219
290
  hash.instance_of? Hash and hash != {}
@@ -284,6 +355,7 @@ class Bimbly
284
355
  if not payload.nil?
285
356
  payload = JSON.parse(payload) if payload.class == String
286
357
  payload = payload["data"] if payload.keys.include?("data")
358
+ payload = Hash[payload.map{|(k,v)| [k.to_s,v]}]
287
359
  end
288
360
 
289
361
  @uri = uri
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bimbly
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyle Kennedy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-30 00:00:00.000000000 Z
11
+ date: 2017-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client