mobility 1.2.9 → 1.3.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a2836c1681d1832331e807e58fa61956426ddc3cc730c15e6b3d6ebac2fce40
4
- data.tar.gz: 61c798b73769f7d73bb5a3a97b3a1a27ac8884a186df89aeb5ceef0ecb92b692
3
+ metadata.gz: 6f693f3dcc0f7b22ea963e01dedcfab909f659f39441e16894e0490f5ed99024
4
+ data.tar.gz: 444117b04d4d0934c854384e3c52119a43f5c2772202c893f15cd8a8ca8b1651
5
5
  SHA512:
6
- metadata.gz: e8693fb2b5d997a1d7029413aee5c5f064eeafbef6f8a10ad2c947bd545fff72e238f6d57ebaae8761d5948e036446d310f7ce9da3c047a7577818919dfd7908
7
- data.tar.gz: e980cc7d53a32c517c04994105540fd9635aae5899d35cecb1544a36ef052619adb0647b58ec666902402e8ad642c85aa576f0301d3708211e83b5f3d0e6d95b
6
+ metadata.gz: 7fde354db46b03dfad8efaf22f542c4b9850cda464e562ea31309c311cec27e6f1a400d1842660cd103dba13f22a48b342feccf46bb22249d34295673666f176
7
+ data.tar.gz: 57ee5c44f0bb58d25a97f7de1f854ef3252117f89e273e39e4feba3ed35ee6443356d6488cdab992d4cd92160a8f72a84d6064c3e24aa105afd6479b000db82d
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # Mobility Changelog
2
2
 
3
+ ## 1.3
4
+
5
+ ### 1.3.0.rc2
6
+
7
+ - Pass `coder` as keyword argument to `serialize` (ActiveRecord version > 3.2)
8
+ ([#617](https://github.com/shioyama/mobility/pull/617))
9
+
10
+ ### 1.3.0.rc1
11
+
12
+ This version includes potentially breaking chnages for jsonb and hstore
13
+ backends. See PRs below for details.
14
+
15
+ - Fix ActiveRecord JSONB blank values
16
+ ([#536](https://github.com/shioyama/mobility/pull/536))
17
+ - Support primary keys other then :id on model classes
18
+ ([#542](https://github.com/shioyama/mobility/pull/542))
19
+ - Clean up and refactor container backend
20
+ ([#543](https://github.com/shioyama/mobility/pull/543)),
21
+ thanks [doits](https://github.com/doits)!
22
+ - Update fallthrough_accessor regex to allow for ISO 639-2 codes
23
+ ([#580](https://github.com/shioyama/mobility/pull/580))
24
+ thanks [phil-allcock](https://github.com/phil-allcock)!
25
+
3
26
  ## 1.2
4
27
 
5
28
  ### 1.2.9
@@ -11,7 +34,8 @@
11
34
  - Fix issues with subclassing, such as when using AR STI,
12
35
  fixes [#566](https://github.com/shioyama/mobility/issues/566)
13
36
  ([#568](https://github.com/shioyama/mobility/pull/568))
14
- - Handle attribute_method_matchers rename (part of #560)
37
+ - Handle `attribute_method_matchers` rename (part of
38
+ [#560](https://github.com/shioyama/mobility/pull/560))
15
39
 
16
40
  ### 1.2.7
17
41
  - Do not query same attribute more than once, fixes
data/Gemfile CHANGED
@@ -10,7 +10,7 @@ group :development, :test do
10
10
  when 'active_record'
11
11
  orm_version ||= '7.0'
12
12
  case orm_version
13
- when '4.2', '5.0', '5.1', '5.2', '6.0', '6.1', '7.0'
13
+ when '6.1', '7.0', '7.1'
14
14
  gem 'activerecord', "~> #{orm_version}.0"
15
15
  when 'edge'
16
16
  git 'https://github.com/rails/rails.git', branch: 'main' do
data/Gemfile.lock CHANGED
@@ -1,32 +1,22 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mobility (1.2.8)
4
+ mobility (1.3.0.rc1)
5
5
  i18n (>= 0.6.10, < 2)
6
6
  request_store (~> 1.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- activemodel (7.0.3)
12
- activesupport (= 7.0.3)
13
- activerecord (7.0.3)
14
- activemodel (= 7.0.3)
15
- activesupport (= 7.0.3)
16
- activesupport (7.0.3)
17
- concurrent-ruby (~> 1.0, >= 1.0.2)
18
- i18n (>= 1.6, < 2)
19
- minitest (>= 5.1)
20
- tzinfo (~> 2.0)
21
- benchmark-ips (2.10.0)
11
+ benchmark-ips (2.13.0)
22
12
  byebug (11.1.3)
23
13
  coderay (1.1.3)
24
- concurrent-ruby (1.1.10)
14
+ concurrent-ruby (1.2.3)
25
15
  database_cleaner (1.99.0)
26
- diff-lcs (1.5.0)
27
- ffi (1.15.5)
16
+ diff-lcs (1.5.1)
17
+ ffi (1.16.3)
28
18
  formatador (1.1.0)
29
- guard (2.18.0)
19
+ guard (2.18.1)
30
20
  formatador (>= 0.2.4)
31
21
  listen (>= 2.7, < 4.0)
32
22
  lumberjack (>= 1.0.12, < 2.0)
@@ -40,67 +30,61 @@ GEM
40
30
  guard (~> 2.1)
41
31
  guard-compat (~> 1.1)
42
32
  rspec (>= 2.99.0, < 4.0)
43
- i18n (1.10.0)
33
+ i18n (1.14.4)
44
34
  concurrent-ruby (~> 1.0)
45
- listen (3.7.1)
35
+ listen (3.9.0)
46
36
  rb-fsevent (~> 0.10, >= 0.10.3)
47
37
  rb-inotify (~> 0.9, >= 0.9.10)
48
- lumberjack (1.2.8)
38
+ lumberjack (1.2.10)
49
39
  method_source (1.0.0)
50
- minitest (5.16.1)
51
40
  nenv (0.3.0)
52
41
  notiffany (0.1.3)
53
42
  nenv (~> 0.1)
54
43
  shellany (~> 0.0)
55
- pg (1.3.5)
56
- pry (0.13.1)
44
+ pry (0.14.2)
57
45
  coderay (~> 1.1)
58
46
  method_source (~> 1.0)
59
- pry-byebug (3.9.0)
47
+ pry-byebug (3.10.1)
60
48
  byebug (~> 11.0)
61
- pry (~> 0.13.0)
62
- rack (2.2.3.1)
49
+ pry (>= 0.13, < 0.15)
50
+ rack (3.0.9.1)
63
51
  rake (12.3.3)
64
- rb-fsevent (0.11.1)
52
+ rb-fsevent (0.11.2)
65
53
  rb-inotify (0.10.1)
66
54
  ffi (~> 1.0)
67
- request_store (1.5.1)
55
+ request_store (1.6.0)
68
56
  rack (>= 1.4)
69
- rspec (3.11.0)
70
- rspec-core (~> 3.11.0)
71
- rspec-expectations (~> 3.11.0)
72
- rspec-mocks (~> 3.11.0)
73
- rspec-core (3.11.0)
74
- rspec-support (~> 3.11.0)
75
- rspec-expectations (3.11.0)
57
+ rspec (3.13.0)
58
+ rspec-core (~> 3.13.0)
59
+ rspec-expectations (~> 3.13.0)
60
+ rspec-mocks (~> 3.13.0)
61
+ rspec-core (3.13.0)
62
+ rspec-support (~> 3.13.0)
63
+ rspec-expectations (3.13.0)
76
64
  diff-lcs (>= 1.2.0, < 2.0)
77
- rspec-support (~> 3.11.0)
78
- rspec-mocks (3.11.1)
65
+ rspec-support (~> 3.13.0)
66
+ rspec-mocks (3.13.0)
79
67
  diff-lcs (>= 1.2.0, < 2.0)
80
- rspec-support (~> 3.11.0)
81
- rspec-support (3.11.0)
68
+ rspec-support (~> 3.13.0)
69
+ rspec-support (3.13.1)
82
70
  shellany (0.0.1)
83
- thor (1.2.1)
84
- tzinfo (2.0.4)
85
- concurrent-ruby (~> 1.0)
86
- webrick (1.7.0)
87
- yard (0.9.28)
88
- webrick (~> 1.7.0)
71
+ sqlite3 (1.4.4)
72
+ thor (1.3.1)
73
+ yard (0.9.36)
89
74
 
90
75
  PLATFORMS
91
- ruby
76
+ x86_64-linux
92
77
 
93
78
  DEPENDENCIES
94
- activerecord (~> 7.0.0)
95
79
  benchmark-ips
96
80
  database_cleaner (~> 1.5, >= 1.5.3)
97
81
  guard-rspec
98
82
  mobility!
99
- pg
100
83
  pry-byebug
101
84
  rake (~> 12, >= 12.2.1)
102
85
  rspec (~> 3.0)
86
+ sqlite3 (~> 1.4.1)
103
87
  yard (~> 0.9.0)
104
88
 
105
89
  BUNDLED WITH
106
- 2.1.4
90
+ 2.4.10
data/README.md CHANGED
@@ -55,7 +55,7 @@ Installation
55
55
  Add this line to your application's Gemfile:
56
56
 
57
57
  ```ruby
58
- gem 'mobility', '~> 1.2.9'
58
+ gem 'mobility', '~> 1.3.0.rc2'
59
59
  ```
60
60
 
61
61
  ### ActiveRecord (Rails)
@@ -1027,6 +1027,7 @@ Integrations
1027
1027
  * [mobility-actiontext](https://github.com/sedubois/mobility-actiontext): Translate
1028
1028
  Rails [Action Text](https://guides.rubyonrails.org/action_text_overview.html) rich text
1029
1029
  with Mobility.
1030
+ * [mobility_typed](https://github.com/GeorgeGorbanev/mobility_typed): Add type checking to Rails models accessors.
1030
1031
 
1031
1032
  Tutorials
1032
1033
  ---------
@@ -22,7 +22,11 @@ Implements the {Mobility::Backends::Container} backend for ActiveRecord models.
22
22
  # @param [Hash] options
23
23
  # @return [String,Integer,Boolean] Value of translation
24
24
  def read(locale, _ = nil)
25
- model_translations(locale)[attribute]
25
+ locale_translations = model_translations(locale)
26
+
27
+ return unless locale_translations
28
+
29
+ locale_translations[attribute.to_s]
26
30
  end
27
31
 
28
32
  # @note Translation may be a string, integer, boolean, hash or array
@@ -33,7 +37,7 @@ Implements the {Mobility::Backends::Container} backend for ActiveRecord models.
33
37
  # @return [String,Integer,Boolean] Updated value
34
38
  def write(locale, value, _ = nil)
35
39
  set_attribute_translation(locale, value)
36
- model_translations(locale)[attribute]
40
+ read(locale)
37
41
  end
38
42
  # @!endgroup
39
43
 
@@ -42,8 +46,7 @@ Implements the {Mobility::Backends::Container} backend for ActiveRecord models.
42
46
  # @option options [Symbol] column_name (:translations) Name of column on which to store translations
43
47
  # @raise [InvalidColumnType] if the type of the container column is not json or jsonb
44
48
  def configure(options)
45
- options[:column_name] ||= :translations
46
- options[:column_name] = options[:column_name].to_sym
49
+ options[:column_name] = options[:column_name]&.to_sym || :translations
47
50
  end
48
51
  # @!endgroup
49
52
 
@@ -78,14 +81,12 @@ Implements the {Mobility::Backends::Container} backend for ActiveRecord models.
78
81
 
79
82
  # @!macro backend_iterator
80
83
  def each_locale
81
- model[column_name].each do |l, v|
82
- yield l.to_sym if v.present?
84
+ model[column_name].each_key do |l|
85
+ yield l.to_sym
83
86
  end
84
87
  end
85
88
 
86
89
  setup do |_attributes, options|
87
- store options[:column_name], coder: Coder
88
-
89
90
  # Fix for duping depth-2 jsonb column in AR < 5.0
90
91
  if ::ActiveRecord::VERSION::STRING < '5.0'
91
92
  column_name = options[:column_name]
@@ -107,32 +108,23 @@ Implements the {Mobility::Backends::Container} backend for ActiveRecord models.
107
108
  private
108
109
 
109
110
  def model_translations(locale)
110
- model[column_name][locale] ||= {}
111
+ model[column_name][locale.to_s]
111
112
  end
112
113
 
113
114
  def set_attribute_translation(locale, value)
114
- translations = model[column_name] || {}
115
- translations[locale.to_s] ||= {}
116
- translations[locale.to_s][attribute] = value
117
- model[column_name] = translations
118
- end
115
+ locale_translations = model_translations(locale)
119
116
 
120
- class Coder
121
- def self.dump(obj)
122
- if obj.is_a? ::Hash
123
- obj.inject({}) do |translations, (locale, value)|
124
- value.each do |k, v|
125
- (translations[locale] ||= {})[k] = v if v.present?
126
- end
127
- translations
128
- end
117
+ if locale_translations
118
+ if value.nil?
119
+ locale_translations.delete(attribute.to_s)
120
+
121
+ # delete empty locale hash if last attribute was just deleted
122
+ model[column_name].delete(locale.to_s) if locale_translations.empty?
129
123
  else
130
- raise ArgumentError, "Attribute is supposed to be a Hash, but was a #{obj.class}. -- #{obj.inspect}"
124
+ locale_translations[attribute.to_s] = value
131
125
  end
132
- end
133
-
134
- def self.load(obj)
135
- obj
126
+ elsif !value.nil?
127
+ model[column_name][locale.to_s] = { attribute.to_s => value }
136
128
  end
137
129
  end
138
130
 
@@ -138,7 +138,7 @@ Implements the {Mobility::Backends::KeyValue} backend for ActiveRecord models.
138
138
  on(t[key_column].eq(key).
139
139
  and(t[:locale].eq(locale).
140
140
  and(t[:"#{belongs_to}_type"].eq(model_class.base_class.name).
141
- and(t[:"#{belongs_to}_id"].eq(m[:id]))))).join_sources)
141
+ and(t[:"#{belongs_to}_id"].eq(m[model_class.primary_key] || m[:id]))))).join_sources)
142
142
  end
143
143
 
144
144
  def already_joined?(relation, name, locale, join_type)
@@ -15,34 +15,25 @@ Internal class used by ActiveRecord backends backed by a Postgres data type
15
15
  include ActiveRecord
16
16
  include HashValued
17
17
 
18
- # @!macro backend_iterator
19
- def each_locale
20
- super { |l| yield l.to_sym }
18
+ def read(locale, _options = nil)
19
+ translations[locale.to_s]
21
20
  end
22
21
 
23
- def translations
24
- model.read_attribute(column_name)
22
+ def write(locale, value, _options = nil)
23
+ if value.nil?
24
+ translations.delete(locale.to_s)
25
+ else
26
+ translations[locale.to_s] = value
27
+ end
25
28
  end
26
29
 
27
- setup do |attributes, options = {}|
28
- attributes.each { |attribute| store (options[:column_affix] % attribute), coder: Coder }
30
+ # @!macro backend_iterator
31
+ def each_locale
32
+ super { |l| yield l.to_sym }
29
33
  end
30
34
 
31
- class Coder
32
- def self.dump(obj)
33
- if obj.is_a? ::Hash
34
- obj.inject({}) do |translations, (locale, value)|
35
- translations[locale] = value unless value.nil?
36
- translations
37
- end
38
- else
39
- raise ArgumentError, "Attribute is supposed to be a Hash, but was a #{obj.class}. -- #{obj.inspect}"
40
- end
41
- end
42
-
43
- def self.load(obj)
44
- obj
45
- end
35
+ def translations
36
+ model[column_name]
46
37
  end
47
38
  end
48
39
  private_constant :PgHash
@@ -51,7 +51,13 @@ Implements {Mobility::Backends::Serialized} backend for ActiveRecord models.
51
51
 
52
52
  setup do |attributes, options|
53
53
  coder = { yaml: YAMLCoder, json: JSONCoder }[options[:format]]
54
- attributes.each { |attribute| serialize (options[:column_affix] % attribute), coder }
54
+ attributes.each do |attribute|
55
+ if (::ActiveRecord::VERSION::STRING >= "7.1")
56
+ serialize (options[:column_affix] % attribute), coder: coder
57
+ else
58
+ serialize (options[:column_affix] % attribute), coder
59
+ end
60
+ end
55
61
  end
56
62
 
57
63
  # @!group Cache Methods
@@ -145,7 +145,7 @@ columns to that table.
145
145
  m = model_class.arel_table
146
146
  t = model_class.const_get(subclass_name).arel_table.alias(table_alias(locale))
147
147
  relation.joins(m.join(t, join_type).
148
- on(t[foreign_key].eq(m[:id]).
148
+ on(t[foreign_key].eq(m[model_class.primary_key] || m[:id]).
149
149
  and(t[:locale].eq(locale))).join_sources)
150
150
  end
151
151
 
@@ -45,7 +45,7 @@ Defines:
45
45
  klass.extend ClassMethods
46
46
 
47
47
  if backend
48
- @backend_class = backend.build_subclass(klass, backend_options)
48
+ @backend_class = backend.build_subclass(klass, **backend_options)
49
49
 
50
50
  backend_class.setup_model(klass, names)
51
51
 
@@ -36,7 +36,7 @@ model class is generated.
36
36
  private
37
37
 
38
38
  def define_fallthrough_accessors(*names)
39
- method_name_regex = /\A(#{names.join('|')})_([a-z]{2}(_[a-z]{2})?)(=?|\??)\z/.freeze
39
+ method_name_regex = /\A(#{names.join('|')})_([a-z]{2,3}(_[a-z]{2})?)(=?|\??)\z/.freeze
40
40
 
41
41
  define_method :method_missing do |method_name, *args, &block|
42
42
  if method_name =~ method_name_regex
@@ -7,9 +7,9 @@ module Mobility
7
7
 
8
8
  module VERSION
9
9
  MAJOR = 1
10
- MINOR = 2
11
- TINY = 9
12
- PRE = nil
10
+ MINOR = 3
11
+ TINY = 0
12
+ PRE = "rc2"
13
13
 
14
14
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
15
15
  end
@@ -58,6 +58,19 @@ Mobility.configure do
58
58
  # Or uncomment this line to include but disable by default, and only enable
59
59
  # per model by passing +dirty: true+ to +translates+.
60
60
  # dirty false
61
+
62
+ # Column Fallback
63
+ #
64
+ # Uncomment line below to fallback to original column. You can pass
65
+ # +column_fallback: true+ to +translates+ to return original column on
66
+ # default locale, or pass +column_fallback: [:en, :de]+ to +translates+
67
+ # to return original column for those locales or pass
68
+ # +column_fallback: ->(locale) { ... }+ to +translates to evaluate which
69
+ # locales to return original column for.
70
+ # column_fallback
71
+ #
72
+ # Or uncomment this line to enable column fallback with a global default.
73
+ # column_fallback true
61
74
 
62
75
  # Fallbacks
63
76
  #
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mobility
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.9
4
+ version: 1.3.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Salzberg
@@ -10,31 +10,32 @@ bindir: exe
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIEODCCAqCgAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDDBhjaHJp
14
- cy9EQz1kZWppbWF0YS9EQz1jb20wHhcNMjIwMzAyMDMyMTA5WhcNMjMwMzAyMDMy
15
- MTA5WjAjMSEwHwYDVQQDDBhjaHJpcy9EQz1kZWppbWF0YS9EQz1jb20wggGiMA0G
16
- CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDURCKbt5oY0sCp4kYK1u5SLzVHg6Q1
17
- 2LejeQvUGpR3gulWqrq/507XRxE/9FSpLfgo3cGGYio1/gg2Yp7pBI4ZNEz8d2Vg
18
- 6caWLHYtHYF0/jlo177UspEF1bt3lCCmaA/ZyQpvoLi76Jf6VCBjepMqhLjeBSsA
19
- xUqSdgNT8lzduOzdYk/GWf2Trvyz72IN6rY7hSwJ/U4R2DusRNTbKC55iyu0MyqI
20
- Nks33les0xQERucqes1YzSEnpott/GUQ/fFWV1Qx7M1hMnqbQIm493BueR6X95a2
21
- B7/aqY7LUVVmn9p65NMBJhbbP/pbAcLYV0C+y1Jy9NaVQTpWmJXVKBpYwlAzOJOQ
22
- +b/7MBzT5Zzudkq9OlA5rZJB0hFo/Bm38MOCTSTk1/RT+zmoOyb4bx/h400L4ZUt
23
- bRGON33BZ99gPiYdGfd3Pc/7FooteJASjKIO4Hman2ELRIdu6Bq+fIkTdJBcruS/
24
- XL6xoRitCG7CX0IqmMKuLiKA/J0amAikHGsCAwEAAaN3MHUwCQYDVR0TBAIwADAL
25
- BgNVHQ8EBAMCBLAwHQYDVR0OBBYEFMNUGAhS68egZT6DOfJwrfIdCtT/MB0GA1Ud
26
- EQQWMBSBEmNocmlzQGRlamltYXRhLmNvbTAdBgNVHRIEFjAUgRJjaHJpc0BkZWpp
27
- bWF0YS5jb20wDQYJKoZIhvcNAQELBQADggGBAHJPxoU7brN6goci9iclRYUq1Prs
28
- 51E87VRywUDysHpaHJoGRTqRJsQxi5aGZ9pIbiXGj9WJKKnrhiv5cM5fWtAsz564
29
- Ro+Zyx6UVt/2z9rcfYrnXtmC9wh+5/0UqAeoan9RiSd8lscQZ9pEY0E3cmzJRHSU
30
- t8kwB2ipVkFO17mdTVgc3C2ZbWRq80eTzkELDBb+8xO0Cskyh4sGMTOKfHs2RWcJ
31
- 217Qeg0F9w0RcqwnORe5zmPihY9zswCPh0IUaJa1pNY+MLTff9LE/qTl3WVTgrif
32
- HsSSnstQYPSLJ3hSP/cu1aOmdXlJiim//XlDQ9DNp4KWje3UW3DMRdTwjW5wPmUq
33
- VA9Ij7DUPaZzUpy1NZEigf1GshvslOnvN5bgol1YFR46jpfZVlgt0K5XBQVNvp/A
34
- QHgocnSksU5GOM+G2UhjVycbTamd+bCxjWAZTEDZNafFt5CmnfK1D1UTIblR/ci9
35
- fUDdW+GhxhobB8N1mtDRlhELoxLLjx7mSvJ3Wg==
13
+ MIIEcDCCAtigAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MQ4wDAYDVQQDDAVjaHJp
14
+ czEYMBYGCgmSJomT8ixkARkWCGRlamltYXRhMRMwEQYKCZImiZPyLGQBGRYDY29t
15
+ MB4XDTIzMDMyODA3MTQzNVoXDTI0MDMyNzA3MTQzNVowPzEOMAwGA1UEAwwFY2hy
16
+ aXMxGDAWBgoJkiaJk/IsZAEZFghkZWppbWF0YTETMBEGCgmSJomT8ixkARkWA2Nv
17
+ bTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAJI6uJ3SQZs7gaYR4nFb
18
+ yKG+ZHDMoAvrYHPp5hb3ssueoniFtfV1SOh2QOm3AfdA4XIiUco1NAepYkp+zEIT
19
+ sCUKWkYe8uOwvpdTBrO6JbEfFw0/2ewkCWreN/hfFjOXqZIieJXEHeScrzbU0w/6
20
+ /oa3rsiN91ED1qaQqRU7K9pPuhuOnKrZSzdTDpbwbBn4jK2j2BQ2/yRlX6FObOWa
21
+ 4gpyFpr0jU0rpk38UOiHS9uDN7Zi+uagAulgHHkzfYaNPjCswIdobpzLiT9C0stQ
22
+ EYI4cc51dAhoVR4FYP+J0xXn9t39fZ5+843krkOHOcPJxfT1wXGI/guKoqHETzoV
23
+ Tjc1sIgjWqOyBKAafAOvz1+5lltt2WO3HtBS8/56HUlP6JGt33cQwXqMkCJFo3PO
24
+ on4XH3YFH5Qc9d27RWjAzPZChKT0uiWudVkWxtWBJLCaJPtqrrA/PMWm+G7Vuioo
25
+ m+XtpehDzW18iPY1tIh0gW5dZQ49oD9phdjJyBWwXdQHbQIDAQABo3cwdTAJBgNV
26
+ HRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUQfErg7vOK5dNHaiq3mnsnUbr
27
+ 1g4wHQYDVR0RBBYwFIESY2hyaXNAZGVqaW1hdGEuY29tMB0GA1UdEgQWMBSBEmNo
28
+ cmlzQGRlamltYXRhLmNvbTANBgkqhkiG9w0BAQsFAAOCAYEAbOb7AfkztyaGZfbc
29
+ aS3UyLCtMAyDqvBL0mG3lNTEpGgqYXA0XH/zWcg5Ehj1dd3zSYwg/4Pj8xZNQZm+
30
+ kgHVMuNww7jO5npdKfO5jpKqBRifk5DFiG0GfI0j3F1TTTmXmqC7EmBGW5tF0pR1
31
+ nStAwt6Gip/6f0pY39iq3xV71tQ9CUA6Mm3UWDTS0sFqQTGGhlOssXUeUebBbINV
32
+ O4iRiOQfNE9kTVNN8cJqnAig8TgBTGuHkIFXnEwI7FHV6AOi5YEdtQVczT+5Flvv
33
+ cLGJnX0OPeuhEDhu0qjpHtITTCULlENZJQ84n9Og3zHHGEqJ693Zs9Q3NUHu9OPX
34
+ UxjefiDKMZyQoluoOqFbQeNF0wUxbZ++hxkg8FEHzCsEDNtFKbf3LdQ8GMkNofml
35
+ QnAXcxRDe1ne9jJyVo8hEgxLTG60CK2v46NPXc8FG6TTrp3GWX7G8HzaU2/Z2WAk
36
+ SQ1li+pvoD9RLbDgJxzXm5YqF799qRUYoP/85TXkGYip7dYM
36
37
  -----END CERTIFICATE-----
37
- date: 2022-06-24 00:00:00.000000000 Z
38
+ date: 2024-03-20 00:00:00.000000000 Z
38
39
  dependencies:
39
40
  - !ruby/object:Gem::Dependency
40
41
  name: request_store
@@ -254,11 +255,11 @@ metadata:
254
255
  rubygems_mfa_required: 'true'
255
256
  post_install_message: |2
256
257
 
257
- Warning: Mobility v1.0 includes backwards-incompatible changes (mostly around configuration).
258
+ Warning: Mobility v1.3.x includes potentially backwards-incompatible changes
259
+ for jsonb/hstore backends.
258
260
 
259
- If you are upgrading from an earlier version, please see:
260
- - https://github.com/shioyama/mobility/releases/tag/v1.0.0
261
- - https://github.com/shioyama/mobility/wiki/Introduction-to-Mobility-v1.0
261
+ Please see:
262
+ - https://github.com/shioyama/mobility/issues/535
262
263
  rdoc_options: []
263
264
  require_paths:
264
265
  - lib
@@ -269,11 +270,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
269
270
  version: '2.5'
270
271
  required_rubygems_version: !ruby/object:Gem::Requirement
271
272
  requirements:
272
- - - ">="
273
+ - - ">"
273
274
  - !ruby/object:Gem::Version
274
- version: '0'
275
+ version: 1.3.1
275
276
  requirements: []
276
- rubygems_version: 3.1.2
277
+ rubygems_version: 3.4.6
277
278
  signing_key:
278
279
  specification_version: 4
279
280
  summary: Pluggable Ruby translation framework
metadata.gz.sig CHANGED
Binary file