globalize-accessors 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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 [![Build Status](https://travis-ci.org/globalize/globalize-accessors.png)](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
|