m0rse_c0de 0.3.5 → 0.3.8

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: db358b2f9de62e785c21f1e3258a65772807434ecd4249a04e6ab961fdfcc252
4
- data.tar.gz: 364111d17c96cc6bc19e6d1f48b985f44f7523f88b0aa824d4f34c0a26035025
3
+ metadata.gz: bb38c6816fa1eef56c647bcdda493cb1f9be0a47aa35311efa32ec763a23dc79
4
+ data.tar.gz: 0c64785f5a54ab08ce269c4b9a51d6c0405eaa4692243402311301f72cd21429
5
5
  SHA512:
6
- metadata.gz: b0cac71a296fdb0f2a30e2ba274683ffaaa3890fa74fe1eb1d24cf6fc425de48d5ec2c2333fc8975facea1022d50c0ccc8616d6d461b914263f0d046a49df2f9
7
- data.tar.gz: 673c5f2c31f4e81a5e77c755351659bbf3f5ec7fd180dd7ce5b7a56316e62b0b43628d5a652aa1b0736535863c9d294f8d033e78266ff173ddce7ada6941583c
6
+ metadata.gz: 960618fbc70ea05cf422a1ca0eb7eda1d3840b5cb1ef147e6d5e299c7c11dfd4b51d348a1e67add3ef995164f325d19a3edcee9f8dc758216741ba1e6b8932db
7
+ data.tar.gz: 657fb662dc56ede3929250133c86be7156ed02db7a137ac47301f932f78752b0c7f5aefdba999dcf62961d9acffc49eb4b98db5b75bc2c10747a6414dcd6afd8
data/README.md CHANGED
@@ -2,17 +2,21 @@
2
2
 
3
3
  ## Usage
4
4
  ```
5
- $ require 'm0rse'
6
- include M0rse
5
+ require 'm0rse'
6
+
7
+ include M0rse
7
8
 
8
9
  ```
9
10
 
10
- call ```Morse.teach``` for teaching mode
11
+ call ```Morse.teacher``` contains small games that you can play from the terminalto help you learn morse code:
12
+
13
+ ```Morse.teacher.hangman```
14
+ ```Morse.teacher.practice```
15
+
16
+
11
17
  call ```Morse.blink(text)``` to make your terminal blink in morse code (windows only)
12
- call ```Morse.play(text)``` to make your computer play morse code (windows only)
18
+ call ```Morse.play(text)``` to make your computer play morse code
13
19
 
14
20
  other methods are self-explanatory.
15
21
 
16
- ## Notes
17
22
 
18
- Please notify me if you find any bugs, I am trying to make something useful.
data/lib/hashes/hashes.rb CHANGED
@@ -18,20 +18,7 @@ module Translation
18
18
  '0' => '-----', ', ' => '--..--', '.' => '.-.-.-',
19
19
  '?' => '..--..', '/' => '-..-.', '-' => '-....-', ' ' => '\\'}
20
20
 
21
- @@morsetoascii = {'.-' => 'a', '-...' => 'b',
22
- '-.-.' => 'c', '-..' => 'd', '.' => 'e',
23
- '..-.' => 'f', '--.' => 'g', '....' => 'h',
24
- '..' => 'i', '.---' => 'j', '-.-' => 'k',
25
- '.-..' => 'l', '--' => 'm', '-.' => 'n',
26
- '---' => 'o', '.--.' => 'p', '--.-' => 'q',
27
- '.-.' => 'r', '...' => 's', '-' => 't',
28
- '..-' => 'u', '...-' => 'v', '.--' => 'w',
29
- '-..-'=> 'x', '-.--' => 'y', '--..' => 'z',
30
- '.----' => '1', '..---' => '2', '...--' => '3',
31
- '....-' => '4', '.....' => '5', '-....' => '6',
32
- '--...' => '7', '---..' => '8', '----.' => '9',
33
- '-----' => '0', '--..--' => ',', '.-.-.-' => '.',
34
- '..--..' => '?', '-..-.' => '/', '-....-' => '-', '\\' => ' '}
21
+ @@morsetoascii = @@asciitomorse.invert
35
22
 
36
23
 
37
24
  end
data/lib/m0rse.rb CHANGED
@@ -12,8 +12,9 @@ include Beeper
12
12
 
13
13
  module M0rse
14
14
 
15
+ @@teacher = Teacher
16
+
15
17
  class Morse
16
-
17
18
  def self.text_to_morse(text_)
18
19
  morse_ = []
19
20
  text_.downcase!
@@ -64,50 +65,51 @@ module M0rse
64
65
  text_ = file_.readlines.map(&:chomp).join()
65
66
  result_ = self.text_to_morse(text_)
66
67
  file_.close()
67
- File.open("#{filename_}-Morsed", "w").write(result_)
68
+ new_file = File.open("#{filename_}-Morsed", "w")
69
+ File.write(new_file, result_)
68
70
  end
69
71
 
70
72
  def self.blink(text_)
71
73
  morse_ = self.text_to_morse(text_)
72
- for sign in morse_.split(//)
73
- if sign == '.'
74
+ for char in morse_.split(//)
75
+ if char == '.'
74
76
  system('color 70')
75
77
  sleep(0.01)
76
78
  system('color 07')
77
- elsif sign == '-'
79
+ elsif char == '-'
78
80
  system('color 70')
79
81
  sleep(0.2)
80
82
  system('color 07')
81
- elsif sign == ' '
83
+ elsif char == ' '
82
84
  sleep(0.3)
83
- elsif sign == '\\'
85
+ elsif char == '\\'
84
86
  sleep(0.7)
85
87
  end
86
88
  end; "completed"
87
89
  end
88
90
 
89
91
 
90
- def self.play(text_)
92
+ def self.play(text_, speed=1)
91
93
  morse_ = self.text_to_morse(text_)
92
94
  begin
93
- for sign in morse_.split(//)
94
- if sign == '.'
95
+ for char in morse_.split(//)
96
+ if char == '.'
95
97
  Beeper.dit
96
- elsif sign == '-'
98
+ elsif char == '-'
97
99
  Beeper.dah
98
- elsif sign == ' '
99
- sleep(0.375)
100
- elsif sign == '\\'
101
- sleep(0.875)
100
+ elsif char == ' '
101
+ sleep(0.375*speed)
102
+ elsif char == '\\'
103
+ sleep(0.875*speed)
102
104
  end
103
105
  end; "completed"
104
106
  rescue
105
- puts "Morse.play won't work on #{RUBY_PLATFORM}"
107
+ puts "something went wrong..."
106
108
  end
107
109
  end
108
110
 
109
- def self.teach
110
- Teacher.main
111
+ def self.teacher
112
+ @@teacher
111
113
  end
112
114
 
113
115
  end
data/lib/sound/sound.rb CHANGED
@@ -2,17 +2,29 @@ begin
2
2
  require 'win32/sound'
3
3
 
4
4
  include Win32
5
+
6
+ module Beeper
7
+ def dit
8
+ Sound.play("#{__dir__}/beeps/dit.wav")
9
+ end
10
+
11
+ def dah
12
+ Sound.play("#{__dir__}/beeps/dah.wav")
13
+ end
14
+
15
+ end
16
+
5
17
  rescue LoadError
18
+ module Beeper
19
+ def dit
20
+ system("play #{__dir__}/beeps/dit.wav -q -t alsa")
21
+ end
6
22
 
7
- end
23
+ def dah
24
+ system("play #{__dir__}/beeps/dah.wav -q -t alsa")
25
+ end
8
26
 
9
- module Beeper
10
- def dit
11
- Sound.play("#{__dir__}/beeps/dit.wav")
12
27
  end
13
-
14
- def dah
15
- Sound.play("#{__dir__}/beeps/dah.wav")
16
- end
17
28
 
18
29
  end
30
+
@@ -123,9 +123,7 @@ module H4ngman
123
123
  self.finish
124
124
 
125
125
  end
126
-
127
126
  end
128
-
129
127
  end
130
128
 
131
129
 
@@ -2,13 +2,40 @@
2
2
  module Te4cher
3
3
  class Teacher
4
4
 
5
- @word_list = ['Ruby', 'Red', 'Awesome', 'Burzum', 'Help', 'Blood', 'Emergency', 'Death', 'Morse', 'SOS', 'SQL', 'Wreck', 'Ship', 'You', 'Us', 'America', 'Boat', 'Hello', 'Amazed', 'Python', 'Life', 'acme', 'antiseptically', 'boudoir', 'cesium', 'circumscribing', 'collegians', 'confessionals', 'erectly', 'finagler', 'hostelries', 'howdah', 'impetigo', 'lampposts', 'lisle', 'mestizos', 'overcooked', 'slippage', 'slouchiest', 'strumpet', 'terabyte', 'transfiguration', 'twill', 'undersold', 'unsheathed', 'whelps', 'adlumidine', 'alinasal', 'aramina', 'begreen', 'bembixes', 'boundly', 'cannibalean', 'chondrinous', 'colickiest', 'cullas', 'hartake', 'interchangings', 'marquito', 'miscegenationists', 'peremption', 'quesitive', 'ragnarok', 'reconciliated', 'sepsine', 'sickless', 'sigillaria', 'staphyledema', 'undelible', 'unruth', 'yaourti', 'avoid', 'bottle', 'briefly', 'bug', 'dedicated', 'establish', 'everything', 'goes', 'harm', 'inferior', 'killed', 'leader', 'noticed', 'quicker', 'recovered', 'reflects', 'retain', 'self', 'should', 'signal', 'simultaneously', 'stayed', 'tomorrow', 'virtue', 'weird', 'adlumidine', 'alinasal', 'aramina', 'begreen', 'bembixes', 'boundly', 'cannibalean', 'chondrinous', 'colickiest', 'cullas', 'hartake', 'interchangings', 'marquito', 'miscegenationists', 'peremption', 'quesitive', 'ragnarok', 'reconciliated', 'sepsine', 'sickless', 'sigillaria', 'staphyledema', 'undelible', 'unruth', 'yaourti'] #todo: complete
5
+ @@word_list = ['Ruby', 'Red', 'Awesome', 'Burzum',
6
+ 'Help', 'Blood', 'Emergency', 'Death',
7
+ 'Morse', 'SOS', 'SQL', 'Wreck', 'Ship',
8
+ 'You', 'Us', 'America', 'Boat', 'Hello',
9
+ 'Amazed', 'Python', 'Life', 'acme',
10
+ 'antiseptically', 'boudoir', 'cesium', 'circumscribing',
11
+ 'collegians', 'confessionals', 'erectly', 'finagler',
12
+ 'hostelries', 'howdah', 'impetigo', 'lampposts', 'lisle',
13
+ 'mestizos', 'overcooked', 'slippage', 'slouchiest',
14
+ 'strumpet', 'terabyte', 'transfiguration', 'twill',
15
+ 'undersold', 'unsheathed', 'whelps', 'adlumidine',
16
+ 'alinasal', 'aramina', 'begreen', 'bembixes',
17
+ 'boundly', 'cannibalean', 'chondrinous', 'colickiest',
18
+ 'cullas', 'hartake', 'interchangings', 'marquito',
19
+ 'miscegenationists', 'peremption', 'quesitive', 'ragnarok',
20
+ 'reconciliated', 'sepsine', 'sickless', 'sigillaria',
21
+ 'staphyledema', 'undelible', 'unruth', 'yaourti',
22
+ 'avoid', 'bottle', 'briefly', 'bug',
23
+ 'dedicated', 'establish', 'everything', 'goes',
24
+ 'harm', 'inferior', 'killed', 'leader',
25
+ 'noticed', 'quicker', 'recovered', 'reflects',
26
+ 'retain', 'self', 'should', 'signal',
27
+ 'simultaneously', 'stayed', 'tomorrow', 'virtue',
28
+ 'weird', 'adlumidine', 'alinasal', 'aramina',
29
+ 'begreen', 'bembixes', 'boundly', 'cannibalean',
30
+ 'chondrinous', 'colickiest', 'cullas', 'hartake',
31
+ 'interchangings', 'marquito', 'miscegenationists', 'peremption',
32
+ 'quesitive', 'ragnarok', 'reconciliated', 'sepsine',
33
+ 'sickless', 'sigillaria', 'staphyledema', 'undelible', 'unruth', 'yaourti'] #todo: complete
6
34
 
7
- def self.start_practice
8
- puts "PRACTICE MODE STARTED"
9
35
 
36
+ def self.practice
10
37
  while true
11
- random_word = @word_list.sample.upcase!
38
+ random_word = @@word_list.sample.upcase!
12
39
  correct_answer = Morse.text_to_morse(random_word)
13
40
  puts "translate ---> #{random_word}"
14
41
  print 'Your answer: '
@@ -17,50 +44,23 @@ module Te4cher
17
44
  puts 'Correct! Moving to the next word...'
18
45
  sleep(2)
19
46
  else
20
- puts "Wrong! The correct answer was: #{correct_answer} moving to the next word..."
47
+ puts "Wrong! The correct answer was: #{correct_answer} \nmoving to the next word..."
21
48
  sleep(2)
22
49
  end
23
50
  end
24
51
  end
25
52
 
26
- def self.start_hangman
27
- Hangman.choose_word(@word_list)
53
+ def self.hangman
54
+ Hangman.choose_word(@@word_list)
28
55
  Hangman.main
29
56
  end
30
57
 
31
58
  def self.show_hashes
32
- print @word_list
33
59
  for char, morse in @@asciitomorse
34
60
  print char, ' --> ', morse, ' '
35
61
  end; 'Morse Alphabet'
36
62
  end
37
-
38
-
39
- def self.main
40
- greeting = '''
41
-
42
- Welcome to teaching mode! If you want to practice: input PRACTICE,
43
- if you want to view the Morse alphabet input ALPHABET,
44
- if you want to play hangman in Morse; input HANGMAN.
45
-
46
- '''
47
-
48
- puts greeting
49
-
50
- @choice = gets.chomp
51
-
52
- if @choice == 'PRACTICE'
53
- self.start_practice
54
-
55
- elsif @choice == 'ALPHABET'
56
- self.show_hashes
57
- elsif @choice == 'HANGMAN'
58
- self.start_hangman
59
- end
60
- end
61
-
62
63
  end
63
-
64
64
  end
65
65
 
66
66
 
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: m0rse_c0de
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Burzum
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-04 00:00:00.000000000 Z
11
+ date: 2021-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: win32-sound
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - '='
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.6.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - '='
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.6.2
27
27
  description:
@@ -61,6 +61,6 @@ rubygems_version: 3.1.2
61
61
  signing_key:
62
62
  specification_version: 4
63
63
  summary: A gem for translation from hex, binary, text to morse and vice versa; it
64
- additionally can teach you Morse, play a text to Morse code, translate a file to
65
- Morse and it can blink in Morse. (playing, blinking morse code is for windows only)
64
+ additionally can teach you Morse, play text to Morse (on linux requires SoX), translate
65
+ a file to Morse and it can blink in Morse.
66
66
  test_files: []