anglicize 0.0.1 → 0.0.2

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
  SHA1:
3
- metadata.gz: 8fba69b6322d390dc959ccf1219d9ec9ad2429fc
4
- data.tar.gz: 76b95cc28dd1f13a9501be41ad761c50e6246cb6
3
+ metadata.gz: 5041976b78645c948b78d7993e034cdd86c064c7
4
+ data.tar.gz: b77c9c2e65b7abef132867e0aca3e25b304a501a
5
5
  SHA512:
6
- metadata.gz: 3c2b6396dc847e2870f1205e2eacf0e0c9514344e49295a2d1fd75cf18e26590aa1cdf8ddf46041caa9eb40610c19d6bf88eb9a01b7f98bdd5c31a41384a86f9
7
- data.tar.gz: b7be95dff7f98f46f987cd60b3ac206dca6116e0468003e8fe84b3a097014b508f0d106442f1f5aff78aca1838041afaa628bd8addacd6601d731ed4cb450a64
6
+ metadata.gz: c5a04d592bfec061bfa7b098c3ba15bc3b2316caa88ddd6420ef24d1badf59ff0b4b7aef977c048226ba5a0233c4387399cdc51c22461577da66535ffe8b9682
7
+ data.tar.gz: b561de108a15d5536d92f7ef7a7fabf935c1c3d4e524f0e7a3c1f8ea450734362b22f5340b5b17d102dbb578079bbe02a293d5929326f44175a25df9e9e5299f
@@ -1,4 +1,5 @@
1
1
  = Anglicize
2
+ {<img src="https://badge.fury.io/rb/anglicize.svg" alt="Gem Version" />}[http://badge.fury.io/rb/anglicize]
2
3
 
3
4
  Anglicize is a simple gem that converts strings between American and English spellings, based on the list of alternate spellings at [http://www.tysto.com/uk-us-spelling-list.html].
4
5
 
@@ -15,8 +16,11 @@ Or, install as a plugin:
15
16
 
16
17
  == Getting Started
17
18
 
18
- The gem adds four methods to the String object:
19
- * anglicize - convert to English spelling
19
+ The gem adds second methods to the String object:
20
+ * anglicize - return a copy of the string converted to English spelling
21
+ * anglicize! - convert the string in-place to English spelling
20
22
  * has_alternate_english_spelling? - returns true if English spelling of string is different
21
- * americanize - convert to American spelling
22
- * has_alternate_american_spelling? - returns true if American spelling of string is different
23
+ * americanize - return a copy of the string converted to American spelling
24
+ * americanize! - convert the string in-place to American spelling
25
+ * has_alternate_american_spelling? - returns true if American spelling of string is different
26
+ * copy_case
@@ -1,4 +1,2 @@
1
1
  require 'anglicize/string'
2
2
 
3
- module Anglicize
4
- end
@@ -2,51 +2,96 @@ require 'yaml'
2
2
 
3
3
  # Extensions for string class.
4
4
  class String
5
+ # @return [String] a copy of the string converted into English spelling.
5
6
  def anglicize
6
- split.map{|token| get_anglicized_word(token) }.join(" ")
7
+ result = self.dup
8
+ scan(WORD_RE).uniq.each do |word|
9
+ result.gsub!(/\b#{word}\b/, get_anglicized_word(word))
10
+ end
11
+ result
12
+ end
13
+
14
+ # Converts the string into English spelling.
15
+ # @return [String] the string converted into English spelling
16
+ def anglicize!
17
+ self.replace(self.anglicize)
7
18
  end
8
19
 
20
+ # @return [String] a copy of the string converted into American spelling.
9
21
  def americanize
10
- split.map{|token| get_americanized_word(token) }.join(" ")
22
+ result = self.dup
23
+ scan(WORD_RE).uniq.each do |word|
24
+ result.gsub!(/\b#{word}\b/, get_americanized_word(word))
25
+ end
26
+ result
11
27
  end
12
28
 
29
+ # Converts the string into American spelling.
30
+ # @return [String] the string converted into American spelling
31
+ def americanize!
32
+ self.replace(self.americanize)
33
+ end
34
+
35
+ # @return [Boolean] a value indicating whether the English spelling differs.
13
36
  def has_alternate_english_spelling?
14
37
  self != anglicize
15
38
  end
16
39
 
40
+ # @return [Boolean] a value indicating whether the American spelling differs.
17
41
  def has_alternate_american_spelling?
18
42
  self != americanize
19
43
  end
20
44
 
45
+ # @param word [String] used as the case template
46
+ # @return [String] a copy of the string with the same case as the template.
21
47
  def copy_case(word)
22
- if word == word.capitalize
23
- capitalize
24
- elsif word == word.upcase
25
- upcase
48
+ result = ""
49
+ if word.upcase == word
50
+ result = self.upcase
51
+ elsif word.downcase == word
52
+ result = self.downcase
26
53
  else
27
- downcase
54
+ self.chars.each_with_index do |char, index|
55
+ word_char = word[index] || "a"
56
+ result << (word_char.upcase == word_char ? char.upcase : char.downcase)
57
+ end
28
58
  end
59
+ result
60
+ end
61
+
62
+ # Changes the string to have the same case as the string parameter.
63
+ # @param word [String] used as the case template
64
+ # @return [String] the string with the same case as the template.
65
+ def copy_case!(word)
66
+ self.replace(self.copy_case)
29
67
  end
30
68
 
31
69
  private
32
70
 
71
+ # A regular expression for identifying words
72
+ WORD_RE = /\b[a-zA-Z]+\b/
73
+
33
74
  def get_anglicized_word(word)
75
+ # Load american to english conversion hash if not already loaded
34
76
  @@american_to_english ||= load_american_to_english
35
77
  key = word.downcase
36
78
  (@@american_to_english[key] || word).copy_case(word)
37
79
  end
38
80
 
39
81
  def get_americanized_word(word)
82
+ # Load english to american hash if not already loaded
40
83
  @@english_to_american ||= load_english_to_american
41
84
  key = word.downcase
42
85
  (@@english_to_american[key] || word).copy_case(word)
43
86
  end
44
87
 
88
+ # Load alternate spellings if not already loaded and insert values and keys
45
89
  def load_american_to_english
46
90
  @@alternate_spellings ||= load_alternate_spellings
47
91
  @@alternate_spellings.invert
48
92
  end
49
93
 
94
+ # Load alternate spellings if not already loaded
50
95
  def load_english_to_american
51
96
  @@alternate_spellings ||= load_alternate_spellings
52
97
  end
@@ -1,3 +1,5 @@
1
+ # default module
1
2
  module Anglicize
2
- VERSION = "0.0.1"
3
+ # version number
4
+ VERSION = "0.0.2"
3
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: anglicize
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Webb
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-17 00:00:00.000000000 Z
11
+ date: 2014-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -65,3 +65,4 @@ signing_key:
65
65
  specification_version: 4
66
66
  summary: Converts strings from American spelling to English spelling and vice versa.
67
67
  test_files: []
68
+ has_rdoc: