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
|
+
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
|
data/lib/simple_localizer.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
require "active_record"
|
|
4
4
|
|
|
5
5
|
module SimpleLocalizer
|
|
6
|
-
|
|
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
|
|
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
|
|
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 =
|
|
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
|
data/simple_localizer.gemspec
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = "simple_localizer"
|
|
8
|
-
s.version = "0.0.
|
|
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.
|
|
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: &
|
|
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: *
|
|
24
|
+
version_requirements: *70335564759600
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: rspec
|
|
27
|
-
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: *
|
|
35
|
+
version_requirements: *70335564758700
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: bundler
|
|
38
|
-
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: *
|
|
46
|
+
version_requirements: *70335564757240
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: jeweler
|
|
49
|
-
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: *
|
|
57
|
+
version_requirements: *70335564756460
|
|
58
58
|
- !ruby/object:Gem::Dependency
|
|
59
59
|
name: database_cleaner
|
|
60
|
-
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: *
|
|
68
|
+
version_requirements: *70335564755700
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: sqlite3
|
|
71
|
-
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: *
|
|
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: -
|
|
117
|
+
hash: -3509865957538807327
|
|
116
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
117
119
|
none: false
|
|
118
120
|
requirements:
|