derp 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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