globalize-accessors 0.1.3 → 0.1.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.
- checksums.yaml +4 -4
- data/MIT-LICENSE +2 -1
- data/Rakefile +2 -2
- data/globalize-accessors.gemspec +4 -3
- data/lib/globalize-accessors.rb +2 -4
- data/lib/globalize-accessors/version.rb +4 -2
- data/readme.md +4 -2
- data/test/globalize_accessors_test.rb +30 -0
- data/test/test_helper.rb +1 -1
- metadata +21 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e6b68096730b07010773411f39a6765871049ac8
|
4
|
+
data.tar.gz: ffe954c351fff999d909f3dd7b06f6cbb316c7b8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9bb53008d46631cf26b48442bac3f913c41e0814f9f3659da7bf3aaffa761fb7be2d1eca0069ff27786a3f04c6c42b467210cd99cd1b1d10df22d78b8c967b3f
|
7
|
+
data.tar.gz: 86f3612c8aec29e123743e3db869fc243f7918074212a7d31d3f8a4cdf9951c8e00fb68497480561b6ec1886cc1b4698676c84558672af0acddd989bcb62b5b2
|
data/MIT-LICENSE
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
Copyright (c) 2009
|
1
|
+
Copyright (c) 2009, 2010, 2011, 2012, 2013 Tomek "Tomash" Stachewicz,
|
2
|
+
Robert Pankowecki, Chris Salzberg
|
2
3
|
|
3
4
|
Permission is hereby granted, free of charge, to any person obtaining
|
4
5
|
a copy of this software and associated documentation files (the
|
data/Rakefile
CHANGED
@@ -13,7 +13,7 @@ require 'rake'
|
|
13
13
|
desc 'Default: run unit tests.'
|
14
14
|
task :default => :test
|
15
15
|
|
16
|
-
desc 'Test
|
16
|
+
desc 'Test globalize-accessors gem.'
|
17
17
|
Rake::TestTask.new(:test) do |t|
|
18
18
|
t.libs << 'lib'
|
19
19
|
t.libs << 'test'
|
@@ -21,7 +21,7 @@ Rake::TestTask.new(:test) do |t|
|
|
21
21
|
t.verbose = true
|
22
22
|
end
|
23
23
|
|
24
|
-
desc 'Generate documentation for
|
24
|
+
desc 'Generate documentation for globalize-accessors gem.'
|
25
25
|
Rake::RDocTask.new(:rdoc) do |rdoc|
|
26
26
|
rdoc.rdoc_dir = 'rdoc'
|
27
27
|
rdoc.title = 'EasyGlobalizeAccessors'
|
data/globalize-accessors.gemspec
CHANGED
@@ -3,7 +3,7 @@ require File.expand_path("../lib/globalize-accessors/version", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "globalize-accessors"
|
6
|
-
s.version =
|
6
|
+
s.version = Globalize::Accessors::VERSION
|
7
7
|
s.platform = Gem::Platform::RUBY
|
8
8
|
s.authors = ["Tomasz Stachewicz", "Wojciech Pietrzak", "Steve Verlinden", "Robert Pankowecki", "Chris Salzberg"]
|
9
9
|
s.email = ["tomekrs@o2.pl", "steve.verlinden@gmail.com", "robert.pankowecki@gmail.com", "rpa@gavdi.com", "chrissalzberg@gmail.com"]
|
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.summary = "Define methods for accessing translated attributes"
|
12
12
|
s.description = "Define methods for accessing translated attributes"
|
13
13
|
|
14
|
-
s.required_rubygems_version = ">= 1.3
|
14
|
+
s.required_rubygems_version = ">= 1.3"
|
15
15
|
s.rubyforge_project = "globalize-accessors"
|
16
16
|
|
17
17
|
if ENV['RAILS_3']
|
@@ -22,9 +22,10 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.add_dependency "globalize", ">= 3"
|
23
23
|
end
|
24
24
|
|
25
|
-
s.add_development_dependency "bundler", "
|
25
|
+
s.add_development_dependency "bundler", ">= 1.3.5"
|
26
26
|
s.add_development_dependency "rake", "~> 0.9.2"
|
27
27
|
s.add_development_dependency "sqlite3"
|
28
|
+
s.add_development_dependency "minitest", "~> 4.2"
|
28
29
|
|
29
30
|
|
30
31
|
s.files = `git ls-files`.split("\n")
|
data/lib/globalize-accessors.rb
CHANGED
@@ -13,19 +13,16 @@ module Globalize::Accessors
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
|
17
16
|
private
|
18
17
|
|
19
|
-
|
20
18
|
def define_accessors(attr_name, locale)
|
21
19
|
define_getter(attr_name, locale)
|
22
20
|
define_setter(attr_name, locale)
|
23
21
|
end
|
24
22
|
|
25
|
-
|
26
23
|
def define_getter(attr_name, locale)
|
27
24
|
define_method :"#{attr_name}_#{locale.to_s.underscore}" do
|
28
|
-
|
25
|
+
globalize.stash.contains?(locale, attr_name) ? globalize.send(:fetch_stash, locale, attr_name) : globalize.send(:fetch_attribute, locale, attr_name)
|
29
26
|
end
|
30
27
|
end
|
31
28
|
|
@@ -34,6 +31,7 @@ module Globalize::Accessors
|
|
34
31
|
|
35
32
|
define_method :"#{localized_attr_name}=" do |value|
|
36
33
|
write_attribute(attr_name, value, :locale => locale)
|
34
|
+
translation_for(locale)[attr_name] = value if value.present?
|
37
35
|
end
|
38
36
|
if respond_to?(:accessible_attributes) && accessible_attributes.include?(attr_name)
|
39
37
|
attr_accessible :"#{localized_attr_name}"
|
data/readme.md
CHANGED
@@ -26,7 +26,7 @@ class Product
|
|
26
26
|
end
|
27
27
|
````
|
28
28
|
|
29
|
-
Gives you access to methods: `title_pl`, `title_en`, `title_pl=`, `title_en
|
29
|
+
Gives you access to methods: `title_pl`, `title_en`, `title_pl=`, `title_en=`. These work seamlessly with Globalize (not even touching the "core" `title`, `title=` methods used by Globalize itself).
|
30
30
|
|
31
31
|
The `:locales` and `:attributes` options are optional. Their default values are:
|
32
32
|
|
@@ -82,4 +82,6 @@ end
|
|
82
82
|
|
83
83
|
## Licence
|
84
84
|
|
85
|
-
Copyright (c) 2009-2013 Tomek "Tomash" Stachewicz (http://tomash.wrug.eu),
|
85
|
+
Copyright (c) 2009-2013 Tomek "Tomash" Stachewicz (http://tomash.wrug.eu),
|
86
|
+
Robert Pankowecki (http://robert.pankowecki.pl), Chris Salzberg (http://dejimata.com)
|
87
|
+
released under the MIT license
|
@@ -51,6 +51,17 @@ class GlobalizeAccessorsTest < ActiveSupport::TestCase
|
|
51
51
|
assert_nil u.title_en
|
52
52
|
end
|
53
53
|
|
54
|
+
test "build translations for a new object" do
|
55
|
+
u = Unit.new(:name_en => "Name en", :title_pl => "Title pl")
|
56
|
+
assert_equal 2, u.translations.size # size of the collection
|
57
|
+
assert_equal 0, u.translations.count # count from database
|
58
|
+
end
|
59
|
+
|
60
|
+
test "doesn't build translations without values" do
|
61
|
+
u = Unit.new(:name_en => nil, :title_pl => " ")
|
62
|
+
assert_equal 0, u.translations.size
|
63
|
+
end
|
64
|
+
|
54
65
|
test "write on new object and read on saved" do
|
55
66
|
u = Unit.create!(:name_en => "Name en", :title_pl => "Title pl")
|
56
67
|
|
@@ -62,6 +73,14 @@ class GlobalizeAccessorsTest < ActiveSupport::TestCase
|
|
62
73
|
assert_nil u.title_en
|
63
74
|
end
|
64
75
|
|
76
|
+
test "updates translations for existing object" do
|
77
|
+
u = Unit.create!(:name_en => "Name en", :title_pl => "Title pl")
|
78
|
+
u.name_en = "New name en"
|
79
|
+
assert_equal "New name en", u.translations.find {|t| t.locale == :en }.name
|
80
|
+
assert_equal "Title pl", u.translations.find {|t| t.locale == :pl }.title
|
81
|
+
assert_equal 2, u.translations.count
|
82
|
+
end
|
83
|
+
|
65
84
|
test "read on existing object" do
|
66
85
|
u = Unit.create!(:name_en => "Name en", :title_pl => "Title pl")
|
67
86
|
u = Unit.find(u.id)
|
@@ -144,6 +163,17 @@ class GlobalizeAccessorsTest < ActiveSupport::TestCase
|
|
144
163
|
assert_equal "Name en-AU", u.name_en_au
|
145
164
|
end
|
146
165
|
|
166
|
+
test "read when fallbacks present" do
|
167
|
+
u = Unit.create!(:name_en => "Name en", :title_pl => "Title pl")
|
168
|
+
u = Unit.find(u.id)
|
169
|
+
def u.globalize_fallbacks(locale)
|
170
|
+
locale == :pl ? [:pl, :en] : [:en, :pl]
|
171
|
+
end
|
172
|
+
|
173
|
+
assert_equal "Name en", u.name
|
174
|
+
assert_nil u.title_en
|
175
|
+
end
|
176
|
+
|
147
177
|
test "globalize attribute names on class without attributes specified in options" do
|
148
178
|
assert_equal [:name_en, :name_pl, :title_en, :title_pl], Unit.globalize_attribute_names
|
149
179
|
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: globalize-accessors
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomasz Stachewicz
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2014-07-29 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: globalize
|
@@ -32,14 +32,14 @@ dependencies:
|
|
32
32
|
name: bundler
|
33
33
|
requirement: !ruby/object:Gem::Requirement
|
34
34
|
requirements:
|
35
|
-
- -
|
35
|
+
- - '>='
|
36
36
|
- !ruby/object:Gem::Version
|
37
37
|
version: 1.3.5
|
38
38
|
type: :development
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
requirements:
|
42
|
-
- -
|
42
|
+
- - '>='
|
43
43
|
- !ruby/object:Gem::Version
|
44
44
|
version: 1.3.5
|
45
45
|
- !ruby/object:Gem::Dependency
|
@@ -70,6 +70,20 @@ dependencies:
|
|
70
70
|
- - '>='
|
71
71
|
- !ruby/object:Gem::Version
|
72
72
|
version: '0'
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: minitest
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ~>
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '4.2'
|
80
|
+
type: :development
|
81
|
+
prerelease: false
|
82
|
+
version_requirements: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - ~>
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '4.2'
|
73
87
|
description: Define methods for accessing translated attributes
|
74
88
|
email:
|
75
89
|
- tomekrs@o2.pl
|
@@ -111,11 +125,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
125
|
requirements:
|
112
126
|
- - '>='
|
113
127
|
- !ruby/object:Gem::Version
|
114
|
-
version: 1.3
|
128
|
+
version: '1.3'
|
115
129
|
requirements: []
|
116
130
|
rubyforge_project: globalize-accessors
|
117
|
-
rubygems_version: 2.0
|
131
|
+
rubygems_version: 2.2.0
|
118
132
|
signing_key:
|
119
133
|
specification_version: 4
|
120
134
|
summary: Define methods for accessing translated attributes
|
121
135
|
test_files: []
|
136
|
+
has_rdoc:
|