easy_translatable 0.1.0 → 0.1.1
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 +4 -4
- data/README.md +9 -1
- data/lib/translatable/active_record/instance_methods.rb +1 -1
- data/lib/translatable/active_record/macro.rb +3 -21
- data/lib/translatable.rb +4 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 74b40eace2abda621f5019ea144a1e46f33977d3
|
4
|
+
data.tar.gz: 0ee0103de6ce639fbf75d1474eb864d12d5f57c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 48b503b54a498d677c87df013a5fb7a46b2f42905b8be2d41c679f79a3c1dbda8403e2b92ce03f9085aefc48670312d971ea2b200c669c40ccab2961cd2b1806
|
7
|
+
data.tar.gz: d57355737118302f13d97a92dec4ddd79edcef183504f885e3884d79cb6907a3332aa1205186fee9f08a9d8c2d89e269e180a51a5ddb7c6edde5ad10317d1616
|
data/README.md
CHANGED
@@ -17,4 +17,12 @@ When using bundler put this in your Gemfile:
|
|
17
17
|
|
18
18
|
```ruby
|
19
19
|
gem 'easy_translatable', '~> 0.1.0'
|
20
|
-
```
|
20
|
+
```
|
21
|
+
|
22
|
+
## Todo
|
23
|
+
|
24
|
+
- Tests, tests and tests
|
25
|
+
- cleanup
|
26
|
+
- doc
|
27
|
+
- migration/model for translation table
|
28
|
+
- serialized attributes (JSON/YML)
|
@@ -11,29 +11,15 @@ module Translatable
|
|
11
11
|
attr_names -= translated_attribute_names if defined?(translated_attribute_names)
|
12
12
|
|
13
13
|
if attr_names.present?
|
14
|
-
translation_class.instance_eval %{
|
15
|
-
attr_accessible :#{attr_names.join(', :')}
|
16
|
-
}
|
17
14
|
|
18
15
|
attr_names.each do |attr_name|
|
19
|
-
# Detect and apply serialization.
|
20
|
-
serializer = self.serialized_attributes[attr_name.to_s]
|
21
|
-
if serializer.present?
|
22
|
-
if defined?(::ActiveRecord::Coders::YAMLColumn) &&
|
23
|
-
serializer.is_a?(::ActiveRecord::Coders::YAMLColumn)
|
24
|
-
|
25
|
-
serializer = serializer.object_class
|
26
|
-
end
|
27
|
-
|
28
|
-
translation_class.send :serialize, attr_name, serializer
|
29
|
-
end
|
30
|
-
|
31
16
|
# Create accessors for the attribute.
|
32
17
|
translated_attr_accessor(attr_name)
|
33
18
|
translations_accessor(attr_name)
|
34
19
|
|
35
20
|
# Add attribute to the list.
|
36
21
|
self.translated_attribute_names << attr_name
|
22
|
+
self.translated_serialized_attributes[attr_name] = options[:json] if options[:json]
|
37
23
|
end
|
38
24
|
|
39
25
|
Translatable.add_translatable self
|
@@ -58,15 +44,11 @@ module Translatable
|
|
58
44
|
options[:foreign_key] ||= 'record_id'
|
59
45
|
options[:conditions] ||= ''
|
60
46
|
|
61
|
-
class_attribute :translated_attribute_names, :translation_options, :fallbacks_for_empty_translations
|
47
|
+
class_attribute :translated_attribute_names, :translation_options, :fallbacks_for_empty_translations, :translated_serialized_attributes
|
62
48
|
self.translated_attribute_names = []
|
63
49
|
self.translation_options = options
|
64
50
|
self.fallbacks_for_empty_translations = options[:fallbacks_for_empty_translations]
|
65
|
-
|
66
|
-
# Alias original relation method so we can safely override it in ClassMethods.
|
67
|
-
#class << self
|
68
|
-
# alias relation_without_globalize relation
|
69
|
-
#end
|
51
|
+
self.translated_serialized_attributes = Hash.new if options[:json]
|
70
52
|
|
71
53
|
include InstanceMethods
|
72
54
|
extend ClassMethods
|
data/lib/translatable.rb
CHANGED
@@ -42,6 +42,10 @@ module Translatable
|
|
42
42
|
else
|
43
43
|
@@translatable[klass.name] = klass.translated_attribute_names
|
44
44
|
end
|
45
|
+
|
46
|
+
unless klass.translated_serialized_attributes.nil?
|
47
|
+
@@translatable[klass.name].map!{ |attr| klass.translated_serialized_attributes.reject{|k,v| k != attr} }
|
48
|
+
end
|
45
49
|
end
|
46
50
|
|
47
51
|
protected
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easy_translatable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Bonaud
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ~>
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '3.
|
20
|
+
version: '3.2'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - ~>
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '3.
|
27
|
+
version: '3.2'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rake
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|