usd 0.3 → 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (7) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +19 -9
  3. data/bin/rusdc +167 -11
  4. data/change_log.md +19 -0
  5. data/lib/usd.rb +8 -0
  6. data/usd.gemspec +16 -16
  7. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 01c14a85c19914e885ffd003e8b4584ab7f89a15305866abade4ea4888625940
4
- data.tar.gz: e89f3b47d89b9040077400049e91aa0700f4c68d41b19c6cf7fde7a97f8e46c8
3
+ metadata.gz: 0f3f388a3efedae368a6a99c7169029d78f92e11179ca97ad8edb196a125be5d
4
+ data.tar.gz: ed31ec8a487df5132d06fd71cb77e301017b5292fcd6dde662359d169a0a27cb
5
5
  SHA512:
6
- metadata.gz: 5857ce4ebc1a8b24b59a1ce22e63cdaa9384724401d6aae189a3345c952ce74e22332b2a0a25ec3cf2bc3e3f059f298ca9455e391028f20675cd2069adeb4f3e
7
- data.tar.gz: 97a5207333d77ece64e71b7883f8198bdd8fad5f47f772d72d6f438aaebb3e95ff6179bdbfd81d07574a033181a50642a2ede5f155aa6e62e1453e0170bc3770
6
+ metadata.gz: 3d0d07c311dcc0b1b20c41ea818a08d3e910ae47e6909c0df1a00e4143ab4c190fdaaa9cf3da522bdbf104e54cf2a6404504261edb4d68e80084ca85cd90eb4d
7
+ data.tar.gz: ad097417d07cec1dc9c097dea1785f91fb4b3ff737abb03840e05d4e779b31a2176ed47f5e53e841ce72c261da6dc8fb15cf831fd7887c95f21b9c1a103bff34
data/README.md CHANGED
@@ -3,6 +3,8 @@
3
3
 
4
4
  There is a ruby class and a commandline tool rusdc.
5
5
 
