lazier 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -103,7 +103,7 @@
103
103
  </div>
104
104
 
105
105
  <div id="footer">
106
- Generated on Mon Jan 28 20:23:45 2013 by
106
+ Generated on Tue Jan 29 08:05:14 2013 by
107
107
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
108
108
  0.8.3 (ruby-1.9.3).
109
109
  </div>
@@ -25,6 +25,7 @@ Gem::Specification.new do |gem|
25
25
  gem.add_dependency("json", "~> 1.7.6")
26
26
  gem.add_dependency("actionpack", ">= 3.2.11") # We don't use ~> to enable use with 4.0
27
27
  gem.add_dependency("tzinfo", "~> 0.3.35")
28
+ gem.add_dependency("r18n-desktop", "~> 1.1.3")
28
29
 
29
30
  gem.add_development_dependency("rspec", "~> 2.12.0")
30
31
  gem.add_development_dependency("rake", "~> 10.0.3")
@@ -8,6 +8,7 @@ require "json"
8
8
  require "tzinfo"
9
9
  require "active_support/all"
10
10
  require "action_view"
11
+ require "r18n-desktop"
11
12
 
12
13
  require "lazier/version" if !defined?(Lazier::Version)
13
14
  require "lazier/exceptions"
@@ -22,16 +23,18 @@ require "lazier/pathname"
22
23
 
23
24
  # Several Ruby object enhancements.
24
25
  module Lazier
25
- # Returns the settings for the extensions
26
+ # Returns the settings for the extensions.
26
27
  #
27
28
  # @return [Settings] The settings for the extensions.
28
29
  def self.settings
30
+ ::Lazier.localize if !Lazier.localized?
29
31
  ::Lazier::Settings.instance
30
32
  end
31
33
 
32
34
  # Loads the extensions.
33
35
  #
34
36
  # @param what [Array] The modules to load. Valid values are:
37
+ #
35
38
  # @option object Extensions for all objects.
36
39
  # @option boolean Extensions for boolean values.
37
40
  # @option string Extensions for strings.
@@ -41,8 +44,10 @@ module Lazier
41
44
  # @option pathname Extensions for path objects.
42
45
  # @return [Settings] The settings for the extensions.
43
46
  def self.load!(*what)
47
+ ::Lazier.localize if !Lazier.localized?
48
+
44
49
  what = ["object", "boolean", "string", "hash", "datetime", "math", "pathname"] if what.count == 0
45
- what.collect! { |w| Lazier.send("load_#{w}") }
50
+ what.collect! { |w| ::Lazier.send("load_#{w}") }
46
51
 
47
52
  yield if block_given?
48
53
  ::Lazier::Settings.instance
@@ -120,4 +125,27 @@ module Lazier
120
125
  include ::Lazier::Pathname
121
126
  end
122
127
  end
128
+
129
+ # Get the list of available translation for the current locale.
130
+ #
131
+ # @return The translation
132
+ def self.i18n
133
+ Lazier.localize if !Lazier.localized?
134
+ ::R18n.get.try(:t)
135
+ end
136
+
137
+ # Set the current locale for messages.
138
+ #
139
+ # @param locale [String] The new locale. Default is the current system locale.
140
+ def self.localize(locale = nil)
141
+ @i18n_locales_path ||= ::File.absolute_path(::Pathname.new(::File.dirname(__FILE__)).to_s + "/../locales/")
142
+ locale ? ::R18n.set(locale, @i18n_locales_path) : ::R18n.set(:en, @i18n_locales_path)
143
+ end
144
+
145
+ # Check whether the i18n support have been enabled.
146
+ #
147
+ # @return [Boolean] Whether the i18n support have been enabled or not.
148
+ def self.localized?
149
+ @i18n_locales_path.present?
150
+ end
123
151
  end
@@ -51,8 +51,8 @@ module Lazier
51
51
  # @param false_name [String] The string representation of `false`. Defaults to `No`.
52
52
  # @return [Hash] The new representations.
53
53
  def setup_boolean_names(true_name = nil, false_name = nil)
54
- true_name ||= "Yes"
55
- false_name ||= "No"
54
+ true_name ||= Lazier.i18n.boolean[0]
55
+ false_name ||= Lazier.i18n.boolean[1]
56
56
  @boolean_names = {true => true_name, false => false_name}
57
57
  end
58
58
 
@@ -90,10 +90,10 @@ module Lazier
90
90
  # @param short_days [Array] The abbreviated string representation of days.
91
91
  # @return [Hash] The new representations.
92
92
  def setup_date_names(long_months = nil, short_months = nil, long_days = nil, short_days = nil)
93
- long_months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] if long_months.blank?
94
- short_months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] if short_months.blank?
95
- long_days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] if long_days.blank?
96
- short_days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] if short_days.blank?
93
+ long_months = Lazier.i18n.date.long_months if long_months.blank?
94
+ short_months = Lazier.i18n.date.short_months if short_months.blank?
95
+ long_days = Lazier.i18n.date.long_days if long_days.blank?
96
+ short_days = Lazier.i18n.date.short_days if short_days.blank?
97
97
 
98
98
  @date_names = { long_months: long_months, short_months: short_months, long_days: long_days, short_days: short_days }
99
99
  end
@@ -13,7 +13,7 @@ module Lazier
13
13
  MAJOR = 2
14
14
 
15
15
  # The minor version.
16
- MINOR = 0
16
+ MINOR = 1
17
17
 
18
18
  # The patch version.
19
19
  PATCH = 0
@@ -0,0 +1,53 @@
1
+ # encoding: utf-8
2
+ #
3
+ # This file is part of the lazier gem. Copyright (C) 2013 and above Shogun <shogun_panda@me.com>.
4
+ # Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
5
+ #
6
+
7
+ ---
8
+ boolean:
9
+ - "Yes"
10
+ - "No"
11
+ date:
12
+ long_months:
13
+ - "January"
14
+ - "February"
15
+ - "March"
16
+ - "April"
17
+ - "May"
18
+ - "June"
19
+ - "July"
20
+ - "August"
21
+ - "September"
22
+ - "October"
23
+ - "November"
24
+ - "December"
25
+ short_months:
26
+ - "Jan"
27
+ - "Feb"
28
+ - "Mar"
29
+ - "Apr"
30
+ - "May"
31
+ - "Jun"
32
+ - "Jul"
33
+ - "Aug"
34
+ - "Sep"
35
+ - "Oct"
36
+ - "Nov"
37
+ - "Dec"
38
+ long_days:
39
+ - "Sunday"
40
+ - "Monday"
41
+ - "Tuesday"
42
+ - "Wednesday"
43
+ - "Thursday"
44
+ - "Friday"
45
+ - "Saturday"
46
+ short_days:
47
+ - "Sun"
48
+ - "Mon"
49
+ - "Tue"
50
+ - "Wed"
51
+ - "Thu"
52
+ - "Fri"
53
+ - "Sat"
@@ -0,0 +1,52 @@
1
+ # encoding: utf-8
2
+ #
3
+ # This file is part of the lazier gem. Copyright (C) 2013 and above Shogun <shogun_panda@me.com>.
4
+ # Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
5
+ #
6
+
7
+ ---
8
+ boolean:
9
+ - "Yes"
10
+ - "No"
11
+ date:
12
+ long_months:
13
+ - "Gennaio"
14
+ - "Febbraio"
15
+ - "Marzo"
16
+ - "Aprile"
17
+ - "Maggio"
18
+ - "Giugno"
19
+ - "Luglio"
20
+ - "Agosto"
21
+ - "Settembre"
22
+ - "Ottobre"
23
+ - "Novembre"
24
+ - "Dicembre"
25
+ short_monts:
26
+ - "Gen"
27
+ - "Feb"
28
+ - "Mar"
29
+ - "Apr"
30
+ - "Mag"
31
+ - "Giu"
32
+ - "Lug"
33
+ - "Ago"
34
+ - "SetOtt"
35
+ - "Nov"
36
+ - "Dic"
37
+ long_days:
38
+ - "Domenica"
39
+ - "Lunedì"
40
+ - "Martedì"
41
+ - "Mercoledì"
42
+ - "Giovedì"
43
+ - "Venerdì"
44
+ - "Sabato"
45
+ short_days:
46
+ - "Dom"
47
+ - "Lun"
48
+ - "Mar"
49
+ - "Mer"
50
+ - "Gio"
51
+ - "Ven"
52
+ - "Sab"
@@ -42,4 +42,44 @@ describe Lazier do
42
42
  end
43
43
  end
44
44
  end
45
+
46
+ describe ".i18n" do
47
+ it "should run localize if needed" do
48
+ Lazier.instance_variable_set(:@i18n_locales_path, nil)
49
+ Lazier.should_receive(:localize)
50
+ Lazier.i18n
51
+ end
52
+
53
+ it "should return a localizer object" do
54
+ R18n.stub(:get).and_return(Object.new)
55
+ R18n.get.should_receive(:try).with(:t)
56
+ Lazier.i18n
57
+ end
58
+ end
59
+
60
+ describe ".localize" do
61
+ it "should set the right locale path" do
62
+ Lazier.localize
63
+ expect(Lazier.instance_variable_get(:@i18n_locales_path)).to eq(File.absolute_path(::Pathname.new(File.dirname(__FILE__)).to_s + "/../locales/"))
64
+ end
65
+
66
+ it "should set using English if called without arguments" do
67
+ R18n.should_receive(:set).with(:en, File.absolute_path(::Pathname.new(File.dirname(__FILE__)).to_s + "/../locales/"))
68
+ Lazier.localize
69
+ end
70
+
71
+ it "should set the requested locale" do
72
+ R18n.should_receive(:set).with(:it, File.absolute_path(::Pathname.new(File.dirname(__FILE__)).to_s + "/../locales/"))
73
+ Lazier.localize(:it)
74
+ end
75
+ end
76
+
77
+ describe ".localize?" do
78
+ it "should respect the value of the internal variable" do
79
+ Lazier.instance_variable_set(:@i18n_locales_path, nil)
80
+ expect(Lazier.localized?).to be_false
81
+ Lazier.localize(:en)
82
+ expect(Lazier.localized?).to be_true
83
+ end
84
+ end
45
85
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lazier
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -59,6 +59,22 @@ dependencies:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: 0.3.35
62
+ - !ruby/object:Gem::Dependency
63
+ name: r18n-desktop
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 1.1.3
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 1.1.3
62
78
  - !ruby/object:Gem::Dependency
63
79
  name: rspec
64
80
  requirement: !ruby/object:Gem::Requirement
@@ -227,6 +243,8 @@ files:
227
243
  - lib/lazier/settings.rb
228
244
  - lib/lazier/string.rb
229
245
  - lib/lazier/version.rb
246
+ - locales/en.yml
247
+ - locales/it.yml
230
248
  - spec/coverage_helper.rb
231
249
  - spec/lazier/boolean_spec.rb
232
250
  - spec/lazier/datetime_spec.rb