talk_like_a_pirate 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5244fd897c561f4fe415ea87d7ace18fe3482ef9
4
- data.tar.gz: 64b9fafc6bacf5f0cf41c09b7470bfbdc1ed4a14
3
+ metadata.gz: 2ba1542bb2d408ce91fddef7a6ed2e82385c1804
4
+ data.tar.gz: 8195bc83e94536f2887016a7c39dad776c8f0b73
5
5
  SHA512:
6
- metadata.gz: 82335ef3a999b5056db7ab5d1fd4cbb732ae2ebd8a246f75499787865c0278cc62c217d19f3eca7db27d7c392ac93f0679eebff05d3d4aee2e37209b16dd832e
7
- data.tar.gz: 9388391f55e909994b1a6e3b5d1b6a9a9e60de629dc61fab5bfd8a3599907775df70c86db7839a533e60aacc47129c0b97d34b68124d475115af63604ef9590d
6
+ metadata.gz: c4cc9b9256e697db5aa8854202192911701a488db780b5db59f78b703946d6fad12568f1f3c7b2c8c7bec97dde8c1e7e5d48d58b6144d8a3fa8657ec3f189247
7
+ data.tar.gz: 33ea4a5c0d5457d9ff2c476b45c452488391e98bd5f069ec22d6916cc5c3f1666d1632ba58a96e7f8249016f098c59cf3fc6d586c4ee4347e3c4ea34ba3ed976
@@ -17,22 +17,46 @@ private #####################################################################
17
17
  def self.translate_string(me_string)
18
18
  me_string.split(/ /).map do |word|
19
19
  capitalized = (word.slice(0,1) == word.slice(0,1).upcase)
20
- word = Object.const_defined?(:ActiveSupport) ? piratize_with_pluralization(word) : piratize(word)
21
- capitalized ? capitalize_first(word) : word
20
+ fully_capitalized = (word == word.upcase)
21
+ word, punctuation = extract_punctuation word
22
+ word = Object.const_defined?(:ActiveSupport) ? piratize_with_pluralization(word.downcase) : piratize(word.downcase)
23
+ word = capitalize_first(word) if capitalized
24
+ word = word.upcase if fully_capitalized
25
+ word + punctuation
22
26
  end.join(" ")
23
27
  end
24
28
 
25
29
  def self.piratize_with_pluralization(word)
26
- pluralized = ActiveSupport::Inflector.pluralize(word) == word
27
- if dictionary.has_key? ActiveSupport::Inflector.singularize(word.downcase)
28
- word = dictionary[ActiveSupport::Inflector.singularize(word.downcase)]
29
- word = pluralized ? ActiveSupport::Inflector.pluralize(word) : word
30
+ pluralized = pluralize(word) == word
31
+ if dictionary.has_key? singularize(word)
32
+ word = dictionary[singularize(word)]
33
+ pluralized ? pluralize(word) : word
34
+ elsif word[/ing\Z/]
35
+ word.sub(/ing\Z/, "in'")
36
+ elsif word[/ings\Z/]
37
+ word.sub(/ings\Z/, "in's")
38
+ else
39
+ word
30
40
  end
31
- word
32
41
  end
33
42
 
34
43
  def self.piratize(word)
35
- dictionary.has_key?(word.downcase) ? dictionary[word.downcase] : word
44
+ if dictionary.has_key? word
45
+ dictionary[word]
46
+ elsif word[/ing\Z/]
47
+ word.sub(/ing\Z/, "in'")
48
+ elsif word[/ings\Z/]
49
+ word.sub(/ings\Z/, "in's")
50
+ else
51
+ word
52
+ end
53
+ end
54
+
55
+ def self.extract_punctuation(word)
56
+ parts = word.match(/\A([a-zA-Z\'\-]+)([^a-zA-Z\'\-]*)\Z/)
57
+ word = parts[1] rescue word
58
+ punctuation = parts[2] rescue ""
59
+ return word, punctuation
36
60
  end
37
61
 
38
62
  def self.prepare_original_sentence(sentence)
@@ -79,6 +103,14 @@ private #####################################################################
79
103
  string.slice(0,1).capitalize + string.slice(1..-1)
80
104
  end
81
105
 
106
+ def self.singularize(word)
107
+ ActiveSupport::Inflector.singularize(word)
108
+ end
109
+
110
+ def self.pluralize(word)
111
+ ActiveSupport::Inflector.pluralize(word)
112
+ end
113
+
82
114
  end
83
115
 
84
116
  if Object.const_defined? :Rails
@@ -1,30 +1,43 @@
1
1
  locale: "arr"
2
2
  dictionary:
3
- account: debtor
4
3
  address: port o' call
5
4
  admin: helm
6
5
  am: be
7
6
  an: a
8
7
  and: "n'"
9
8
  are: be
9
+ award: prize
10
10
  beer: grog
11
11
  before: afore
12
+ belief: creed
13
+ between: betwixt
12
14
  big: vast
15
+ bring: bring
13
16
  boss: admiral
17
+ bourbon: rum
18
+ box: barrel
19
+ bring: bring
14
20
  business: company
15
21
  businesses: companies
16
22
  calling: "callin'"
23
+ cash: doubloons
17
24
  cheat: hornswaggle
18
25
  comments: yer words
19
- country: king
26
+ country: land
20
27
  dashboard: shanty
21
28
  disconnect: keelhaul
22
29
  do: "d'"
30
+ dollar: doubloon
31
+ dude: pirate
23
32
  employee: crew
24
33
  everyone: all hands
25
34
  eye: eye-patch
35
+ family: kin
36
+ fee: debt
37
+ female: wench
26
38
  for: fer
27
39
  friend: shipmate
40
+ gin: rum
28
41
  girl: lass
29
42
  girls: lassies
30
43
  go: sail
@@ -33,15 +46,22 @@ dictionary:
33
46
  hand: hook
34
47
  hello: ahoy
35
48
  hey: ahoy
36
- home: shanty
37
49
  "i'm": i be
38
50
  invalid: sunk
39
51
  is: be
52
+ island: isle
40
53
  "isn't": be not
54
+ jail: brig
41
55
  kill: keelhaul
56
+ king: king
42
57
  leg: peg
58
+ lady: lass
43
59
  logout: walk the plank
60
+ male: pirate
61
+ man: pirate
44
62
  manager: admiral
63
+ money: doubloons
64
+ month: moon
45
65
  my: me
46
66
  never: nary
47
67
  no: nay
@@ -50,28 +70,42 @@ dictionary:
50
70
  page: parchment
51
71
  person: scallywag
52
72
  posted: tacked to the yardarm
73
+ president: king
74
+ prison: brig
53
75
  quickly: smartly
54
76
  really: verily
77
+ relatives: kin
78
+ religion: creed
55
79
  role: job
56
80
  say: cry
81
+ seconds: ticks o' tha clock
57
82
  shipping: cargo
58
83
  small: puny
84
+ soldier: sailor
59
85
  sorry: yarr
60
- state: isle
86
+ spouse: ball 'n' chain
87
+ state: land
61
88
  supervisor: "Cap'n"
62
89
  "that's": that be
63
90
  the: tha
64
91
  them: "'em"
92
+ thing: thing
65
93
  this: dis
66
94
  to: t'
95
+ vodka: rum
67
96
  we: our jolly crew
97
+ wine: grog
98
+ whiskey: rum
99
+ whisky: rum
100
+ with: wit'
68
101
  woman: wench
69
- work: brig
102
+ work: duty
70
103
  yah: aye
71
104
  yeah: aye
72
105
  yes: aye
73
106
  you: ye
74
107
  "you're": you be
108
+ "you've": ye
75
109
  your: yer
76
110
 
77
111
  pirate_flavor:
@@ -1,7 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  Gem::Specification.new do |s|
3
3
  s.name = 'talk_like_a_pirate'
4
- s.version = '0.0.4'
4
+ s.version = '0.0.5'
5
5
  s.authors = ['Steve Hodges']
6
6
  s.email = ['sjhodges@gmail.com']
7
7
  s.homepage = 'https://github.com/stevehodges/talk_like_a_pirate'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: talk_like_a_pirate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Hodges
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-05 00:00:00.000000000 Z
11
+ date: 2013-06-06 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Add a pirate translation layer to your Rails app! Talk, like a Pirate!
14
14
  email: