traco 4.0.0 → 5.0.0
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/CHANGELOG.md +4 -0
- data/README.md +2 -2
- data/lib/traco/class_methods.rb +4 -4
- data/lib/traco/version.rb +1 -1
- data/spec/spec_helper_models.rb +2 -2
- data/spec/traco_spec.rb +8 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 995b6c0b60252d02350da1d58e7ea0268a80a80b
|
4
|
+
data.tar.gz: 65c1db0ac8b1036daf10595d5c8745ccf2412aac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f8fe7b9b21d2ea1ac651bf85d0eaa642e276533973347e8feb7248616632c764a1368a5670f8ee64d2afb519160cdbdec68a53ccb2c730e23c81330db3f657f
|
7
|
+
data.tar.gz: 448dff9dd08c1e8fb9c3d4dcfa57bf3fd4e66311ec84c66410fbaea44fac667fe7c8c1add591bb11b6a665648582dd6de59ce35aef604fe14d2a7e3d0444690b
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 5.0.0
|
4
|
+
|
5
|
+
* Change `locale_columns` and `locales_for_attribute` to sort current locale first, then default locale (previously, it was default locale first). This makes more sense for our own apps, and hopefully other apps as well.
|
6
|
+
|
3
7
|
## 4.0.0
|
4
8
|
|
5
9
|
* Drop support for end-of-lifed Ruby 2.1 and 2.2.
|
data/README.md
CHANGED
@@ -52,7 +52,7 @@ You can still use your accessors like `title_sv` and `title_sv=` in forms, valid
|
|
52
52
|
|
53
53
|
`.translatable_attributes`: Returns an array like `[:title, :body]`.
|
54
54
|
|
55
|
-
`.locale_columns(:title)`: Returns an array like `[:title_sv, :title_en]` sorted with
|
55
|
+
`.locale_columns(:title)`: Returns an array like `[:title_sv, :title_en]` sorted with current locale first, then default locale, and then alphabetically. Suitable for looping in forms:
|
56
56
|
|
57
57
|
```erb
|
58
58
|
<% Post.locale_columns(:title).each do |column| %>
|
@@ -81,7 +81,7 @@ The return value will be sorted like `[:title_sv, :title_en, :body_sv, :body_en]
|
|
81
81
|
|
82
82
|
`.current_locale_column(:title)`: Returns `:title_sv` if `:sv` is the current locale. Suitable for some SQL queries, such as sorting.
|
83
83
|
|
84
|
-
`.locales_for_attribute(:title)`: Returns an array like `[:sv, :en]` sorted with
|
84
|
+
`.locales_for_attribute(:title)`: Returns an array like `[:sv, :en]` sorted with current locale first, then default locale, and then alphabetically.
|
85
85
|
|
86
86
|
And the equivalent methods for `body`, of course.
|
87
87
|
|
data/lib/traco/class_methods.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
module Traco
|
2
2
|
module ClassMethods
|
3
3
|
def locales_for_attribute(attribute)
|
4
|
-
traco_cache(attribute, fallback: LocaleFallbacks::
|
4
|
+
traco_cache(attribute, fallback: LocaleFallbacks::ANY_FALLBACK).keys
|
5
5
|
end
|
6
6
|
|
7
7
|
def locale_columns(*attributes)
|
8
|
-
attributes.
|
9
|
-
|
10
|
-
|
8
|
+
attributes.flat_map { |attribute|
|
9
|
+
_locale_columns_for_attribute(attribute, fallback: LocaleFallbacks::ANY_FALLBACK)
|
10
|
+
}
|
11
11
|
end
|
12
12
|
|
13
13
|
# Consider this method internal.
|
data/lib/traco/version.rb
CHANGED
data/spec/spec_helper_models.rb
CHANGED
@@ -21,8 +21,8 @@ ActiveRecord::Base.establish_connection adapter: "sqlite3", database: ":memory:"
|
|
21
21
|
|
22
22
|
ActiveRecord::Schema.define(version: 0) do
|
23
23
|
create_table :posts, force: true do |t|
|
24
|
-
t.string :title_sv, :title_en, :title_pt_br
|
25
|
-
t.string :body_sv, :body_en, :body_pt_br
|
24
|
+
t.string :title_sv, :title_en, :title_pt_br, :title_de
|
25
|
+
t.string :body_sv, :body_en, :body_pt_br, :body_de
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
data/spec/traco_spec.rb
CHANGED
@@ -84,8 +84,8 @@ describe Post, ".locales_for_attribute" do
|
|
84
84
|
I18n.locale = :en
|
85
85
|
end
|
86
86
|
|
87
|
-
it "lists the locales for that attribute,
|
88
|
-
expect(Post.locales_for_attribute(:title)).to eq [ :"pt-BR", :
|
87
|
+
it "lists the locales for that attribute, current locale first, then default locale, and then alphabetically" do
|
88
|
+
expect(Post.locales_for_attribute(:title)).to eq [ :en, :"pt-BR", :de, :sv ]
|
89
89
|
end
|
90
90
|
|
91
91
|
it "doesn't include a locale if there's no corresponding column for it" do
|
@@ -102,9 +102,9 @@ describe Post, ".locale_columns" do
|
|
102
102
|
I18n.locale = :en
|
103
103
|
end
|
104
104
|
|
105
|
-
it "lists the columns-with-locale for that attribute,
|
105
|
+
it "lists the columns-with-locale for that attribute, current locale first, then default locale, and then alphabetically" do
|
106
106
|
expect(Post.locale_columns(:title)).to eq [
|
107
|
-
:title_pt_br, :
|
107
|
+
:title_en, :title_pt_br, :title_de, :title_sv,
|
108
108
|
]
|
109
109
|
end
|
110
110
|
|
@@ -114,12 +114,12 @@ describe Post, ".locale_columns" do
|
|
114
114
|
expect(Post.locale_columns(:title)).not_to include(:title_ru)
|
115
115
|
end
|
116
116
|
|
117
|
-
|
118
|
-
|
117
|
+
it "supports multiple attributes" do
|
118
|
+
Post.translates :body
|
119
119
|
|
120
120
|
expect(Post.locale_columns(:body, :title)).to eq [
|
121
|
-
:body_pt_br, :
|
122
|
-
:title_pt_br, :
|
121
|
+
:body_en, :body_pt_br, :body_de, :body_sv,
|
122
|
+
:title_en, :title_pt_br, :title_de, :title_sv,
|
123
123
|
]
|
124
124
|
end
|
125
125
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: traco
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henrik Nyh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|