6
+ [![asciicast](https://asciinema.org/a/7zw3RLpikFluqX9XJMxCpMEmS.svg)](https://asciinema.org/a/7zw3RLpikFluqX9XJMxCpMEmS)
7
+
6
8
  # installation
7
9
 
8
10
  just install the gem:
@@ -30,31 +32,38 @@ yum install ruby-devel
30
32
 
31
33
  see [https://github.com/ogaida/usd/wiki/bash-completion](https://github.com/ogaida/usd/wiki/bash-completion)
32
34
 
33
- # external tools
35
+ # external tools / requirements
34
36
 
35
37
  If you use the `rusdc find` command with `--format mlr` option then you need `mlr`.
36
38
 
37
39
  - [mlr - Miller](http://johnkerl.org/miller/doc/index.html) - a great tool for data-transforming to and from json, csv and many more
38
40
 
39
- Place the `mlr`-binary in a path, which is in your PATH-Environment. Download-Url for mlr-releases: [https://github.com/johnkerl/miller/releases](https://github.com/johnkerl/miller/releases)
41
+ Place the `mlr`-binary in a path, which is in your PATH-Environment. Download-Url for mlr-releases: [https://github.com/johnkerl/miller/releases](https://github.com/johnkerl/miller/releases).
42
+
43
+ For uloading attachments `unix2dos` and `base64` is used.
40
44
 
41
45
  # functions from the commandline-tool `rusdc`
42
46
 
43
47
  ```
48
+ rusdc chg_add_attachment <co> <file> # attach the file to co
44
49
  rusdc chg_add_nr <co> <ci> # add a CI to a changeorder
45
50
  rusdc chg_list_nr <co> # list all CIs of one changeorder
46
51
  rusdc create # pipe json-data to create object
47
52
  rusdc field_names <object-type> [wc] # list all fields of an object including its format
48
53
  rusdc find <object-type> [where-clause] [fields, comma separated] [options] # finds each object which meets the wc-condition
49
54
  rusdc get <object-type> <common_name|id> # shows one object by name or id
50
- rusdc get_all_attachments_of_co <co_name> # get all attachments of a changeorder and save all th...
51
- rusdc get_attachment_of_ci <ci_name> <filename> # download an attachment of a CI and print it out on s...
52
- rusdc get_attachment_of_co <co_name> <filename> # download an attachment of a changeorder and print it...
55
+ rusdc get_all_attachments_of_co <co_name> # get all attachments of a changeorder and save all these to current folder
56
+ rusdc get_attachment_of_ci <ci_name> <filename> # download an attachment of a CI and print it out on stdout
57
+ rusdc get_attachment_of_co <co_name> <filename> # download an attachment of a changeorder and print it out on stdout
58
+ rusdc get_attachment_of_in <incident> <filename> # download an attachment of an Incident and print it out on stdout
53
59
  rusdc help [COMMAND] # Describe available commands or one specific command
54
60
  rusdc in_add_2_chg <changeorder> <incident> # add incident to changeorder
61
+ rusdc in_add_attachment <in> <file> # attach the file to incident
55
62
  rusdc in_list_child_ins <in> # list all child-incidents of one incident
56
63
  rusdc list_attachments_of_ci <ci_name> # list all attachments of a CI
57
64
  rusdc list_attachments_of_co <co_name> # list all attachments of a changeorder
65
+ rusdc list_attachments_of_in <in> # list all attachments of an Incident
66
+ rusdc nr_add_attachment <nr> <file> # attach the file to nr
58
67
  rusdc nr_add_child <nr-name> <child-name> # add one child CI to another CI
59
68
  rusdc nr_add_org <nr> <org> # add an Organisation to a ConfigurationItem
60
69
  rusdc nr_changes <nr> [inactive-too] # list all open changeorders of one CI
@@ -62,10 +71,11 @@ rusdc nr_childs <ci-name> # l
62
71
  rusdc nr_incidents <nr> [inactive-too] # lists all incident of a specific CI
63
72
  rusdc nr_parents <ci-name> # lists all parent CIs of a specific CI
64
73
  rusdc update # pipe json-data to update object
65
- rusdc update_attr <obj> <common_name|wc> <key> <value> # updates a direct (not referenced) attribute of one o...
66
- rusdc update_attr_by_id <obj> <id> <key> <value> # updates a plain attribute of one object by id, does ...
67
- rusdc update_ref_attr <obj> <common_name> <key> <value> # updates a referenced attribute of one object.
68
- rusdc update_ref_attr_by_id <obj> <id> <key> <value_id> # updates a referenced attribute of one object_id by v...
74
+ rusdc update_attr <obj> <common_name|wc> <key> <value> # updates a direct (not referenced) attribute of one or more objects.
75
+ rusdc update_attr_by_id <obj> <id> <key> <value> # updates a plain attribute of one object by id, does not work
76
+ rusdc update_ref_attr <obj> <common_name> <key> <value> [ref_obj=nr] # updates a referenced attribute of one object.
77
+ rusdc update_ref_attr_by_id <obj> <id> <key> <value_id> # updates a referenced attribute of one object_id by value-id
78
+ rusdc vcard_via_email <email> # creates a vcard from the given email-address and saves it in the /tmp directory.
69
79
  ```
70
80
 
71
81
  # environment-variables
data/bin/rusdc CHANGED
@@ -7,6 +7,31 @@ require "usd"
7
7
 
8
8
  class Rusdc < Thor
9
9
 
10
+ desc "chg_add_attachment <co> <file>", "attach the file to co"
11
+ def chg_add_attachment(co, file)
12
+ response = upload_attachment(file, loadcon.base_url, loadcon.access_key)
13
+ puts response
14
+ data = JSON.parse(response)
15
+ template = ERB.new <<-EOF
16
+ {
17
+ "lrel_attachments_changes": {
18
+ "attmnt": {
19
+ "@id": "<%= id %>"
20
+ },
21
+ "chg": {
22
+ "@COMMON_NAME": "<%= co %>"
23
+ }
24
+ }
25
+ }
26
+ EOF
27
+ json = template.result_with_hash({
28
+ :id => data["attmnt"]["@id"],
29
+ :co => co
30
+ })
31
+ #puts "create relation to chg with json: #{json}"
32
+ puts loadcon.create({:type => "json", :data => json})
33
+ end
34
+
10
35
  desc "chg_add_nr <co> <ci>", "add a CI to a changeorder"
11
36
  def chg_add_nr(co, ci)
12
37
  template = ERB.new <<-EOF
@@ -127,6 +152,7 @@ class Rusdc < Thor
127
152
  case options[:format]
128
153
  when "json"
129
154
  puts mlr
155
+ e
130
156
  exit exitcode
131
157
  when "yaml"
132
158
  # keys not sorted, maybe a todo
@@ -193,11 +219,10 @@ class Rusdc < Thor
193
219
  end
194
220
  end
195
221
 
196
- desc "get_attachment_of_co <co_name> <filename>", "download an attachment of a changeorder and print it out on stdout"
197
- def get_attachment_of_co(coname, filename)
198
- chg_id=loadcon.request("/caisd-rest/chg/COMMON_NAME-#{coname}")["chg"]["@id"]
199
- att_nr = loadcon.search("lrel_attachments_changes",{'fields' => "attmnt","wc" => "chg = #{chg_id}"})
200
- att_nr.each do |att|
222
+ desc "get_attachment_of_in <incident> <filename>", "download an attachment of an Incident and print it out on stdout"
223
+ def get_attachment_of_in(incident, filename)
224
+ att_in = loadcon.search("lrel_attachments_requests",{'fields' => "attmnt","wc" => "cr.ref_num = '#{incident}'"})
225
+ att_in.each do |att|
201
226
  attmnt = loadcon.request("/caisd-rest/attmnt/#{att["attmnt"]["@id"]}")["attmnt"]
202
227
  if attmnt["orig_file_name"] == filename
203
228
  puts loadcon.request("/caisd-rest/attmnt/#{attmnt["@id"]}/file-resource",{:unchanged => true})
@@ -205,6 +230,41 @@ class Rusdc < Thor
205
230
  end
206
231
  end
207
232
 
233
+ # in: lrel_attachments_requests ?
234
+
235
+ desc "get_attachment_of_co <co_name> <filename>", "download an attachment of a changeorder and print it out on stdout"
236
+ def get_attachment_of_co(coname, filename)
237
+ ids = loadcon.search("lrel_attachments_changes",{'fields' => "*","wc" => "chg.chg_ref_num = 'CO341144' and attmnt.orig_file_name = 'IMAP61A845F524A9D06536_3212.eml'"})
238
+ puts loadcon.request("/caisd-rest/attmnt/#{ids[0]["@id"]}/file-resource",{:unchanged => true}) if ids.class == Array
239
+ end
240
+
241
+
242
+ #lrel_attachments_requests",{'fields' => "attmnt","wc" => "cr.ref_num
243
+ desc "in_add_attachment <in> <file>", "attach the file to incident"
244
+ def in_add_attachment(incident, file)
245
+ response = upload_attachment(file, loadcon.base_url, loadcon.access_key)
246
+ puts response
247
+ data = JSON.parse(response)
248
+ template = ERB.new <<-EOF
249
+ {
250
+ "lrel_attachments_requests": {
251
+ "attmnt": {
252
+ "@id": "<%= id %>"
253
+ },
254
+ "cr": {
255
+ "@COMMON_NAME": "<%= incident %>"
256
+ }
257
+ }
258
+ }
259
+ EOF
260
+ json = template.result_with_hash({
261
+ :id => data["attmnt"]["@id"],
262
+ :incident => incident
263
+ })
264
+ #puts "create relation to chg with json: #{json}"
265
+ puts loadcon.create({:type => "json", :data => json})
266
+ end
267
+
208
268
  desc "in_add_2_chg <changeorder> <incident>", "add incident to changeorder"
209
269
  def in_add_2_chg(chg, incident)
210
270
  invoke('update_ref_attr',['in', incident, 'change', chg])
@@ -226,12 +286,46 @@ class Rusdc < Thor
226
286
  desc "list_attachments_of_co <co_name>", "list all attachments of a changeorder"
227
287
  def list_attachments_of_co(coname)
228
288
  chg_id=loadcon.request("/caisd-rest/chg/COMMON_NAME-#{coname}")["chg"]["@id"]
229
- att_nr = loadcon.search("lrel_attachments_changes",{'fields' => "attmnt","wc" => "chg = #{chg_id}"})
230
- att_nr.each do |att|
289
+ att_chg = loadcon.search("lrel_attachments_changes",{'fields' => "attmnt","wc" => "chg = #{chg_id}"})
290
+ att_chg.each do |att|
231
291
  puts loadcon.request("/caisd-rest/attmnt/#{att["attmnt"]["@id"]}")["attmnt"]["orig_file_name"]
232
292
  end
233
293
  end
234
294
 
295
+ desc "list_attachments_of_in <in>", "list all attachments of an Incident"
296
+ def list_attachments_of_in(incident)
297
+ att_in = loadcon.search("lrel_attachments_requests",{'fields' => "attmnt","wc" => "cr.ref_num = '#{incident}'"})
298
+ att_in.each do |att|
299
+ puts loadcon.request("/caisd-rest/attmnt/#{att["attmnt"]["@id"]}")["attmnt"]["orig_file_name"]
300
+ end
301
+ end
302
+
303
+ desc "nr_add_attachment <nr> <file>", "attach the file to nr"
304
+ def nr_add_attachment(nr, file)
305
+ response = upload_attachment(file, loadcon.base_url, loadcon.access_key)
306
+ puts response
307
+ data = JSON.parse(response)
308
+ nr_id = loadcon.search("nr",{'fields' => "@id","wc" => "name = '#{nr}'"})[0]["@id"]
309
+ template = ERB.new <<-EOF
310
+ {
311
+ "lrel_attachments_nr": {
312
+ "attmnt": {
313
+ "@id": "<%= id %>"
314
+ },
315
+ "nr": {
316
+ "@id": "<%= nr_id %>"
317
+ }
318
+ }
319
+ }
320
+ EOF
321
+ json = template.result_with_hash({
322
+ :id => data["attmnt"]["@id"],
323
+ :nr_id => nr_id
324
+ })
325
+ #puts "create relation to chg with json: #{json}"
326
+ puts loadcon.create({:type => "json", :data => json})
327
+ end
328
+
235
329
  desc "nr_add_child <nr-name> <child-name>", "add one child CI to another CI"
236
330
  def nr_add_child(nr, child)
237
331
  template = ERB.new <<-EOF
@@ -383,8 +477,8 @@ class Rusdc < Thor
383
477
  puts loadcon.update({:type => "json", :data => json})
384
478
  end
385
479
 
386
- desc "update_ref_attr <obj> <common_name> <key> <value>", "updates a referenced attribute of one object."
387
- def update_ref_attr(obj, cn, k, v)
480
+ desc "update_ref_attr <obj> <common_name> <key> <value> [ref_obj=nr]", "updates a referenced attribute of one object."
481
+ def update_ref_attr(obj, cn, k, v, ref_obj = "nr")
388
482
  template = ERB.new <<-EOF
389
483
  {
390
484
  "<%= obj %>": {
@@ -403,8 +497,10 @@ class Rusdc < Thor
403
497
  })
404
498
  data = loadcon.update({:type => "json", :data => json})
405
499
  if data.class == RestClient::BadRequest
406
- puts "direkte Ausführung bekommt einen BadRequest, versuche Update über IDs. #{Usd::CN["cnt"]}"
407
- #find(obj, wc="obj", fields="@COMMON_NAME")
500
+ puts "BadRequest-Response from USD-API, try to update via IDs. be aware to specify a ref_obj if it's not nr."
501
+ cn_id = loadcon.search(obj,{'fields' => "@id","wc" => "#{Usd::CN[obj]} = '#{cn}' and delete_flag = 0"})[0]["@id"]
502
+ value_id = loadcon.search(ref_obj,{'fields' => "@id","wc" => "#{Usd::CN[ref_obj]} = '#{v}' and delete_flag = 0"})[0]["@id"]
503
+ invoke "update_ref_attr_by_id", [obj, cn_id, k, value_id]
408
504
  else
409
505
  puts data
410
506
  end
@@ -431,6 +527,36 @@ class Rusdc < Thor
431
527
  puts loadcon.update({:type => "json", :data => json})
432
528
  end
433
529
 
530
+ desc "vcard_via_email <email>", "creates a vcard from the given email-address and saves it in the /tmp directory."
531
+ def vcard_via_email(email)
532
+ cnt = loadcon.search("cnt",{'fields' => "*","wc" => "email_address = '#{email}' and delete_flag = 0"})[0]
533
+ template = ERB.new <<-EOF
534
+ BEGIN:VCARD
535
+ VERSION:2.1
536
+ N;LANGUAGE=de:;<%= last_name %>;<%= first_name %>
537
+ FN:<%= last_name %>, <%= first_name %>
538
+ TEL;WORK;VOICE:<%= phone_number %>
539
+ TEL;CELL;VOICE:<%= mobile_phone %>
540
+ EMAIL;PREF;INTERNET:<%= email_address %>
541
+ X-MS-OL-DEFAULT-POSTAL-ADDRESS:0
542
+ X-MS-OL-DESIGN;CHARSET=utf-8:<card xmlns="http://schemas.microsoft.com/office/outlook/12/electronicbusinesscards" ver="1.0" layout="left" bgcolor="ffffff"><img xmlns="" align="fit" area="16" use="cardpicture"/><fld xmlns="" prop="name" align="left" dir="ltr" style="b" color="000000" size="10"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="telwork" align="left" dir="ltr" color="d48d2a" size="8"><label align="right" color="626262">Geschäftlich</label></fld><fld xmlns="" prop="telcell" align="left" dir="ltr" color="d48d2a" size="8"><label align="right" color="626262">Mobiltelefon</label></fld><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/></card>
543
+ REV:<%= time %>
544
+ END:VCARD
545
+ EOF
546
+ vcard=template.result_with_hash({
547
+ :last_name => cnt["last_name"],
548
+ :first_name => cnt["first_name"],
549
+ :email_address => cnt["email_address"],
550
+ :phone_number => cnt["phone_number"],
551
+ :mobile_phone => cnt["mobile_phone"],
552
+ :time => Time.now.strftime("%Y%m%dT%H%M%SZ")
553
+ })
554
+ file = `mktemp /tmp/#{cnt["last_name"]}-XXXXX.vcf`.chop
555
+ f = File.open(file,"w+")
556
+ f.puts vcard
557
+ f.close
558
+ puts "the vcard for #{cnt["first_name"]} #{cnt["last_name"]} was created under: #{file}"
559
+ end
434
560
 
435
561
  private
436
562
 
@@ -443,6 +569,36 @@ class Rusdc < Thor
443
569
  end
444
570
  end
445
571
 
572
+ def upload_attachment(file, baseurl, ak)
573
+ baseurl =~ /^([^:]+):/
574
+ server = $1
575
+ filename = File.basename(file)
576
+ uri = "/caisd-rest/attmnt?repositoryId=1002&serverName=#{server}&mimeType=Text&description=#{filename}"
577
+ url = URI("#{baseurl}#{uri}")
578
+ tempfile = Tempfile.new('base64_encoding')
579
+ temp_path=tempfile.path
580
+ tempfile.write("")
581
+ tempfile.close
582
+ cmd = %(base64 "#{file}" > #{temp_path})
583
+ `#{cmd}`
584
+ cmd = %(unix2dos #{tempfile.path})
585
+ `#{cmd}`
586
+ fileObj = File.open(temp_path, "rb")
587
+ fileContent = fileObj.read
588
+ fileObj.close
589
+ tempfile.unlink
590
+ http = Net::HTTP.new(url.host, url.port);
591
+ request = Net::HTTP::Post.new(url)
592
+ request["X-AccessKey"] = ak
593
+ request["Content-Type"] = "multipart/form-data; BOUNDARY=*****MessageBoundary*****"
594
+ request["accept"] = "application/json"
595
+ request["Cache-Control"] = "no-cache"
596
+ request.body = "--*****MessageBoundary*****\r\n \r\nContent-Disposition: form-data; name=\"payload\" \r\nContent-Type: application/xml; CHARACTERSET=UTF-8 \r\n\r\n \r\n<attmnt> \r\n<repository id=\"1002\"></repository> \r\n<orig_file_name>#{filename}</orig_file_name> \r\n<attmnt_name>#{filename}</attmnt_name> \r\n<description>Uploaded with rusdc from rubygem usd</description> \r\n</attmnt> \r\n\r\n \r\n--*****MessageBoundary*****\r\n \r\nContent-Disposition: form-data; name=\"#{filename}\"; filename=\"#{filename}\" \r\nContent-Type: application/octet-stream \r\nContent-Transfer-Encoding: base64\r\n\r\n#{fileContent}\r\n\r\n \r\n--*****MessageBoundary*****--\r\n"
597
+
598
+ response = http.request(request)
599
+ response.read_body
600
+ end
601
+
446
602
  end
447
603
 
448
604
  Rusdc.start(ARGV)
@@ -1,5 +1,24 @@
1
1
  # rusdc changelog
2
2
 
3
+ ## 1.3.1
4
+
5
+ - new functions:
6
+ - `chg_add_attachment`
7
+ - `nr_add_attachment`
8
+ - `in_add_attachment`
9
+ - `vcard_via_email`
10
+
11
+ with the first three funtions you are able to upload files to changeorders, configurationitems and incidents and it does not matter if it is text or binary. the last new function creates vcards in version 2.1 from a contact via its email as identifier.
12
+
13
+ ## 1.2
14
+
15
+ - now in Usd.search function:
16
+ - whereclause is enriched with "common_name like '% wc%'" if it is not a valid whereclause.
17
+
18
+ ## 1.0 and 1.1
19
+
20
+ - `update_ref_attr` rusdc-function fetches the IDs to update the object by itself.
21
+
3
22
  ## 0.3
4
23
 
5
24
  - some common_name resolution
data/lib/usd.rb CHANGED
@@ -248,6 +248,14 @@ class Usd
248
248
  attr.push set_url_parm(params,"start","1")
249
249
  attr.push set_url_parm(params,"size","50")
250
250
  attr.push set_url_parm(params,"WC","")
251
+ # if wc contains no sql-compare operater, it will be changed to "COMMON_NAME like '%<wc-before>%'"
252
+ wc = attr.pop
253
+ wc.gsub!(/^WC=/,'')
254
+ if ([" like ","<",">","="," is "," in "].find {|e| wc =~ /#{e}/}).nil?
255
+ wc = "#{CN[object]} like '%#{wc}%'"
256
+ end
257
+ attr.push "WC=#{wc}"
258
+ # puts attr.jp # debug
251
259
  fields = set_param(params,"fields","COMMON_NAME,id")
252
260
  query_string=attr.join("&")
253
261
  res_rdata = request("/caisd-rest/#{object}?#{query_string}",{:method => "get", :header => header({'X-Obj-Attrs' => fields})})
@@ -1,16 +1,16 @@
1
- Gem::Specification.new do |spec|
2
- spec.name = 'usd'
3
- spec.version = '0.3'
4
- spec.date = '2020-08-31'
5
- spec.summary = "SDM REST-API-Calls"
6
- spec.description = "a Ruby class and a commandlinetool for SDM REST-API-Calls"
7
- spec.authors = ["Oliver Gaida"]
8
- spec.email = 'oliver.gaida@sycor.de'
9
- #spec.files = ["bin/rusdc", "bin/set_env", "lib/usd.rb"] # Dir["*/*"]
10
- spec.files = `git ls-files`.split($/)
11
- spec.homepage = 'https://github.com/ogaida/usd'
12
- spec.executables = %w(rusdc)
13
- spec.add_runtime_dependency 'thor', '~> 0.20', '>= 0.20.3'
14
- spec.add_runtime_dependency 'rest-client', '~> 2.0', '>= 2.0.0'
15
- spec.add_runtime_dependency 'json', '~> 2.1', '>= 2.1.0'
16
- end
1
+ Gem::Specification.new do |spec|
2
+ spec.name = 'usd'
3
+ spec.version = '1.3.2'
4
+ spec.date = '2020-09-10'
5
+ spec.summary = "SDM REST-API-Calls"
6
+ spec.description = "a Ruby class and a commandlinetool for SDM REST-API-Calls"
7
+ spec.authors = ["Oliver Gaida"]
8
+ spec.email = 'oliver.gaida@sycor.de'
9
+ #spec.files = ["bin/rusdc", "bin/set_env", "lib/usd.rb"] # Dir["*/*"]
10
+ spec.files = `git ls-files`.split($/)
11
+ spec.homepage = 'https://github.com/ogaida/usd'
12
+ spec.executables = %w(rusdc)
13
+ spec.add_runtime_dependency 'thor', '~> 0.20', '>= 0.20.3'
14
+ spec.add_runtime_dependency 'rest-client', '~> 2.0', '>= 2.0.0'
15
+ spec.add_runtime_dependency 'json', '~> 2.1', '>= 2.1.0'
16
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: usd
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.3'
4
+ version: 1.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oliver Gaida
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-31 00:00:00.000000000 Z
11
+ date: 2020-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor