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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f3ce5c17fcecc4aec0dd04876f2f49d0eb09652708eac9940830cbd421feb472
4
- data.tar.gz: 78a7b9a7cbb4bf0d24b87156a66c40d56b024a55cc2cba4244f287ce44ce2286
3
+ metadata.gz: 8b84fcc19349e4dc4ecaf04277c5de4b5e83a59c102c8f89de93cde6f563be5d
4
+ data.tar.gz: aa08af1a7565d4b873ab2989365c2186298341d412da536919cecfad295187df
5
5
  SHA512:
6
- metadata.gz: 8be7403c5159d253c77b86aa9a8c4012e6ae92555d9dd0c83907e585f17a252fe6b4f0ec2009a0504ff3cdf4377021c8704285930332f4b36f14dfe1ab705ce8
7
- data.tar.gz: e192a43b60a0588f8b64e8d60f5a029596e5063700c9f105e8087de2ef2416a4c45addb5f2be48b0594690092b60d5f74a2559af618a45f9a67e3519f71d4234
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.0
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.1.8'
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
- # process_services
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
- def sign_in?
86
- if current_ma_user.present?
87
- return true
88
- else
89
- return false
90
- end
91
- end
92
-
93
- # ############################### Themes ###################################
94
- #
95
- # Check login user information from User model: name(code), image for Themes
96
- #
97
- # ##########################################################################
98
- def get_login_user_info
99
- if current_ma_user.present?
100
- $user_image = current_ma_user.image
101
- $user_name = current_ma_user.code
102
- $user_email = current_ma_user.email
103
- else
104
- $user_image = asset_url("user.png", :width => "48")
105
- $user_name = 'Guest User'
106
- $user_email = 'guest@sample.com'
107
- end
108
- return $user_image, $user_name, $user_email
109
- end
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
- # Create / Update Modules, Runseqs, Services from XML
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
- # First Node eg: Module Name
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
- # Second Nodes eg: Role, Link otherwise Services
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
- # Second and Third Nodes eg: Role, Normal Services
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
- # Load index.mm from Rails
340
- # ##########################################################################
340
+ # ##########################################################################
341
+ # Load index.mm from Rails
342
+ # ##########################################################################
341
343
  def get_app
342
- # MM was defined in Rails: config/initializer/jinda.rb
343
- f= MM || "#{Rails.root}/app/jinda/index.mm"
344
- dir= File.dirname(f)
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
- # Jinda Rake Task #
373
- ########################################################################
374
-
375
- def gen_views
376
- t = ["*** generate ui ***"]
377
-
378
- # create array of files to be tested
379
- $afile = Array.new
380
-
381
- Jinda::Module.all.each do |m|
382
- m.services.each do |s|
383
- dir ="app/views/#{s.module.code}"
384
- unless gen_view_file_exist?(dir)
385
- gen_view_mkdir(dir,t)
386
- end
387
-
388
- if s.code=='link'
389
- f= "app/views/#{s.module.code}/index.haml"
390
- $afile << f
391
- unless gen_view_file_exist?(f)
392
- sv = "app/jinda/template/linkview.haml"
393
- f= "app/views/#{s.module.code}/index.haml"
394
- gen_view_createfile(sv,f,t)
395
- end
396
- next
397
- end
398
-
399
- dir ="app/views/#{s.module.code}/#{s.code}"
400
- unless gen_view_file_exist?(dir)
401
- gen_view_mkdir(dir,t)
402
- end
403
-
404
- xml= REXML::Document.new(s.xml)
405
- xml.elements.each('*/node') do |activity|
406
- icon = activity.elements['icon']
407
- next unless icon
408
- action= freemind2action(icon.attributes['BUILTIN'])
409
- next unless ui_action?(action)
410
- code_name = activity.attributes["TEXT"].to_s
411
- next if code_name.comment?
412
- code= name2code(code_name)
413
- if action=="pdf"
414
- f= "app/views/#{s.module.code}/#{s.code}/#{code}.pdf.prawn"
415
- else
416
- f= "app/views/#{s.module.code}/#{s.code}/#{code}.html.erb"
417
- end
418
- $afile << f
419
- unless gen_view_file_exist?(f)
420
- sv = "app/jinda/template/view.html.erb"
421
- gen_view_createfile(sv,f,t)
422
- end
423
- end
424
- end
425
- end
426
- puts $afile.join("\n")
427
- puts t.join("\n")
428
- return $afile
429
- end
430
-
431
- def process_controllers
432
- process_services
433
- modules= Jinda::Module.all
434
- modules.each do |m|
435
- next if controller_exists?(m.code)
436
- system("rails generate controller #{m.code}")
437
- end
438
- end
439
-
440
- def process_models
441
-
442
- # app= get_app
443
- # t= ["process models"]
444
- # xml map sample from index.mm
445
- # node @CREATED=1273819432637 @ID=ID_1098419600 @MODIFIED=1334737006485 @TEXT=Jinda
446
- # node @CREATED=1273819462973 @ID=ID_282419531 @MODIFIED=1493705904561 @POSITION=right @TEXT=services
447
- # node @CREATED=1273819465949 @FOLDED=true @ID=ID_855471610 @MODIFIED=1493768913078 @POSITION=right @TEXT=roles
448
- # node @CREATED=1273819456867 @ID=ID_1677010054 @MODIFIED=1493418874718 @POSITION=left @TEXT=models
449
- # node @CREATED=1292122118499 @FOLDED=true @ID=ID_1957754752 @MODIFIED=1493705885123 @TEXT=person
450
- # node @CREATED=1292122236285 @FOLDED=true @ID=ID_959987887 @MODIFIED=1493768919147 @TEXT=address
451
- # node @CREATED=1493418879485 @ID=ID_1995497233 @MODIFIED=1493718770637 @TEXT=article
452
- # node @CREATED=1493418915637 @ID=ID_429078131 @MODIFIED=1493418930081 @TEXT=comment
453
-
454
- models= @app.elements["//node[@TEXT='models']"] || REXML::Document.new
455
- models.each_element('node') do |model|
456
- # t << "= "+model.attributes["TEXT"]
457
- model_name= model.attributes["TEXT"]
458
- next if model_name.comment?
459
- model_code= name2code(model_name)
460
- model_file= "#{Rails.root}/app/models/#{model_code}.rb"
461
-
462
- if File.exists?(model_file)
463
- doc= File.read(model_file)
464
- else
465
- system("rails generate model #{model_code}")
466
- doc= File.read(model_file)
467
- end
468
-
469
- doc = add_utf8(doc)
470
- attr_hash= make_fields(model)
471
- doc = add_jinda(doc, attr_hash)
472
- # t << "modified: #{model_file}"
473
- File.open(model_file, "w") do |f|
474
- f.puts doc
475
- end
476
-
477
- end
478
-
479
- # puts t.join("\n")
480
- end
481
-
482
- def add_jinda(doc, attr_hash)
483
- if doc =~ /#{@btext}/
484
- s1,s2,s3= doc.partition(/ #{@btext}.*#{@etext}\n/m)
485
- s2= ""
486
- else
487
- s1,s2,s3= doc.partition("include Mongoid::Document\n")
488
- end
489
- doc= s1+s2+ <<-EOT
490
- #{@btext}
491
- include Mongoid::Timestamps
492
- EOT
493
-
494
- attr_hash.each do |a|
495
- # doc+= "\n*****"+a.to_s+"\n"
496
- if a[:edit]
497
- doc += " #{a[:text]}\n"
498
- else
499
- doc += " field :#{a[:code]}, :type => #{a[:type].capitalize}\n"
500
- end
501
- end
502
- doc += " #{@etext}\n"
503
- doc + s3
504
- end
505
-
506
- def add_utf8(doc)
507
- unless doc =~ /encoding\s*:\s*utf-8/
508
- doc.insert 0, "# encoding: utf-8\n"
509
- else
510
- doc
511
- end
512
- end
513
-
514
- # inspect all nodes that has attached file (2 cases) and replace relative path with absolute path
515
- def make_folders_absolute(f,tt)
516
- tt.elements.each("//node") do |nn|
517
- if nn.attributes['LINK']
518
- nn.attributes['LINK']= File.expand_path(File.dirname(f))+"/#{nn.attributes['LINK']}"
519
- end
520
- end
521
- end
522
-
523
- def name2code(s)
524
- # rather not ignore # symbol cause it could be comment
525
- code, name = s.split(':')
526
- code.downcase.strip.gsub(' ','_').gsub(/[^#_\/a-zA-Z0-9]/,'')
527
- end
528
-
529
- def model_exists?(model)
530
- File.exists? "#{Rails.root}/app/models/#{model}.rb"
531
- end
532
-
533
- def make_fields(n)
534
- # s= field string used by generate model cli (old style jinda)
535
- s= ""
536
- # h= hash :code, :type, :edit, :text
537
- h= []
538
- n.each_element('node') do |nn|
539
- text = nn.attributes['TEXT']
540
- icon = nn.elements['icon']
541
- edit= (icon && icon.attribute('BUILTIN').value=="edit")
542
- next if text.comment? && !edit
543
-
544
- # sometimes freemind puts all fields inside a blank node
545
- unless text.empty?
546
- k,v= text.split(/:\s*/,2)
547
- v ||= 'string'
548
- v= 'float' if v=~/double/i
549
- s << " #{name2code(k.strip)}:#{v.strip} "
550
- h << {:code=>name2code(k.strip), :type=>v.strip, :edit=>edit, :text=>text}
551
- else
552
- nn.each_element('node') do |nnn|
553
- icon = nnn.elements['icon']
554
- edit1= (icon && icon.attribute('BUILTIN').value=="edit")
555
- text1 = nnn.attributes['TEXT']
556
- next if text1 =~ /\#.*/
557
- k,v= text1.split(/:\s*/,2)
558
- v ||= 'string'
559
- v= 'float' if v=~/double/i
560
- s << " #{name2code(k.strip)}:#{v.strip} "
561
- h << {:code=>name2code(k.strip), :type=>v.strip, :edit=>edit1, :text=>text1}
562
- end
563
- end
564
- end
565
- # f
566
- h
567
- end
568
-
569
- # Add method to ruby class String
570
- # ###############################
571
- class String
572
- def comment?
573
- self[0]=='#'
574
- # self[0]==35 # check if first char is #
575
- end
576
- def to_code
577
- s= self.dup
578
- s.downcase.strip.gsub(' ','_').gsub(/[^#_\/a-zA-Z0-9]/,'')
579
- end
580
- end
581
-
582
- ########################################################################
583
- # END code from jinda.rake #
584
- ########################################################################
585
-
586
-
587
- ########################################################################
588
- # Methods to be overrided by gemhelp #
589
- # for Rspec Test
590
- ########################################################################
591
- def gen_view_file_exist?(dir)
592
- File.exists?(dir)
593
- end
594
-
595
- def gen_view_mkdir(dir,t)
596
- Dir.mkdir(dir)
597
- t << "create directory #{dir}"
598
- end
599
-
600
- def gen_view_createfile(s,f,t)
601
- FileUtils.cp s,f
602
- # FileUtils.cp "app/jinda/template/linkview.haml",f
603
- t << "create file #{f}"
604
- end
605
- ########################################################################
606
-
607
- def controller_exists?(modul)
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
@@ -1,3 +1,3 @@
1
1
  module Jinda
2
- VERSION = "0.1.9"
2
+ VERSION = "0.2.0"
3
3
  end
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.1.9
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-07-12 00:00:00.000000000 Z
12
+ date: 2018-09-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler