morse-code-rb 0.1.0 → 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 +4 -4
- data/README.md +30 -0
- data/bin/mc +6 -0
- data/lib/morse_code.rb +1 -0
- data/lib/morse_code/cli.rb +29 -0
- data/lib/morse_code/decoder.rb +4 -4
- data/lib/morse_code/encoder.rb +4 -4
- data/lib/morse_code/version.rb +1 -1
- metadata +23 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 155330eb3dfc7d3b1520f0a7dbce2fe62a439eb03d4b05f4d0a00018913efb8a
|
4
|
+
data.tar.gz: 2df9d246a942f2b8ad5bb0d24439c71ce5113ef0d100df093abd073d9bf8d1f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee66e59f359e292c01c47510d300523157ab4949c7efeab3cf631e633596f67c805ff37726fbbb2939b807042294a678e8c274a45f4e09d3416ccf1beef079c8
|
7
|
+
data.tar.gz: ca7c65f814ec6f36375cdf4ab8ed81ae38883e66d9b9c5cf00440f746615eb493e7433655d2b637d9d0596a31499b7b4561458ea6756e5a4cfdf0c73b63f7d95
|
data/README.md
CHANGED
@@ -51,6 +51,36 @@ puts dit_dah_to
|
|
51
51
|
$> I A M R O B O T .
|
52
52
|
```
|
53
53
|
|
54
|
+
### Terminal
|
55
|
+
|
56
|
+
```shell
|
57
|
+
$> mc
|
58
|
+
mc commands:
|
59
|
+
mc decode MESSAGE # decode Morse Code as original message
|
60
|
+
mc encode MESSAGE # encode message as Morse Code
|
61
|
+
mc help [COMMAND] # Describe available commands or one specific command
|
62
|
+
```
|
63
|
+
|
64
|
+
#### encode
|
65
|
+
|
66
|
+
```shell
|
67
|
+
$> mc -e 'I am Robot.'
|
68
|
+
.. .- -- .-. --- -... --- - .-.-.-
|
69
|
+
|
70
|
+
$> mc -e 'I am Robot.' --dit-dah
|
71
|
+
DITDIT DITDAH DAHDAH DITDAHDIT DAHDAHDAH DAHDITDITDIT DAHDAHDAH DAH DITDAHDITDAHDITDAH
|
72
|
+
```
|
73
|
+
|
74
|
+
#### decode
|
75
|
+
|
76
|
+
```shell
|
77
|
+
$> mc -d '.. .- -- .-. --- -... --- - .-.-.-'
|
78
|
+
I A M R O B O T .
|
79
|
+
|
80
|
+
$> mc -d 'DITDIT DITDAH DAHDAH DITDAHDIT DAHDAHDAH DAHDITDITDIT DAHDAHDAH DAH DITDAHDITDAHDITDAH' --dit-dah
|
81
|
+
I A M R O B O T .
|
82
|
+
```
|
83
|
+
|
54
84
|
### Contributing
|
55
85
|
|
56
86
|
#### Fork the Project
|
data/bin/mc
ADDED
data/lib/morse_code.rb
CHANGED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'thor'
|
2
|
+
|
3
|
+
module MorseCode
|
4
|
+
class Cli < Thor
|
5
|
+
package_name 'mc'
|
6
|
+
map '-e' => :encode
|
7
|
+
map '-d' => :decode
|
8
|
+
|
9
|
+
desc 'encode MESSAGE', 'encode message as Morse Code'
|
10
|
+
method_option :dit_dah, aliases: '-d', type: :boolean, desc: 'encode DITDAH message'
|
11
|
+
def encode(message = '')
|
12
|
+
if options[:dit_dah]
|
13
|
+
puts MorseCode::Encoder.new(message).dit_dah
|
14
|
+
else
|
15
|
+
puts MorseCode::Encoder.new(message).encode
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
desc 'decode MESSAGE', 'decode Morse Code as original message'
|
20
|
+
method_option :dit_dah, aliases: '-d', type: :boolean, desc: 'decode from DITDAH message'
|
21
|
+
def decode(message = '')
|
22
|
+
if options[:dit_dah]
|
23
|
+
puts MorseCode::Decoder.new(message).dit_dah_to
|
24
|
+
else
|
25
|
+
puts MorseCode::Decoder.new(message).decode
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/morse_code/decoder.rb
CHANGED
@@ -2,20 +2,20 @@ require 'morse_code/error'
|
|
2
2
|
|
3
3
|
module MorseCode
|
4
4
|
class Decoder
|
5
|
-
def initialize(
|
6
|
-
@
|
5
|
+
def initialize(message = '')
|
6
|
+
@message = message.dup
|
7
7
|
end
|
8
8
|
|
9
9
|
def decode
|
10
10
|
[].tap do |decode_words|
|
11
|
-
@
|
11
|
+
@message.split(/\s+/).each do |word|
|
12
12
|
decode_words << (MorseCode::DECODE_MAP[word] || word)
|
13
13
|
end
|
14
14
|
end.join(' ')
|
15
15
|
end
|
16
16
|
|
17
17
|
def decode_with
|
18
|
-
@
|
18
|
+
@message.tap { |message| message.gsub!('DIT', '.'); message.gsub!('DAH', '-') }
|
19
19
|
decode
|
20
20
|
end
|
21
21
|
alias dit_dah_to decode_with
|
data/lib/morse_code/encoder.rb
CHANGED
@@ -2,13 +2,13 @@ require 'morse_code/error'
|
|
2
2
|
|
3
3
|
module MorseCode
|
4
4
|
class Encoder
|
5
|
-
def initialize(
|
6
|
-
@
|
5
|
+
def initialize(message = '')
|
6
|
+
@message = message.upcase
|
7
7
|
end
|
8
8
|
|
9
9
|
def encode
|
10
10
|
[].tap do |encode_words|
|
11
|
-
@
|
11
|
+
@message.split(/\s+/).each do |word|
|
12
12
|
encode_word = []
|
13
13
|
word.each_char { |char| encode_word << (MorseCode::ENCODE_MAP[char] || char) }
|
14
14
|
encode_words.concat(encode_word)
|
@@ -17,7 +17,7 @@ module MorseCode
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def encode_with
|
20
|
-
encode.tap { |
|
20
|
+
encode.tap { |message| message.gsub!('.', 'DIT'); message.gsub!('-', 'DAH') }
|
21
21
|
end
|
22
22
|
alias dit_dah encode_with
|
23
23
|
end
|
data/lib/morse_code/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: morse-code-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- YingRui Lu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-10-
|
11
|
+
date: 2018-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -122,15 +122,32 @@ dependencies:
|
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0.59'
|
125
|
-
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: thor
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0.19'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0.19'
|
139
|
+
description:
|
126
140
|
email:
|
127
141
|
- luyingrui518@gmail.com
|
128
|
-
executables:
|
142
|
+
executables:
|
143
|
+
- mc
|
129
144
|
extensions: []
|
130
145
|
extra_rdoc_files: []
|
131
146
|
files:
|
132
147
|
- README.md
|
148
|
+
- bin/mc
|
133
149
|
- lib/morse_code.rb
|
150
|
+
- lib/morse_code/cli.rb
|
134
151
|
- lib/morse_code/decoder.rb
|
135
152
|
- lib/morse_code/encoder.rb
|
136
153
|
- lib/morse_code/error.rb
|
@@ -148,7 +165,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
148
165
|
requirements:
|
149
166
|
- - ">="
|
150
167
|
- !ruby/object:Gem::Version
|
151
|
-
version:
|
168
|
+
version: 2.0.0
|
152
169
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
170
|
requirements:
|
154
171
|
- - ">="
|
@@ -159,5 +176,5 @@ rubyforge_project:
|
|
159
176
|
rubygems_version: 2.7.6
|
160
177
|
signing_key:
|
161
178
|
specification_version: 4
|
162
|
-
summary: Morse Code Tool
|
179
|
+
summary: Simple Morse Code Encode and Decode Tool
|
163
180
|
test_files: []
|