numbers_and_words 0.7.1 → 0.8.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 CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YjY4MzliZjgxMWZjZTcyM2FhNDYxZWY0NTU1MmUzYWNhZWI4MWYxOQ==
5
- data.tar.gz: !binary |-
6
- MDNiNGE0ODQ4NjEzMDliZmJkNWQxMTI1MWU4YTI1ZTRhMzFlODE2Zg==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- MGI3NjJkY2E1OWM2OTFhNzZmZmY4NjFhNGNhY2QwZGZhN2RmZjE0YjJlNzUw
10
- MTAzNmZiMDY0MzJiOWFjZGY0N2JlZjVlYTVlZTNjZGQzNGNiZTU3YjJlMTFm
11
- ZDM5YTQ2NjYzZjAxZDkyYzI2Y2EzZGRkMzU5NGZkYWMxMjMyNzk=
12
- data.tar.gz: !binary |-
13
- NjAwODNmZDFkMjE0ODc5ZGI0Y2M3YWYwNmU1M2ZlOTY1YTdiM2IxMmM2MWMx
14
- ZDM4MDIzNmJlNWFmMjY3Y2M3ODMxMWU1ZmE1ZmU3NDUxZTc0MTYxMTk5Y2Ew
15
- ZTY2YmFkYzQzMDM4NzEzYjg0NjE0ODI1ZGQ2YjJiZTFmMmFjNjU=
2
+ SHA1:
3
+ metadata.gz: 14b6c2ee5f7c2b5803ea7a19d4a3ca3441db4435
4
+ data.tar.gz: 459a289fa37ac62d3434560976b7a59f50c94c95
5
+ SHA512:
6
+ metadata.gz: cfb6bebd6a761b1b74e0596fc0ea4090f19f673c6e6f32374d99075ea945038adfe52707c00d845888112838a29c33b2606c444265c712408136bf87fa29d198
7
+ data.tar.gz: e74db64eb655bd469aba22ea94d8ef5f1ac00d973b5378e4283ea40c913ad84276d50f0d9903dc2a2562a6b6e6c6158e68ac95b43189e145e94f6c35dc6962fc
data/README.rdoc CHANGED
@@ -16,20 +16,27 @@ Számok betűvel írva az I18n könyvtár segítségével.
16
16
 
17
17
  == Supported Languages / Языки / Langues Supportées
18
18
 
19
- * English
20
- * Spanish
21
- * Русский
22
- * Français
23
- * Українська
24
- * Magyar
25
- * Türkçe**
26
- * Italiano**
27
- * Nederlands**
28
- * Swedish**
29
- * English (British)**
19
+ * English [en]
20
+ * Spanish [es]
21
+ * Русский [ru]
22
+ * Français [fr]
23
+ * Українська [ua]
24
+ * Magyar [hu]
25
+ * Türkçe** [tr]
26
+ * Italiano** [it]
27
+ * Nederlands** [nl]
28
+ * Swedish** [se]
29
+ * English (British)** [en-GB]
30
30
 
31
31
  ** Experimental
32
32
 
33
+ * {[en-AU], [en-CA], [en-IN], [en-US]}*** => [en]
34
+ * {[es-419], [es-AR], [es-CL], [es-CO], [es-MX], [es-PE], [es-VE]}*** => [es]
35
+ * {[fr-CA], [fr-CH]}*** => [fr]
36
+ * {[it-CH]}*** => [it]
37
+
38
+ *** Aliases
39
+
33
40
  == Examples / Примеры / Exemples
34
41
 
35
42
  I18n.with_locale(:en) { 42.to_words }
@@ -8,11 +8,15 @@ module NumbersAndWords
8
8
 
9
9
  def to_words options = {}
10
10
  validate_figure_array!
11
- Strategies.figures_converter.new(self, options).run
11
+ local_language { Strategies.figures_converter.new(self, options).run }
12
12
  end
13
13
 
14
14
  def reverse
15
15
  super.to_figures
16
16
  end
17
+
18
+ def local_language
19
+ ::I18n.with_locale(I18n.local_language) { yield }
20
+ end
17
21
  end
18
22
  end
@@ -5,7 +5,11 @@ module NumbersAndWords
5
5
  class WordsArray < Array
6
6
 
7
7
  def join options = {}
8
- Strategies.array_joiner.new(self.to_a, options).run
8
+ local_language { Strategies.array_joiner.new(self.to_a, options).run }
9
+ end
10
+
11
+ def local_language
12
+ ::I18n.with_locale(I18n.local_language) { yield }
9
13
  end
10
14
  end
11
15
  end
@@ -5,6 +5,27 @@ module NumbersAndWords
5
5
  module I18n
6
6
  extend self
7
7
 
