jinda 0.1.9 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|