derp 0.0.2 → 0.0.3

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.
Files changed (5) hide show
  1. data/TODO +0 -1
  2. data/lib/derp.rb +41 -30
  3. data/lib/derp/version.rb +1 -1
  4. data/test/derp_test.rb +19 -0
  5. metadata +2 -2
data/TODO CHANGED
@@ -1,3 +1,2 @@
1
- * Add String#from_derp
2
1
  * gem_testers
3
2
  * Docco
@@ -1,38 +1,49 @@
1
1
  class String
2
+ Morse = {
3
+ 'a' => 'herpderp',
4
+ 'b' => 'derpherpherpherp',
5
+ 'c' => 'derpherpderpherp',
6
+ 'd' =>'derpherpherp',
7
+ 'e' => 'herp',
8
+ 'f' => 'herpherpderpherp',
9
+ 'g' => 'derpderpherp',
10
+ 'h' => 'herpherpherpherp',
11
+ 'i' => 'herpherp',
12
+ 'j' => 'herpderpderpderp',
13
+ 'k' => 'derpherpderp',
14
+ 'l' => 'herpderpherpherp',
15
+ 'm' => 'derpderp',
16
+ 'n' => 'derpherp',
17
+ 'o' => 'derpderpderp',
18
+ 'p' => 'herpderpderpherp',
19
+ 'q' => 'derpderpherpderp',
20
+ 'r' => 'herpderpherp',
21
+ 's' => 'herpherpherp',
22
+ 't' => 'derp',
23
+ 'u' => 'herpherpderp',
24
+ 'v' => 'herpherpherpderp',
25
+ 'w' => 'herpderpderp',
26
+ 'x' => 'derpherpherpderp',
27
+ 'y' => 'derpherpderpderp',
28
+ 'z' => 'derpderpherpherp',
29
+ ' ' => '.'
30
+ }
31
+
2
32
  def to_derp
3
- morse = {
4
- 'a' => 'herpderp',
5
- 'b' => 'derpherpherpherp',
6
- 'c' => 'derpherpderpherp',
7
- 'd' =>'derpherpherp',
8
- 'e' => 'herp',
9
- 'f' => 'herpherpderpherp',
10
- 'g' => 'derpderpherp',
11
- 'h' => 'herpherpherpherp',
12
- 'i' => 'herpherp',
13
- 'j' => 'herpderpderpderp',
14
- 'k' => 'derpherpderp',
15
- 'l' => 'herpderpherpherp',
16
- 'm' => 'derpderp',
17
- 'n' => 'derpherp',
18
- 'o' => 'derpderpderp',
19
- 'p' => 'herpderpderpherp',
20
- 'q' => 'derpderpherpderp',
21
- 'r' => 'herpderpherp',
22
- 's' => 'herpherpherp',
23
- 't' => 'derp',
24
- 'u' => 'herpherpderp',
25
- 'v' => 'herpherpherpderp',
26
- 'w' => 'herpderpderp',
27
- 'x' => 'derpherpherpderp',
28
- 'y' => 'derpherpderpderp',
29
- 'z' => 'derpderpherpherp',
30
- ' ' => '.'
31
- }
32
33
  out = ""
33
34
  self.split(//).each do |c|
34
- out += morse[c] + " " unless morse[c].nil?
35
+ out += Morse[c] + " " unless Morse[c].nil?
35
36
  end
36
37
  out.rstrip
37
38
  end
39
+
40
+ def from_derp
41
+ inverted = Morse.invert
42
+ out = ""
43
+ self.split.each do |w|
44
+ out += inverted[w] + " " unless inverted[w].nil?
45
+ end
46
+ out.gsub!(/\s([a-z\s])/, '\1')
47
+ out.rstrip
48
+ end
38
49
  end
@@ -1,3 +1,3 @@
1
1
  module Derp
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -32,4 +32,23 @@ class TestDerp < MiniTest::Unit::TestCase
32
32
  assert_equal "ab".to_derp, "herpderp derpherpherpherp"
33
33
  end
34
34
 
35
+ def test_from_derp_exists
36
+ assert_respond_to @derp, :from_derp
37
+ end
38
+
39
+ def test_from_derp_returns_string
40
+ assert_instance_of String, @derp.from_derp
41
+ end
42
+
43
+ def test_from_multiple_words
44
+ assert_equal "herpderp . herpderp".from_derp, "a a"
45
+ end
46
+
47
+ def test_from_long_words
48
+ assert_equal "herpderp herpderp".from_derp, "aa"
49
+ end
50
+
51
+ def test_from_different_characters
52
+ assert_equal "herpderp derpherpherpherp".from_derp, "ab"
53
+ end
35
54
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: derp
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.2
5
+ version: 0.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Steve Klabnik
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-02-25 00:00:00 -05:00
13
+ date: 2011-02-27 00:00:00 -05:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency