globalize-accessors 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/.travis.yml +10 -0
- data/globalize-accessors.gemspec +5 -1
- data/lib/globalize-accessors.rb +1 -1
- data/lib/globalize-accessors/version.rb +1 -1
- data/{README.rdoc → readme.md} +28 -20
- data/test/db/database.yml.travis +21 -0
- data/test/globalize_accessors_test.rb +10 -8
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 367386484b2db24a7568c6227d7ed4297cc2c5ee
|
4
|
+
data.tar.gz: 3c123202c983f00e83277d512f21b3c55af51795
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1226e51ce8c7c56608aae8555bf34fd1b5b076f988a9188636d10b3bfd1c18456ef6afb4ab2d5f4679aa7ab963a25cc0ddc36a064c84496240621bd7ce6f10a5
|
7
|
+
data.tar.gz: 329f021d11c44d77b566778b3fa93c0e59e92b77300cc2e2e2b2cf430d6591a108d0d3b7f4ad1896f08b7a5b3b4cb6a3f0e5af7540f57fdf2836ed963d162b1b
|
data/.travis.yml
ADDED
data/globalize-accessors.gemspec
CHANGED
@@ -14,7 +14,11 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.required_rubygems_version = ">= 1.3.6"
|
15
15
|
s.rubyforge_project = "globalize-accessors"
|
16
16
|
|
17
|
-
|
17
|
+
if ENV['RAILS_3']
|
18
|
+
s.add_dependency "globalize3", "~> 0.3.0"
|
19
|
+
else
|
20
|
+
s.add_dependency "globalize", "~> 4.0.0.alpha.1"
|
21
|
+
end
|
18
22
|
|
19
23
|
s.add_development_dependency "bundler", "~> 1.3.5"
|
20
24
|
s.add_development_dependency "rake", "~> 0.9.2"
|
data/lib/globalize-accessors.rb
CHANGED
data/{README.rdoc → readme.md}
RENAMED
@@ -1,56 +1,64 @@
|
|
1
|
-
|
1
|
+
# Globalize Accessors [](https://travis-ci.org/globalize/globalize-accessors)
|
2
2
|
|
3
|
-
|
3
|
+
## Introduction
|
4
4
|
|
5
5
|
Generator of accessor methods for models using Globalize. Use globalize-accessors with a list of translated fields you want easily access to and extra :locales array listing locales for which you want the accessors to be generated.
|
6
6
|
|
7
7
|
This way a single form can be used to edit given model fields with all anticipated translations.
|
8
8
|
|
9
|
-
|
9
|
+
`globalize-accessors` is compatible with both Rails 3.x and Rails 4.
|
10
10
|
|
11
11
|
|
12
|
-
|
12
|
+
## Installation
|
13
13
|
|
14
14
|
gem install globalize-accessors
|
15
15
|
|
16
|
-
|
16
|
+
## Example
|
17
17
|
|
18
18
|
Definition like this:
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
20
|
+
````ruby
|
21
|
+
class Product
|
22
|
+
translates :title, :description
|
23
|
+
globalize_accessors :locales => [:en, :pl], :attributes => [:title]
|
24
|
+
end
|
25
|
+
````
|
24
26
|
|
25
27
|
Gives you access to methods: `title_pl`, `title_en`, `title_pl=`, `title_en=` (and a similar set of description_* methods). They work seamlessly with Globalize (not even touching the "core" title, title= methods used by Globalize itself).
|
26
28
|
|
27
29
|
`:locales` and `:attributes` are optional. Default values are:
|
28
30
|
|
31
|
+
````ruby
|
29
32
|
:locales => I18n.available_locales
|
30
33
|
:attributes => translated_attribute_names
|
34
|
+
````
|
31
35
|
|
32
36
|
which means that skipping all options will generate you accessor method for all translated fields and available languages.
|
33
37
|
|
34
38
|
You can also get the accessor locales for a class with the `globalize_locales` method:
|
35
39
|
|
40
|
+
````ruby
|
36
41
|
Product.globalize_locales # => [:en, :pl]
|
42
|
+
````
|
37
43
|
|
38
|
-
|
44
|
+
## Always define accessors
|
39
45
|
|
40
46
|
If you wish to always define accessors and don't want to call the globalize_accessors method in every class, you can extend ActiveRecord::Base with a module:
|
41
47
|
|
42
|
-
|
43
|
-
|
44
|
-
def translates(*params)
|
45
|
-
options = params.extract_options!
|
46
|
-
options.reverse_merge!(:globalize_accessors => true)
|
47
|
-
accessors = options.delete(:globalize_accessors)
|
48
|
-
super
|
49
|
-
globalize_accessors if accessors
|
50
|
-
end
|
48
|
+
````ruby
|
49
|
+
module TranslatesWithAccessors
|
51
50
|
|
51
|
+
def translates(*params)
|
52
|
+
options = params.extract_options!
|
53
|
+
options.reverse_merge!(:globalize_accessors => true)
|
54
|
+
accessors = options.delete(:globalize_accessors)
|
55
|
+
super
|
56
|
+
globalize_accessors if accessors
|
52
57
|
end
|
53
58
|
|
54
|
-
|
59
|
+
end
|
60
|
+
````
|
61
|
+
|
62
|
+
## Licence
|
55
63
|
|
56
64
|
Copyright (c) 2009-2013 Tomek "Tomash" Stachewicz (http://tomash.wrug.eu), Robert Pankowecki (http://robert.pankowecki.pl) released under the MIT license
|
@@ -0,0 +1,21 @@
|
|
1
|
+
sqlite3:
|
2
|
+
adapter: sqlite3
|
3
|
+
dbfile: globalize.sqlite3
|
4
|
+
database: globalize.sqlite3
|
5
|
+
sqlite3mem:
|
6
|
+
adapter: sqlite3
|
7
|
+
dbfile: ":memory:"
|
8
|
+
database: globalize.sqlite3
|
9
|
+
postgresql:
|
10
|
+
adapter: postgresql
|
11
|
+
username: postgres
|
12
|
+
password: postgres
|
13
|
+
database: globalize
|
14
|
+
min_messages: ERROR
|
15
|
+
mysql:
|
16
|
+
adapter: mysql
|
17
|
+
host: localhost
|
18
|
+
username: root
|
19
|
+
password:
|
20
|
+
database: globalize
|
21
|
+
|
@@ -15,7 +15,7 @@ class GlobalizeAccessorsTest < ActiveSupport::TestCase
|
|
15
15
|
|
16
16
|
class UnitWithAttrAccessible < ActiveRecord::Base
|
17
17
|
self.table_name = :units
|
18
|
-
attr_accessible :name
|
18
|
+
attr_accessible :name if ENV['RAILS_3']
|
19
19
|
translates :name, :title
|
20
20
|
globalize_accessors
|
21
21
|
end
|
@@ -96,14 +96,16 @@ class GlobalizeAccessorsTest < ActiveSupport::TestCase
|
|
96
96
|
assert_equal "Name pl", u.name_pl
|
97
97
|
end
|
98
98
|
|
99
|
-
|
100
|
-
|
101
|
-
|
99
|
+
if ENV['RAILS_3']
|
100
|
+
test "whitelist locale accessors if the original attribute is whitelisted" do
|
101
|
+
u = UnitWithAttrAccessible.new()
|
102
|
+
u.update_attributes(:name => "Name en", :name_pl => "Name pl", :title => "Title en", :title_pl => "Title pl")
|
102
103
|
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
104
|
+
assert_equal "Name en", u.name
|
105
|
+
assert_equal "Name pl", u.name_pl
|
106
|
+
assert_nil u.title
|
107
|
+
assert_nil u.title_pl
|
108
|
+
end
|
107
109
|
end
|
108
110
|
|
109
111
|
test "globalize locales on class without locales specified in options" do
|
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.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomasz Stachewicz
|
@@ -12,22 +12,22 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2013-10-
|
15
|
+
date: 2013-10-22 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
|
-
name:
|
18
|
+
name: globalize
|
19
19
|
requirement: !ruby/object:Gem::Requirement
|
20
20
|
requirements:
|
21
21
|
- - ~>
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 0.
|
23
|
+
version: 4.0.0.alpha.1
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
28
|
- - ~>
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version: 0.
|
30
|
+
version: 4.0.0.alpha.1
|
31
31
|
- !ruby/object:Gem::Dependency
|
32
32
|
name: bundler
|
33
33
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,14 +82,16 @@ extensions: []
|
|
82
82
|
extra_rdoc_files: []
|
83
83
|
files:
|
84
84
|
- .gitignore
|
85
|
+
- .travis.yml
|
85
86
|
- Gemfile
|
86
87
|
- MIT-LICENSE
|
87
|
-
- README.rdoc
|
88
88
|
- Rakefile
|
89
89
|
- globalize-accessors.gemspec
|
90
90
|
- lib/globalize-accessors.rb
|
91
91
|
- lib/globalize-accessors/version.rb
|
92
|
+
- readme.md
|
92
93
|
- test/db/database.yml.example
|
94
|
+
- test/db/database.yml.travis
|
93
95
|
- test/db/schema.rb
|
94
96
|
- test/globalize_accessors_test.rb
|
95
97
|
- test/test_helper.rb
|