cr.rb 4.0.0.alpha.2 → 4.0.0.alpha.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/cr +50 -24
  3. data/lib/cr.rb +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 86ac16436cda04a1ca727329c6508f8c228d5049beb47ba02da193a684b1174d
4
- data.tar.gz: f303ed5311033dbcab4a66eec6ad786633c02e4967e286711681b77b4a01a726
3
+ metadata.gz: 5c4ff483935b5b1015fb9d412056e041e81fd3fa7b94c47c8b5de8be517f8740
4
+ data.tar.gz: 2a207377d5dc6bf441d3940d5c142965d944ba6f05de3de7053800bd7b59fb29
5
5
  SHA512:
6
- metadata.gz: 52f6b13011db64ac7c439e323ccf2093656b6dcc2e337815f68323a9bd5f79f3d33f0a2f1f2f6906c7d3d6e4e954c8a8573884268990c99ad7bd6426682de21e
7
- data.tar.gz: 1474e51ef60c31035104a0c66b168a1545f90085b13d3d8e468aa182f67885b8af3dbd7f1ed462b7b1251f847240255f8e0bf817bf2b94c1fbf88a3ef15ff0c2
6
+ metadata.gz: ddd0207e0248b713e3304f6c6781b2f186a7ba3bdc02a4a4823e9def133cfd2209d8295987217d1df92733811efc0a2beb09daa904d85305aee97a9955dda146
7
+ data.tar.gz: 51a67072c4631628d6a6f840e819665c2e26309cc62be9d060cc658b5b8eb19b512557c92d8840f56a32e3777211d6c114870a15208403b647bb7147ec4ca418
data/bin/cr CHANGED
@@ -54,6 +54,15 @@ else
54
54
  end
55
55
 
56
56
 
57
+ # Prevent runtime error
58
+ if not CR_EXTRA_LIBRARY.nil?
59
+ if ! test('d', CR_EXTRA_LIBRARY)
60
+ puts "FATAL: Your CRYPTIC_RESOLVER_CONFIG's option 'EXTRA_LIBRARY' is NOT a legal directory!"
61
+ exit 1
62
+ end
63
+ end
64
+
65
+
57
66
  # This is used to display what you are pulling when adding dicts
58
67
  CR_DEFAULT_DICTS_USER_AND_NAMES = CR_DEFAULT_DICTS.map do |e|
59
68
  user, repo = e.split('/').last(2)
@@ -313,11 +322,11 @@ end
313
322
  # # category
314
323
  #
315
324
  # [blah]
316
- # same = "XDG downloader <=>xdg.Download" # this is correct
325
+ # same = "XDG downloader =>xdg.Download" # this is correct
317
326
  #
318
327
  # [blah]
319
328
  # name = "BlaH" # You may want to display a better name first
320
- # same = "XDG downloader <=>xdg.Download" # this is correct
329
+ # same = "XDG downloader =>xdg.Download" # this is correct
321
330
  #
322
331
  #
323
332
  def pp_same_info(library, dict, word, cache_content, same_key, own_name)
@@ -339,13 +348,13 @@ def pp_same_info(library, dict, word, cache_content, same_key, own_name)
339
348
  #
340
349
  # 'jump to' will output to user, so this is important not only inside our sheet.
341
350
  #
342
- # same = "XDM downloader<=>xdm.Download"
351
+ # same = "XDM downloader=>xdm.Download"
343
352
  #
344
- # We split 'same' key into two parts via spaceship symbol <=>, first part will
353
+ # We split 'same' key into two parts via spaceship symbol `=>`, first part will
345
354
  # output to user, the second part is for internal jump.
346
355
  #
347
356
 
348
- jump_to, same = same_key.split("<=>")
357
+ jump_to, same = same_key.split("=>")
349
358
  same = jump_to if same.nil?
350
359
 
351
360
  unless own_name
@@ -517,7 +526,7 @@ def resolve_word(word)
517
526
  index = word.chr
518
527
  case index
519
528
  when '0'..'9'
520
- index = '0123456789'
529
+ index = '0-9'
521
530
  end
522
531
 
523
532
  # cache lookup's results
@@ -543,9 +552,12 @@ cr: Not found anything.
543
552
 
544
553
  You may
545
554
  1. Use `cr -u` to update all dicts
546
- 2. Use `cr -a user/repo` to add more available dicts
547
-
548
- See: https://github.com/cryptic-resolver
555
+
556
+ 2. Use
557
+
558
+ `cr -l` to list available official dicts
559
+
560
+ `cr -a repo` to add some dicts
549
561
 
550
562
  3. Contribute to theses dicts
551
563
 
@@ -558,18 +570,35 @@ NotFound
558
570
  end
559
571
 
560
572
 
573
+ #
574
+ # Delegate to `search_word_internal`
575
+ #
576
+ def search_word(pattern)
577
+ found_or_not1 = false
578
+ found_or_not2 = false
579
+
580
+ found_or_not1 = search_word_internal(pattern, CR_DEFAULT_LIBRARY)
581
+ if CR_EXTRA_LIBRARY
582
+ found_or_not2 = search_word_internal(pattern, CR_EXTRA_LIBRARY)
583
+ end
584
+
585
+ if (found_or_not1 == false) && (found_or_not2 == false)
586
+ puts red("cr: No words match with #{pattern.inspect}")
587
+ puts
588
+ end
589
+ end
561
590
 
562
591
  #
563
- # This `search_word` routine is quite like `resolve_word`
592
+ # This `search_word_internal` routine is quite like `resolve_word`
564
593
  # Notice:
565
594
  # We handle two cases
566
595
  #
567
596
  # 1. the 'pattern' is the regexp itself
568
- # 2. the 'pattern' is like '/blahblah/'
597
+ # 2. the 'pattern' is like '/blah/'
569
598
  #
570
599
  # The second is what Ruby and Perl users like to do, handle it!
571
600
  #
572
- def search_word(pattern)
601
+ def search_word_internal(pattern, library)
573
602
 
574
603
  if pattern.nil?
575
604
  puts bold(red("cr: Need an argument!"))
@@ -584,24 +613,24 @@ def search_word(pattern)
584
613
  regexp = %r[#{pattern}]
585
614
  end
586
615
 
587
- found = false
616
+ found_or_not = false
588
617
 
589
618
  #
590
619
  # Try to match every word in all dicts
591
620
  #
592
- Dir.children(CR_DEFAULT_LIBRARY).each do |dict|
593
- sheets = Dir.children(File.join(CR_DEFAULT_LIBRARY, dict)).select do
621
+ Dir.children(library).each do |dict|
622
+ sheets = Dir.children(File.join(library, dict)).select do
594
623
  _1.end_with?('.toml')
595
624
  end
596
625
 
597
626
  similar_words_in_a_dict = []
598
627
 
599
628
  sheets.each do |sheet|
600
- sheet_content = load_sheet(dict, File.basename(sheet,'.toml'))
629
+ sheet_content = load_sheet(library, dict, File.basename(sheet,'.toml'))
601
630
 
602
631
  sheet_content.keys.each do
603
632
  if _1 =~ regexp
604
- found = true
633
+ found_or_not = true
605
634
  similar_words_in_a_dict << _1
606
635
  end
607
636
  end
@@ -617,10 +646,7 @@ def search_word(pattern)
617
646
  puts
618
647
  end
619
648
  end
620
- if !found
621
- puts red("cr: No words match with #{regexp.inspect}")
622
- puts
623
- end
649
+ return found_or_not
624
650
  end
625
651
 
626
652
 
@@ -634,11 +660,11 @@ Usage:
634
660
  cr emacs => Edit macros: A feature-rich editor
635
661
  cr -c => Print word count
636
662
  cr -l => List local dicts and official dicts
637
- cr -u => Update all dicts in default library
663
+ cr -u => Update all dicts in Default library
638
664
 
639
665
  cr -a repo.git => Add a new dict
640
666
  cr -a user/repo => Add a new dict from Github
641
- cr -a reponame => Add an official dict from Github
667
+ cr -a repo => Add an official dict from Github
642
668
 
643
669
  cr -d cryptic_xx => Delete a dict
644
670
  cr -s pattern => Search words matched with pattern
@@ -728,7 +754,7 @@ def word_count(p:)
728
754
  end
729
755
  end
730
756
 
731
-
757
+
732
758
  if CR_EXTRA_LIBRARY
733
759
  extra_lib = Dir.children(CR_EXTRA_LIBRARY)
734
760
  # Count extra library
data/lib/cr.rb CHANGED
@@ -10,7 +10,7 @@
10
10
  #
11
11
  # ------------------------------------------------------
12
12
 
13
- CR_GEM_VERSION = "4.0.0.alpha.2"
13
+ CR_GEM_VERSION = "4.0.0.alpha.4"
14
14
 
15
15
 
16
16
  CR_OFFICIAL_DICTS = <<-EOF
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cr.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.alpha.2
4
+ version: 4.0.0.alpha.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - ccmywish