jinda 0.1.9 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/lib/jinda/helpers.rb +286 -284
- data/lib/jinda/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b84fcc19349e4dc4ecaf04277c5de4b5e83a59c102c8f89de93cde6f563be5d
|
4
|
+
data.tar.gz: aa08af1a7565d4b873ab2989365c2186298341d412da536919cecfad295187df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a5a7180d9bde1efc58adfa2d069f0640566c75b7d0d1162885ab57896361af6e1fc35bbaf19eb9ab52406ed9bb0bfb8fb053d718b5dfaba3f5d2a6f4956a884e
|
7
|
+
data.tar.gz: c9c79c5b4a4e82aaa406b3ad4c42258217fed3dba81a05772063df643b30aaa4e3f4811c6320dd9d143d6b747d5f2d2641e88c13c09668e0071aef49f8c3f685
|
data/README.md
CHANGED
@@ -16,7 +16,7 @@ Rails Application Generator using Freemind
|
|
16
16
|
These versions works for sure but others may do.
|
17
17
|
|
18
18
|
* Ruby 2.5.0
|
19
|
-
* Rails 5.2.
|
19
|
+
* Rails 5.2.1
|
20
20
|
* MongoDB 6
|
21
21
|
* Freemind 1.0.1
|
22
22
|
|
@@ -36,7 +36,7 @@ app without ActiveRecord
|
|
36
36
|
|
37
37
|
## Add jinda to your Gemfile:
|
38
38
|
|
39
|
-
gem 'jinda', '~> 0.
|
39
|
+
gem 'jinda', '~> 0.2.0'
|
40
40
|
|
41
41
|
For Development (most updated)
|
42
42
|
|
data/lib/jinda/helpers.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
# This helper handle
|
3
3
|
# 1. Read xml from mm file to run core program:
|
4
|
-
#
|
4
|
+
# process_services
|
5
5
|
# 2. Update Models, Services, Runseqs from index.mm (XML)
|
6
6
|
# 3. Rake Task to create app models, views and controller from index.mm(updated)
|
7
7
|
#
|
@@ -23,6 +23,8 @@
|
|
23
23
|
|
24
24
|
require 'active_support'
|
25
25
|
require 'active_support/core_ext'
|
26
|
+
|
27
|
+
|
26
28
|
module Jinda
|
27
29
|
module Helpers
|
28
30
|
require "rexml/document"
|
@@ -82,31 +84,31 @@ module Jinda
|
|
82
84
|
return default_role ? default_role.name.to_s : ''
|
83
85
|
end
|
84
86
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
87
|
+
def sign_in?
|
88
|
+
if current_ma_user.present?
|
89
|
+
return true
|
90
|
+
else
|
91
|
+
return false
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
# ############################### Themes ###################################
|
96
|
+
#
|
97
|
+
# Check login user information from User model: name(code), image for Themes
|
98
|
+
#
|
99
|
+
# ##########################################################################
|
100
|
+
def get_login_user_info
|
101
|
+
if current_ma_user.present?
|
102
|
+
$user_image = current_ma_user.image
|
103
|
+
$user_name = current_ma_user.code
|
104
|
+
$user_email = current_ma_user.email
|
105
|
+
else
|
106
|
+
$user_image = asset_url("user.png", :width => "48")
|
107
|
+
$user_name = 'Guest User'
|
108
|
+
$user_email = 'guest@sample.com'
|
109
|
+
end
|
110
|
+
return $user_image, $user_name, $user_email
|
111
|
+
end
|
110
112
|
|
111
113
|
def name2code(s)
|
112
114
|
# rather not ignore # symbol cause it could be comment
|
@@ -246,12 +248,12 @@ module Jinda
|
|
246
248
|
# ""
|
247
249
|
# end
|
248
250
|
# end
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
251
|
+
|
252
|
+
# ##########################################################################
|
253
|
+
#
|
254
|
+
# Create / Update Modules, Runseqs, Services from XML
|
255
|
+
#
|
256
|
+
# ##########################################################################
|
255
257
|
def process_services
|
256
258
|
# todo: persist mm_md5
|
257
259
|
xml= @app||get_app
|
@@ -276,9 +278,9 @@ module Jinda
|
|
276
278
|
module_code= code.to_code
|
277
279
|
menu_icon = m_icon(m)
|
278
280
|
|
279
|
-
|
280
|
-
|
281
|
-
|
281
|
+
# ##########################################################################
|
282
|
+
# First Node eg: Module Name
|
283
|
+
# ##########################################################################
|
282
284
|
# create or update to GmaModule
|
283
285
|
ma_module= Jinda::Module.find_or_create_by :code=>module_code
|
284
286
|
ma_module.update_attributes :uid=>ma_module.id.to_s, :icon=>menu_icon
|
@@ -288,9 +290,9 @@ module Jinda
|
|
288
290
|
mseq += 1
|
289
291
|
seq= 0
|
290
292
|
|
291
|
-
|
292
|
-
|
293
|
-
|
293
|
+
# ##########################################################################
|
294
|
+
# Second Nodes eg: Role, Link otherwise Services
|
295
|
+
# ##########################################################################
|
294
296
|
m.each_element('node') do |s|
|
295
297
|
service_name= s.attributes["TEXT"].to_s
|
296
298
|
scode, sname= service_name.split(':', 2)
|
@@ -313,9 +315,9 @@ module Jinda
|
|
313
315
|
protected_services << ma_service.uid
|
314
316
|
else
|
315
317
|
|
316
|
-
|
317
|
-
|
318
|
-
|
318
|
+
# ##########################################################################
|
319
|
+
# Second and Third Nodes eg: Role, Normal Services
|
320
|
+
# ##########################################################################
|
319
321
|
# normal service
|
320
322
|
step1 = s.elements['node']
|
321
323
|
role= get_option_xml("role", step1) || ""
|
@@ -335,13 +337,13 @@ module Jinda
|
|
335
337
|
Jinda::Service.not_in(:uid=>protected_services).delete_all
|
336
338
|
end
|
337
339
|
|
338
|
-
|
339
|
-
|
340
|
-
|
340
|
+
# ##########################################################################
|
341
|
+
# Load index.mm from Rails
|
342
|
+
# ##########################################################################
|
341
343
|
def get_app
|
342
|
-
|
343
|
-
|
344
|
-
|
344
|
+
# MM was defined in Rails: config/initializer/jinda.rb
|
345
|
+
f= MM || "#{Rails.root}/app/jinda/index.mm"
|
346
|
+
dir= File.dirname(f)
|
345
347
|
t= REXML::Document.new(File.read(MM).gsub("\n","")).root
|
346
348
|
recheck= true ; first_pass= true
|
347
349
|
while recheck
|
@@ -368,243 +370,243 @@ module Jinda
|
|
368
370
|
return t
|
369
371
|
end
|
370
372
|
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
373
|
+
########################################################################
|
374
|
+
# Jinda Rake Task #
|
375
|
+
########################################################################
|
376
|
+
|
377
|
+
def gen_views
|
378
|
+
t = ["*** generate ui ***"]
|
379
|
+
|
380
|
+
# create array of files to be tested
|
381
|
+
$afile = Array.new
|
382
|
+
|
383
|
+
Jinda::Module.all.each do |m|
|
384
|
+
m.services.each do |s|
|
385
|
+
dir ="app/views/#{s.module.code}"
|
386
|
+
unless gen_view_file_exist?(dir)
|
387
|
+
gen_view_mkdir(dir,t)
|
388
|
+
end
|
389
|
+
|
390
|
+
if s.code=='link'
|
391
|
+
f= "app/views/#{s.module.code}/index.haml"
|
392
|
+
$afile << f
|
393
|
+
unless gen_view_file_exist?(f)
|
394
|
+
sv = "app/jinda/template/linkview.haml"
|
395
|
+
f= "app/views/#{s.module.code}/index.haml"
|
396
|
+
gen_view_createfile(sv,f,t)
|
397
|
+
end
|
398
|
+
next
|
399
|
+
end
|
400
|
+
|
401
|
+
dir ="app/views/#{s.module.code}/#{s.code}"
|
402
|
+
unless gen_view_file_exist?(dir)
|
403
|
+
gen_view_mkdir(dir,t)
|
404
|
+
end
|
405
|
+
|
406
|
+
xml= REXML::Document.new(s.xml)
|
407
|
+
xml.elements.each('*/node') do |activity|
|
408
|
+
icon = activity.elements['icon']
|
409
|
+
next unless icon
|
410
|
+
action= freemind2action(icon.attributes['BUILTIN'])
|
411
|
+
next unless ui_action?(action)
|
412
|
+
code_name = activity.attributes["TEXT"].to_s
|
413
|
+
next if code_name.comment?
|
414
|
+
code= name2code(code_name)
|
415
|
+
if action=="pdf"
|
416
|
+
f= "app/views/#{s.module.code}/#{s.code}/#{code}.pdf.prawn"
|
417
|
+
else
|
418
|
+
f= "app/views/#{s.module.code}/#{s.code}/#{code}.html.erb"
|
419
|
+
end
|
420
|
+
$afile << f
|
421
|
+
unless gen_view_file_exist?(f)
|
422
|
+
sv = "app/jinda/template/view.html.erb"
|
423
|
+
gen_view_createfile(sv,f,t)
|
424
|
+
end
|
425
|
+
end
|
426
|
+
end
|
427
|
+
end
|
428
|
+
puts $afile.join("\n")
|
429
|
+
puts t.join("\n")
|
430
|
+
return $afile
|
431
|
+
end
|
432
|
+
|
433
|
+
def process_controllers
|
434
|
+
process_services
|
435
|
+
modules= Jinda::Module.all
|
436
|
+
modules.each do |m|
|
437
|
+
next if controller_exists?(m.code)
|
438
|
+
system("rails generate controller #{m.code}")
|
439
|
+
end
|
440
|
+
end
|
441
|
+
|
442
|
+
def process_models
|
443
|
+
|
444
|
+
# app= get_app
|
445
|
+
# t= ["process models"]
|
446
|
+
# xml map sample from index.mm
|
447
|
+
# node @CREATED=1273819432637 @ID=ID_1098419600 @MODIFIED=1334737006485 @TEXT=Jinda
|
448
|
+
# node @CREATED=1273819462973 @ID=ID_282419531 @MODIFIED=1493705904561 @POSITION=right @TEXT=services
|
449
|
+
# node @CREATED=1273819465949 @FOLDED=true @ID=ID_855471610 @MODIFIED=1493768913078 @POSITION=right @TEXT=roles
|
450
|
+
# node @CREATED=1273819456867 @ID=ID_1677010054 @MODIFIED=1493418874718 @POSITION=left @TEXT=models
|
451
|
+
# node @CREATED=1292122118499 @FOLDED=true @ID=ID_1957754752 @MODIFIED=1493705885123 @TEXT=person
|
452
|
+
# node @CREATED=1292122236285 @FOLDED=true @ID=ID_959987887 @MODIFIED=1493768919147 @TEXT=address
|
453
|
+
# node @CREATED=1493418879485 @ID=ID_1995497233 @MODIFIED=1493718770637 @TEXT=article
|
454
|
+
# node @CREATED=1493418915637 @ID=ID_429078131 @MODIFIED=1493418930081 @TEXT=comment
|
455
|
+
|
456
|
+
models= @app.elements["//node[@TEXT='models']"] || REXML::Document.new
|
457
|
+
models.each_element('node') do |model|
|
458
|
+
# t << "= "+model.attributes["TEXT"]
|
459
|
+
model_name= model.attributes["TEXT"]
|
460
|
+
next if model_name.comment?
|
461
|
+
model_code= name2code(model_name)
|
462
|
+
model_file= "#{Rails.root}/app/models/#{model_code}.rb"
|
463
|
+
|
464
|
+
if File.exists?(model_file)
|
465
|
+
doc= File.read(model_file)
|
466
|
+
else
|
467
|
+
system("rails generate model #{model_code}")
|
468
|
+
doc= File.read(model_file)
|
469
|
+
end
|
470
|
+
|
471
|
+
doc = add_utf8(doc)
|
472
|
+
attr_hash= make_fields(model)
|
473
|
+
doc = add_jinda(doc, attr_hash)
|
474
|
+
# t << "modified: #{model_file}"
|
475
|
+
File.open(model_file, "w") do |f|
|
476
|
+
f.puts doc
|
477
|
+
end
|
478
|
+
|
479
|
+
end
|
480
|
+
|
481
|
+
# puts t.join("\n")
|
482
|
+
end
|
483
|
+
|
484
|
+
def add_jinda(doc, attr_hash)
|
485
|
+
if doc =~ /#{@btext}/
|
486
|
+
s1,s2,s3= doc.partition(/ #{@btext}.*#{@etext}\n/m)
|
487
|
+
s2= ""
|
488
|
+
else
|
489
|
+
s1,s2,s3= doc.partition("include Mongoid::Document\n")
|
490
|
+
end
|
491
|
+
doc= s1+s2+ <<-EOT
|
492
|
+
#{@btext}
|
493
|
+
include Mongoid::Timestamps
|
494
|
+
EOT
|
495
|
+
|
496
|
+
attr_hash.each do |a|
|
497
|
+
# doc+= "\n*****"+a.to_s+"\n"
|
498
|
+
if a[:edit]
|
499
|
+
doc += " #{a[:text]}\n"
|
500
|
+
else
|
501
|
+
doc += " field :#{a[:code]}, :type => #{a[:type].capitalize}\n"
|
502
|
+
end
|
503
|
+
end
|
504
|
+
doc += " #{@etext}\n"
|
505
|
+
doc + s3
|
506
|
+
end
|
507
|
+
|
508
|
+
def add_utf8(doc)
|
509
|
+
unless doc =~ /encoding\s*:\s*utf-8/
|
510
|
+
doc.insert 0, "# encoding: utf-8\n"
|
511
|
+
else
|
512
|
+
doc
|
513
|
+
end
|
514
|
+
end
|
515
|
+
|
516
|
+
# inspect all nodes that has attached file (2 cases) and replace relative path with absolute path
|
517
|
+
def make_folders_absolute(f,tt)
|
518
|
+
tt.elements.each("//node") do |nn|
|
519
|
+
if nn.attributes['LINK']
|
520
|
+
nn.attributes['LINK']= File.expand_path(File.dirname(f))+"/#{nn.attributes['LINK']}"
|
521
|
+
end
|
522
|
+
end
|
523
|
+
end
|
524
|
+
|
525
|
+
def name2code(s)
|
526
|
+
# rather not ignore # symbol cause it could be comment
|
527
|
+
code, name = s.split(':')
|
528
|
+
code.downcase.strip.gsub(' ','_').gsub(/[^#_\/a-zA-Z0-9]/,'')
|
529
|
+
end
|
530
|
+
|
531
|
+
def model_exists?(model)
|
532
|
+
File.exists? "#{Rails.root}/app/models/#{model}.rb"
|
533
|
+
end
|
534
|
+
|
535
|
+
def make_fields(n)
|
536
|
+
# s= field string used by generate model cli (old style jinda)
|
537
|
+
s= ""
|
538
|
+
# h= hash :code, :type, :edit, :text
|
539
|
+
h= []
|
540
|
+
n.each_element('node') do |nn|
|
541
|
+
text = nn.attributes['TEXT']
|
542
|
+
icon = nn.elements['icon']
|
543
|
+
edit= (icon && icon.attribute('BUILTIN').value=="edit")
|
544
|
+
next if text.comment? && !edit
|
545
|
+
|
546
|
+
# sometimes freemind puts all fields inside a blank node
|
547
|
+
unless text.empty?
|
548
|
+
k,v= text.split(/:\s*/,2)
|
549
|
+
v ||= 'string'
|
550
|
+
v= 'float' if v=~/double/i
|
551
|
+
s << " #{name2code(k.strip)}:#{v.strip} "
|
552
|
+
h << {:code=>name2code(k.strip), :type=>v.strip, :edit=>edit, :text=>text}
|
553
|
+
else
|
554
|
+
nn.each_element('node') do |nnn|
|
555
|
+
icon = nnn.elements['icon']
|
556
|
+
edit1= (icon && icon.attribute('BUILTIN').value=="edit")
|
557
|
+
text1 = nnn.attributes['TEXT']
|
558
|
+
next if text1 =~ /\#.*/
|
559
|
+
k,v= text1.split(/:\s*/,2)
|
560
|
+
v ||= 'string'
|
561
|
+
v= 'float' if v=~/double/i
|
562
|
+
s << " #{name2code(k.strip)}:#{v.strip} "
|
563
|
+
h << {:code=>name2code(k.strip), :type=>v.strip, :edit=>edit1, :text=>text1}
|
564
|
+
end
|
565
|
+
end
|
566
|
+
end
|
567
|
+
# f
|
568
|
+
h
|
569
|
+
end
|
570
|
+
|
571
|
+
# Add method to ruby class String
|
572
|
+
# ###############################
|
573
|
+
class String
|
574
|
+
def comment?
|
575
|
+
self[0]=='#'
|
576
|
+
# self[0]==35 # check if first char is #
|
577
|
+
end
|
578
|
+
def to_code
|
579
|
+
s= self.dup
|
580
|
+
s.downcase.strip.gsub(' ','_').gsub(/[^#_\/a-zA-Z0-9]/,'')
|
581
|
+
end
|
582
|
+
end
|
583
|
+
|
584
|
+
########################################################################
|
585
|
+
# END code from jinda.rake #
|
586
|
+
########################################################################
|
587
|
+
|
588
|
+
|
589
|
+
########################################################################
|
590
|
+
# Methods to be overrided by gemhelp #
|
591
|
+
# for Rspec Test
|
592
|
+
########################################################################
|
593
|
+
def gen_view_file_exist?(dir)
|
594
|
+
File.exists?(dir)
|
595
|
+
end
|
596
|
+
|
597
|
+
def gen_view_mkdir(dir,t)
|
598
|
+
Dir.mkdir(dir)
|
599
|
+
t << "create directory #{dir}"
|
600
|
+
end
|
601
|
+
|
602
|
+
def gen_view_createfile(s,f,t)
|
603
|
+
FileUtils.cp s,f
|
604
|
+
# FileUtils.cp "app/jinda/template/linkview.haml",f
|
605
|
+
t << "create file #{f}"
|
606
|
+
end
|
607
|
+
########################################################################
|
608
|
+
|
609
|
+
def controller_exists?(modul)
|
608
610
|
File.exists? "#{Rails.root}/app/controllers/#{modul}_controller.rb"
|
609
611
|
end
|
610
612
|
def dup_hash(a)
|
data/lib/jinda/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jinda
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Prateep Kul
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-09-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|