8
+ def languages
9
+ @languages ||= (locale_files.map { |path| path.split(/[\/.]/)[-2].to_sym })
10
+ end
11
+
12
+ def local_language locale = ::I18n.locale
13
+ if languages.include?(locale)
14
+ locale
15
+ else
16
+ locale = locale.to_s.scan(/\w+/).first.to_sym
17
+ languages.include?(locale) ? locale : raise('Language not supported')
18
+ end
19
+ end
20
+
21
+ def language_class_name
22
+ ::I18n.locale.to_s.titleize.gsub ' ', ''
23
+ end
24
+
25
+ def locale_files
26
+ files 'locales', '*.*'
27
+ end
28
+
8
29
  def files directory, ext
9
30
  Dir[File.join File.dirname(__FILE__), "i18n/#{directory}", "**/#{ext}"]
10
31
  end
@@ -3,22 +3,10 @@ module NumbersAndWords
3
3
  module Initialization
4
4
  extend self
5
5
 
6
- attr_accessor :languages
7
-
8
6
  def init
9
- locale_files.each { |locale_file| ::I18n.load_path << locale_file}
7
+ I18n.locale_files.each { |locale_file| ::I18n.load_path << locale_file}
10
8
  NumbersAndWords::I18n::Pluralization.init
11
9
  end
12
-
13
- def languages
14
- @languages ||= (locale_files.map{|path| path.split(/[\/.]/)[-2]})
15
- end
16
-
17
- private
18
-
19
- def locale_files
20
- I18n.files 'locales', '*.*'
21
- end
22
10
  end
23
11
  end
24
12
  end
@@ -14,11 +14,7 @@ module NumbersAndWords
14
14
  module Languages
15
15
  class << self
16
16
  def factory strategy
17
- "#{name}::#{language_class_name}".constantize.new strategy
18
- end
19
-
20
- def language_class_name
21
- ::I18n.locale.to_s.titleize.gsub ' ', ''
17
+ "#{name}::#{I18n.language_class_name}".constantize.new strategy
22
18
  end
23
19
  end
24
20
  end
@@ -27,11 +27,7 @@ module NumbersAndWords
27
27
  end
28
28
 
29
29
  def decorator_class_name method_name
30
- "#{name}::#{language_class_name}::#{method_name.to_s.camelcase}"
31
- end
32
-
33
- def language_class_name
34
- ::I18n.locale.to_s.titleize.gsub ' ', ''
30
+ "#{name}::#{I18n.language_class_name}::#{method_name.to_s.camelcase}"
35
31
  end
36
32
  end
37
33
  end
@@ -27,11 +27,7 @@ module NumbersAndWords
27
27
  module Languages
28
28
  class << self
29
29
  def factory strategy
30
- "#{name}::#{language_class_name}".constantize.new strategy
31
- end
32
-
33
- def language_class_name
34
- ::I18n.locale.to_s.titleize.gsub ' ', ''
30
+ "#{name}::#{I18n.language_class_name}".constantize.new strategy
35
31
  end
36
32
  end
37
33
  end
@@ -7,7 +7,9 @@ module NumbersAndWords
7
7
  include Base
8
8
 
9
9
  def gender
10
- case @current_capacity.to_i
10
+ @current_capacity ||= 0
11
+
12
+ case @current_capacity
11
13
  when 1
12
14
  :female
13
15
  when 0
@@ -25,11 +25,7 @@ module NumbersAndWords
25
25
  private
26
26
 
27
27
  def proxy_class_name method_name
28
- "#{module_name}::#{language_class_name}::#{method_name.to_s.camelcase}"
29
- end
30
-
31
- def language_class_name
32
- ::I18n.locale.to_s.titleize.gsub ' ', ''
28
+ "#{module_name}::#{I18n.language_class_name}::#{method_name.to_s.camelcase}"
33
29
  end
34
30
 
35
31
  def module_name
@@ -19,11 +19,7 @@ module NumbersAndWords
19
19
  module Translations
20
20
  class << self
21
21
  def factory
22
- "#{name}::#{language_class_name}".constantize.new
23
- end
24
-
25
- def language_class_name
26
- ::I18n.locale.to_s.titleize.gsub ' ', ''
22
+ "#{name}::#{I18n.language_class_name}".constantize.new
27
23
  end
28
24
  end
29
25
  end
@@ -1,3 +1,3 @@
1
1
  module NumbersAndWords
2
- VERSION = '0.7.1'
2
+ VERSION = '0.8.0'
3
3
  end
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: numbers_and_words
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kirill Lazarev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-22 00:00:00.000000000 Z
11
+ date: 2013-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: jeweler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  description: Convert numbers to words using I18N.
@@ -203,12 +203,12 @@ require_paths:
203
203
  - lib
204
204
  required_ruby_version: !ruby/object:Gem::Requirement
205
205
  requirements:
206
- - - ! '>='
206
+ - - '>='
207
207
  - !ruby/object:Gem::Version
208
208
  version: '0'
209
209
  required_rubygems_version: !ruby/object:Gem::Requirement
210
210
  requirements:
211
- - - ! '>='
211
+ - - '>='
212
212
  - !ruby/object:Gem::Version
213
213
  version: '0'
214
214
  requirements: []