cetus 0.3.2 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/cetus +62 -11
  3. data/cetus.gemspec +1 -1
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 52e37c1ef61b31f7e36d1763504508ed9bdd1322d2dda48f6fa8bcce7d193af2
4
- data.tar.gz: 1bd91f673750b00b35966821b01fa325c6e7126adba136d37e5f840cc9eac148
3
+ metadata.gz: 995a3f03065183fd8722ba976f9b2eb12ed5a69043c798fed0d5a2fab419b0ae
4
+ data.tar.gz: 8b94f488bee274950016b2614c455e721f75e5af101b427a31d331484167a21e
5
5
  SHA512:
6
- metadata.gz: '0860ce4d4912f8ce012df6fcbd267c484862ddb97012bdfa0615aa3437497eb1f907e82cbfbe6c5320a726416b215cb62e0c471b15af9664774a94b09c571055'
7
- data.tar.gz: d73d75fbee14120bb90327619c35e9521226386cfc779854be32e7b7f915acdb5fe51148fa54701a70dddb4e1751011ed968fd9f2a9b6b1d1b24d9329daf40e7
6
+ metadata.gz: a329ef150d0743ca07438b15acb5381bf5912310eaf508fb27bc6d7bf9dc9b7ff5bfbee9447e10fc8c2108a0605637329ece522635a6389d3f9a71a8e6715aa8
7
+ data.tar.gz: 370be4f893da82674db064dbe89efc33c1959b08659aecc002a33e72c4a6cac562520a6e13b91679e671a7e1b430f37a91368ebf1e25f9ee61934c61c644667b
data/bin/cetus CHANGED
@@ -8,7 +8,7 @@
8
8
  # Author: rkumar http://github.com/rkumar/cetus/
9
9
  # Date: 2013-02-17 - 17:48
10
10
  # License: GPL
11
- # Last update: 2019-06-01 12:33
11
+ # Last update: 2019-06-20 09:24
12
12
  # --------------------------------------------------------------------------- #
13
13
  # cetus.rb Copyright (C) 2012-2019 rahul kumar
14
14
  # == CHANGELOG
@@ -41,7 +41,7 @@ now = Time.now.strftime("%Y-%m-%d %H:%M:%S")
41
41
  # alias c=~/bin/cetus.rb
42
42
  # c
43
43
 
44
- VERSION = '0.3.2.0'
44
+ VERSION = '0.3.3.0'
45
45
  CONFIG_PATH = ENV['XDG_CONFIG_HOME'] || File.join(ENV['HOME'], '.config')
46
46
  CONFIG_FILE = "#{CONFIG_PATH}/cetus/conf.yml"
47
47
 
@@ -458,10 +458,13 @@ CURSOR_COLOR = REVERSE
458
458
  @status_color = 4 # status line, can be 2 3 4 5 6
459
459
  @status_color_right = 8 # status line right part
460
460
 
461
+ @now = Time.now
462
+
461
463
  # Menubar on top of screen
462
464
  @help = "#{BOLD}?#{BOLD_OFF} Help #{BOLD}`#{BOLD_OFF} Menu #{BOLD}!#{BOLD_OFF} Execute #{BOLD}=#{BOLD_OFF} Toggle #{BOLD}C-x#{BOLD_OFF} File Actions #{BOLD}q#{BOLD_OFF} Quit "
463
465
 
464
466
  def read_directory
467
+ @now = Time.now
465
468
  rescan_required false
466
469
 
467
470
  @filterstr ||= 'M' # XXX can we remove from here
@@ -969,9 +972,10 @@ def truncate_formatted_filename f, unformatted_len, wid
969
972
  # NOTE: we cannot remove the hint
970
973
  # for single hints we need to add extra space
971
974
  # there could be escape codes of varying length
972
- sindex = f.index ' '
975
+ sindex = f.index(' ') || f.index('+')
973
976
  # 4 = 2 for literals, 2 to get ahead of sindex+1
974
- f[0..sindex + 1] + '<' + f[sindex + 4 + excess..-1] + ' '
977
+ # FIXME crashing here, maybe there was a plus sign in place of space
978
+ f[0..sindex + 0] + '<' + f[sindex + 3 + excess..-1] + ' '
975
979
  end
976
980
  return f
977
981
  end
@@ -2830,7 +2834,10 @@ def file_actions action=nil
2830
2834
  end
2831
2835
 
2832
2836
  end
2833
- h[:M] = :set_move_target if File.directory?(current_file)
2837
+ # 2019-06-20 - FIXME next line crashes current_file is nil
2838
+ if current_file
2839
+ h[:M] = :set_move_target if File.directory?(current_file)
2840
+ end
2834
2841
  h[:z] = :zip unless filetype(first) == :zip
2835
2842
  h['/'] = :ffind
2836
2843
  h[:l] = :locate
@@ -2900,7 +2907,7 @@ def file_actions action=nil
2900
2907
  1
2901
2908
  # already been executed by menu
2902
2909
  # We could have just put 'stat' in the menu but that doesn't look so nice
2903
- when :locate
2910
+ when :locate, :ffind
2904
2911
  1
2905
2912
  else
2906
2913
  return unless menu_text
@@ -3092,7 +3099,8 @@ def move_to position
3092
3099
  if current_file == SEPARATOR
3093
3100
  @cursor += 1 if @cursor_movement == :down
3094
3101
  @cursor -= 1 if @cursor_movement == :up
3095
- return
3102
+ # 2019-06-01 - remove return in case scrolling happens here
3103
+ # return
3096
3104
  end
3097
3105
 
3098
3106
  # 2019-03-18 - adding sta
@@ -3559,10 +3567,16 @@ def enhance_file_list
3559
3567
  # if so , expand lib and maybe bin, put a couple recent files
3560
3568
  # FIXME: gemspec file will be same as current folder
3561
3569
  if @files.index('Gemfile') || !@files.grep(/\.gemspec/).empty?
3570
+
3571
+ if @files.index('app/')
3572
+ insert_into_list('config/', "config/routes.rb")
3573
+ end
3574
+
3562
3575
  # usually the lib dir has only one file and one dir
3576
+ # NOTE: avoid lib if rails project
3563
3577
  flg = false
3564
3578
  @files.concat get_important_files(@current_dir)
3565
- if @files.index('lib/')
3579
+ if @files.index('lib/') && !@files.index('app/')
3566
3580
  # get first five entries by modification time
3567
3581
  # f1 = `zsh -c 'print -rl -- lib/*(om[1,5]MN)'`.split("\n")
3568
3582
  f = get_files_by_mtime('lib')&.first(5)
@@ -3573,6 +3587,7 @@ def enhance_file_list
3573
3587
  end
3574
3588
 
3575
3589
  # look into lib file for that project
3590
+ # lib has a dir in it with the gem name
3576
3591
  dd = File.basename(@current_dir)
3577
3592
  if f.index("lib/#{dd}/")
3578
3593
  # f1 = `zsh -c 'print -rl -- lib/#{dd}/*(om[1,5]MN)'`.split("\n")
@@ -3586,18 +3601,43 @@ def enhance_file_list
3586
3601
  end
3587
3602
 
3588
3603
  # look into bin directory and get first five modified files
3589
- if @files.index('bin/')
3604
+ # FIXME: not in the case of rails, only for commandline programs
3605
+ if @files.index('bin/') && !@files.index('app/')
3590
3606
  # f1 = `zsh -c 'print -rl -- bin/*(om[1,5]MN)'`.split("\n")
3591
3607
  f = get_files_by_mtime('bin')&.first(5)
3592
3608
  # @log.warn "2768 f1 #{f1} != #{f} in bin/" if f1 != f
3593
3609
  insert_into_list('bin/', f) if f && !f.empty?
3594
3610
  flg = true
3595
3611
  end
3612
+
3613
+ # oft used rails files
3614
+ # TODO remove concerns dir
3615
+ # FIXME too many files added, try adding recent only
3616
+ if @files.index('app/')
3617
+ [ "app/controllers", "app/models", "app/views" ].each do |dir|
3618
+ f = get_files_by_mtime(dir)&.first(5)
3619
+ if f && !f.empty?
3620
+ @log.debug "f has #{f.count} files before"
3621
+ @log.debug "f has #{f} files before"
3622
+ f = get_recent(f)
3623
+ @log.debug "f has #{f.count} files after"
3624
+ @log.debug "f has #{f} files after"
3625
+ insert_into_list("#{dir}/", f) unless f.empty?
3626
+ end
3627
+ end
3628
+
3629
+ insert_into_list('config/', "config/routes.rb")
3630
+
3631
+ # top 3 dirs in app dir
3632
+ f = get_files_by_mtime('app/')&.first(3)
3633
+ insert_into_list('app/', f) if f && !f.empty?
3634
+ flg = true
3635
+ end
3596
3636
  return if flg
3597
3637
 
3598
- # lib has a dir in it with the gem name
3599
3638
 
3600
- end
3639
+ end # Gemfile
3640
+
3601
3641
  # 2019-06-01 - added for crystal and other languages
3602
3642
  if @files.index('src/')
3603
3643
  f = get_files_by_mtime('src')&.first(5)
@@ -3675,6 +3715,16 @@ def insert_into_list _dir, file
3675
3715
  @files.push(*file)
3676
3716
  end
3677
3717
 
3718
+ def get_recent(array)
3719
+ array = array.select do |f|
3720
+ stat = File.stat(f)
3721
+ span = @now - stat.mtime
3722
+ spandays = span / 86400
3723
+ spandays < 3
3724
+ end
3725
+ array
3726
+ end
3727
+
3678
3728
  # Get visited files and bookmarks that are inside this directory
3679
3729
  # at a lower level.
3680
3730
  # 2019-03-23 - not exactly clear what is happening XXX
@@ -3691,6 +3741,7 @@ def get_important_files dir
3691
3741
  @visited_files.each do |e|
3692
3742
  list << e[l..-1] if e.index(dir) == 0
3693
3743
  end
3744
+ list = get_recent(list)
3694
3745
 
3695
3746
  # bookmarks if it starts with this directory then add it
3696
3747
  # FIXME it puts same directory cetus into the list with full path
@@ -6,7 +6,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
6
6
 
7
7
  Gem::Specification.new do |spec|
8
8
  spec.name = 'cetus'
9
- spec.version = '0.3.2'
9
+ spec.version = '0.3.4'
10
10
  spec.authors = ['Rahul Kumar']
11
11
  spec.email = ['oneness.univ@gmail.com']
12
12
  spec.description = %q{lightning fast file navigator}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cetus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rahul Kumar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-01 00:00:00.000000000 Z
11
+ date: 2019-12-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -79,7 +79,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
79
  - !ruby/object:Gem::Version
80
80
  version: '0'
81
81
  requirements: []
82
- rubygems_version: 3.0.3
82
+ rubygems_version: 3.0.6
83
83
  signing_key:
84
84
  specification_version: 4
85
85
  summary: lightning fast file navigator - ruby 1.9.3 .. ruby 2.6