globalize3 0.0.3 → 0.0.4
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.
@@ -11,18 +11,16 @@ module Globalize
|
|
11
11
|
extend ClassMethods, Migration
|
12
12
|
|
13
13
|
class_inheritable_accessor :translated_attribute_names, :translation_options
|
14
|
-
class_inheritable_writer :required_attributes
|
15
|
-
|
16
14
|
self.translated_attribute_names = attr_names.map(&:to_sym)
|
17
15
|
self.translation_options = options
|
18
16
|
|
19
|
-
after_save :save_translations!
|
20
|
-
|
21
17
|
has_many :translations, :class_name => translation_class.name,
|
22
18
|
:foreign_key => class_name.foreign_key,
|
23
19
|
:dependent => :delete_all,
|
24
20
|
:extend => HasManyExtensions
|
25
21
|
|
22
|
+
after_save :save_translations!
|
23
|
+
|
26
24
|
attr_names.each { |attr_name| translated_attr_accessor(attr_name) }
|
27
25
|
end
|
28
26
|
|
@@ -22,10 +22,14 @@ module Globalize
|
|
22
22
|
locales ||= Globalize.fallbacks
|
23
23
|
with_translations.where(
|
24
24
|
translated_column_name(name) => value,
|
25
|
-
translated_column_name(:locale) => locales.map(&:to_s)
|
25
|
+
translated_column_name(:locale) => Array(locales).map(&:to_s)
|
26
26
|
)
|
27
27
|
end
|
28
28
|
|
29
|
+
def translated?(name)
|
30
|
+
translated_attribute_names.include?(name)
|
31
|
+
end
|
32
|
+
|
29
33
|
def required_attributes
|
30
34
|
validators.map { |v| v.attributes if v.is_a?(ActiveModel::Validations::PresenceValidator) }.flatten
|
31
35
|
end
|
@@ -52,11 +56,11 @@ module Globalize
|
|
52
56
|
end
|
53
57
|
|
54
58
|
def respond_to?(method, *args, &block)
|
55
|
-
method.to_s =~ /^find_by_(\w+)$/ &&
|
59
|
+
method.to_s =~ /^find_by_(\w+)$/ && translated?($1.to_sym) || super
|
56
60
|
end
|
57
61
|
|
58
62
|
def method_missing(method, *args)
|
59
|
-
if method.to_s =~ /^find_(first_|)by_(\w+)$/ &&
|
63
|
+
if method.to_s =~ /^find_(first_|)by_(\w+)$/ && translated?($2.to_sym)
|
60
64
|
result = with_translated_attribute($2, args.first)
|
61
65
|
$1 == 'first_' ? result.first : result.all
|
62
66
|
else
|
@@ -67,13 +71,12 @@ module Globalize
|
|
67
71
|
protected
|
68
72
|
|
69
73
|
def translated_attr_accessor(name)
|
70
|
-
define_method
|
71
|
-
globalize.write(Globalize.locale, name, value)
|
72
|
-
|
73
|
-
|
74
|
-
define_method name, lambda { |*args|
|
74
|
+
define_method(:"#{name}=") do |value|
|
75
|
+
self[name] = globalize.write(Globalize.locale, name, value)
|
76
|
+
end
|
77
|
+
define_method(name) do |*args|
|
75
78
|
globalize.fetch(args.first || Globalize.locale, name)
|
76
|
-
|
79
|
+
end
|
77
80
|
alias_method :"#{name}_before_type_cast", name
|
78
81
|
end
|
79
82
|
end
|
data/lib/globalize/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: globalize3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 4
|
10
|
+
version: 0.0.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Sven Fuchs
|
@@ -18,7 +18,7 @@ autorequire:
|
|
18
18
|
bindir: bin
|
19
19
|
cert_chain: []
|
20
20
|
|
21
|
-
date: 2010-08-
|
21
|
+
date: 2010-08-04 00:00:00 +02:00
|
22
22
|
default_executable:
|
23
23
|
dependencies:
|
24
24
|
- !ruby/object:Gem::Dependency
|