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.
- checksums.yaml +4 -4
- data/bin/cr +50 -24
- data/lib/cr.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c4ff483935b5b1015fb9d412056e041e81fd3fa7b94c47c8b5de8be517f8740
|
4
|
+
data.tar.gz: 2a207377d5dc6bf441d3940d5c142965d944ba6f05de3de7053800bd7b59fb29
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
|
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
|
351
|
+
# same = "XDM downloader=>xdm.Download"
|
343
352
|
#
|
344
|
-
# We split 'same' key into two parts via spaceship symbol
|
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 = '
|
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
|
-
|
547
|
-
|
548
|
-
|
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 `
|
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 '/
|
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
|
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
|
-
|
616
|
+
found_or_not = false
|
588
617
|
|
589
618
|
#
|
590
619
|
# Try to match every word in all dicts
|
591
620
|
#
|
592
|
-
Dir.children(
|
593
|
-
sheets = Dir.children(File.join(
|
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
|
-
|
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
|
-
|
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
|
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
|
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