simple_localizer 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.
data/README.md CHANGED
@@ -18,6 +18,14 @@ class Product < ActiveRecord::Base
18
18
  end
19
19
  ```
20
20
 
21
+ ## Create migration for translations
22
+
23
+ ```console
24
+ bundle exec rails generate simple_localizer:create_migration product name:string
25
+ ```
26
+
27
+ ## Usage
28
+
21
29
  ```ruby
22
30
  product = Product.create! :name_en => 'a'
23
31
  puts product.name_en # => a
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
@@ -0,0 +1,32 @@
1
+ module SimpleLocalizer
2
+ module Generators
3
+ class CreateMigrationGenerator < Rails::Generators::Base
4
+ include Rails::Generators::Migration
5
+
6
+ source_root File.expand_path('../templates', __FILE__)
7
+ argument :model_name, :type => :string
8
+ argument :fields, :type => :hash
9
+
10
+ def self.next_migration_number(dirname, count = 0)
11
+ if count == 0
12
+ name = Time.now.strftime("%Y%m%d%H%M%S")
13
+ else
14
+ name = (Time.now + count).strftime("%Y%m%d%H%M%S")
15
+ end
16
+
17
+ if Dir[File.join(dirname, name + '*')].empty?
18
+ name
19
+ else
20
+ next_migration_number(dirname, count + 1)
21
+ end
22
+ end
23
+
24
+ def create_migration
25
+ migration_template(
26
+ "create_translations.rb",
27
+ "db/migrate/create_#{model_name.underscore}_translations",
28
+ )
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,19 @@
1
+ <% table_name = ":#{model_name.underscore}_translations" -%>
2
+ <% owner_id = ":#{model_name.underscore}_id" -%>
3
+ class Create<%= model_name.camelcase -%>Translations < ActiveRecord::Migration
4
+ def change
5
+ create_table <%= table_name -%> do |t|
6
+ t.string :locale, :null => false
7
+ t.integer <%= owner_id -%>
8
+ <% fields.each_pair do |column, type| %>
9
+ t.<%= type %> <%= ":#{column}" -%>
10
+ <% end %>
11
+
12
+ t.timestamps
13
+ end
14
+
15
+ add_index <%= table_name -%>, <%= owner_id %>
16
+ add_index <%= table_name -%>, :locale
17
+ add_index <%= table_name -%>, [:locale, <%= owner_id -%>], :unique => true
18
+ end
19
+ end
@@ -3,7 +3,7 @@
3
3
  require "active_record"
4
4
 
5
5
  module SimpleLocalizer
6
- SUPPORTED_LOCALES = %w(
6
+ @@supported_locales = %w(
7
7
  aa ab ae af al am ar as ay az
8
8
  ba be bg bh bi bn bo bp br ca
9
9
  cf ch co cs cy de dr dt dz ef
@@ -41,7 +41,7 @@ module SimpleLocalizer
41
41
 
42
42
  translated_attribute_names.each do |attr|
43
43
  define_method attr do
44
- locale = SimpleLocalizer.read_locale || I18n.default_locale.to_s
44
+ locale = SimpleLocalizer.read_locale
45
45
  send("#{attr}_#{locale}")
46
46
  end
47
47
 
@@ -50,7 +50,7 @@ module SimpleLocalizer
50
50
  send("#{attr}_#{locale}=", value)
51
51
  end
52
52
 
53
- SimpleLocalizer::SUPPORTED_LOCALES.each do |locale|
53
+ SimpleLocalizer.supported_locales.each do |locale|
54
54
  define_method "#{attr}_#{locale}" do
55
55
  translation = translations.detect { |translation|
56
56
  translation.locale == locale
@@ -80,9 +80,17 @@ module SimpleLocalizer
80
80
 
81
81
  module_function
82
82
 
83
+ def supported_locales
84
+ @@supported_locales
85
+ end
86
+
87
+ def supported_locales=(value)
88
+ @@supported_locales = value
89
+ end
90
+
83
91
  def with_locale(new_locale, &block)
84
92
  begin
85
- pre_locale = read_locale
93
+ pre_locale = Thread.current[:simple_localizer_locale]
86
94
  set_locale(new_locale)
87
95
  yield
88
96
  ensure
@@ -91,7 +99,7 @@ module SimpleLocalizer
91
99
  end
92
100
 
93
101
  def read_locale
94
- Thread.current[:simple_localizer_locale]
102
+ (Thread.current[:simple_localizer_locale] || I18n.locale || I18n.default_locale).to_s
95
103
  end
96
104
 
97
105
  private
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "simple_localizer"
8
- s.version = "0.0.1"
8
+ s.version = "0.0.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["vad4msiu"]
@@ -23,6 +23,8 @@ Gem::Specification.new do |s|
23
23
  "README.md",
24
24
  "Rakefile",
25
25
  "VERSION",
26
+ "lib/generators/simple_localizer/create_migration_generator.rb",
27
+ "lib/generators/simple_localizer/templates/create_translations.rb",
26
28
  "lib/simple_localizer.rb",
27
29
  "simple_localizer.gemspec",
28
30
  "spec/database.yml",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_localizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-08-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
- requirement: &70306244922640 !ruby/object:Gem::Requirement
16
+ requirement: &70335564759600 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70306244922640
24
+ version_requirements: *70335564759600
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70306244922020 !ruby/object:Gem::Requirement
27
+ requirement: &70335564758700 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 2.8.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70306244922020
35
+ version_requirements: *70335564758700
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &70306244921440 !ruby/object:Gem::Requirement
38
+ requirement: &70335564757240 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.0.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70306244921440
46
+ version_requirements: *70335564757240
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jeweler
49
- requirement: &70306244920740 !ruby/object:Gem::Requirement
49
+ requirement: &70335564756460 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.8.4
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70306244920740
57
+ version_requirements: *70335564756460
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: database_cleaner
60
- requirement: &70306244934620 !ruby/object:Gem::Requirement
60
+ requirement: &70335564755700 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70306244934620
68
+ version_requirements: *70335564755700
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sqlite3
71
- requirement: &70306244933760 !ruby/object:Gem::Requirement
71
+ requirement: &70335564771380 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70306244933760
79
+ version_requirements: *70335564771380
80
80
  description: Simple localization your ActiveRecord fields without magic
81
81
  email: vad4msiu@gmail.com
82
82
  executables: []
@@ -91,6 +91,8 @@ files:
91
91
  - README.md
92
92
  - Rakefile
93
93
  - VERSION
94
+ - lib/generators/simple_localizer/create_migration_generator.rb
95
+ - lib/generators/simple_localizer/templates/create_translations.rb
94
96
  - lib/simple_localizer.rb
95
97
  - simple_localizer.gemspec
96
98
  - spec/database.yml
@@ -112,7 +114,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
112
114
  version: '0'
113
115
  segments:
114
116
  - 0
115
- hash: -348099263649400343
117
+ hash: -3509865957538807327
116
118
  required_rubygems_version: !ruby/object:Gem::Requirement
117
119
  none: false
118
120
  requirements: