mobility 1.0.0.alpha → 1.0.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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/CHANGELOG.md +54 -1
- data/Gemfile +5 -16
- data/Gemfile.lock +30 -82
- data/README.md +24 -29
- data/lib/mobility.rb +67 -9
- data/lib/mobility/backend.rb +8 -10
- data/lib/mobility/backends.rb +1 -1
- data/lib/mobility/backends/active_record.rb +1 -1
- data/lib/mobility/backends/active_record/column.rb +1 -1
- data/lib/mobility/backends/active_record/container.rb +6 -9
- data/lib/mobility/backends/active_record/hstore.rb +4 -4
- data/lib/mobility/backends/active_record/json.rb +3 -3
- data/lib/mobility/backends/active_record/jsonb.rb +3 -3
- data/lib/mobility/backends/active_record/key_value.rb +27 -11
- data/lib/mobility/backends/active_record/serialized.rb +4 -0
- data/lib/mobility/backends/active_record/table.rb +12 -7
- data/lib/mobility/backends/container.rb +10 -2
- data/lib/mobility/backends/hash_valued.rb +4 -0
- data/lib/mobility/backends/jsonb.rb +1 -1
- data/lib/mobility/backends/key_value.rb +12 -15
- data/lib/mobility/backends/sequel.rb +34 -2
- data/lib/mobility/backends/sequel/container.rb +8 -8
- data/lib/mobility/backends/sequel/hstore.rb +1 -1
- data/lib/mobility/backends/sequel/json.rb +1 -0
- data/lib/mobility/backends/sequel/key_value.rb +79 -12
- data/lib/mobility/backends/sequel/pg_hash.rb +6 -6
- data/lib/mobility/backends/sequel/serialized.rb +4 -0
- data/lib/mobility/backends/sequel/table.rb +18 -8
- data/lib/mobility/backends/table.rb +29 -29
- data/lib/mobility/pluggable.rb +21 -1
- data/lib/mobility/plugin.rb +2 -2
- data/lib/mobility/plugins.rb +2 -0
- data/lib/mobility/plugins/active_model/dirty.rb +11 -5
- data/lib/mobility/plugins/active_record.rb +3 -0
- data/lib/mobility/plugins/active_record/backend.rb +2 -0
- data/lib/mobility/plugins/active_record/query.rb +7 -7
- data/lib/mobility/plugins/active_record/uniqueness_validation.rb +5 -1
- data/lib/mobility/plugins/arel.rb +125 -0
- data/lib/mobility/plugins/arel/nodes.rb +15 -0
- data/lib/mobility/plugins/arel/nodes/pg_ops.rb +134 -0
- data/lib/mobility/plugins/attribute_methods.rb +1 -0
- data/lib/mobility/plugins/attributes.rb +17 -15
- data/lib/mobility/plugins/backend.rb +45 -22
- data/lib/mobility/plugins/cache.rb +12 -5
- data/lib/mobility/plugins/default.rb +1 -1
- data/lib/mobility/plugins/fallbacks.rb +4 -4
- data/lib/mobility/plugins/fallthrough_accessors.rb +5 -6
- data/lib/mobility/plugins/locale_accessors.rb +2 -5
- data/lib/mobility/plugins/presence.rb +1 -1
- data/lib/mobility/plugins/reader.rb +2 -2
- data/lib/mobility/plugins/sequel/dirty.rb +2 -2
- data/lib/mobility/plugins/writer.rb +1 -1
- data/lib/mobility/version.rb +2 -2
- data/lib/rails/generators/mobility/templates/create_string_translations.rb +0 -1
- data/lib/rails/generators/mobility/templates/create_text_translations.rb +0 -1
- data/lib/rails/generators/mobility/templates/initializer.rb +11 -3
- metadata +14 -20
- metadata.gz.sig +0 -0
- data/lib/mobility/active_record/model_translation.rb +0 -14
- data/lib/mobility/active_record/string_translation.rb +0 -10
- data/lib/mobility/active_record/text_translation.rb +0 -10
- data/lib/mobility/active_record/translation.rb +0 -14
- data/lib/mobility/arel.rb +0 -49
- data/lib/mobility/arel/nodes.rb +0 -13
- data/lib/mobility/arel/nodes/pg_ops.rb +0 -132
- data/lib/mobility/arel/visitor.rb +0 -61
- data/lib/mobility/sequel/column_changes.rb +0 -28
- data/lib/mobility/sequel/hash_initializer.rb +0 -21
- data/lib/mobility/sequel/model_translation.rb +0 -20
- data/lib/mobility/sequel/sql.rb +0 -16
- data/lib/mobility/sequel/string_translation.rb +0 -10
- data/lib/mobility/sequel/text_translation.rb +0 -10
- data/lib/mobility/sequel/translation.rb +0 -53
@@ -32,8 +32,15 @@ for aggregating attributes.
|
|
32
32
|
end
|
33
33
|
|
34
34
|
included_hook do |klass|
|
35
|
-
|
36
|
-
|
35
|
+
names = @names
|
36
|
+
|
37
|
+
klass.class_eval do
|
38
|
+
extend ClassMethods
|
39
|
+
names.each { |name| mobility_attributes << name.to_s }
|
40
|
+
mobility_attributes.uniq!
|
41
|
+
rescue FrozenError
|
42
|
+
raise FrozenAttributesError, "Attempting to translate these attributes on #{klass}, which has already been subclassed: #{names.join(', ')}."
|
43
|
+
end
|
37
44
|
end
|
38
45
|
|
39
46
|
module ClassMethods
|
@@ -44,25 +51,20 @@ for aggregating attributes.
|
|
44
51
|
mobility_attributes.include?(name.to_s)
|
45
52
|
end
|
46
53
|
|
47
|
-
# Register a new attribute name. Public, but treat as internal.
|
48
|
-
# @param [String, Symbol] Attribute name
|
49
|
-
def register_mobility_attribute(name)
|
50
|
-
(self.mobility_attributes << name.to_s).uniq!
|
51
|
-
end
|
52
|
-
|
53
|
-
def inherited(klass)
|
54
|
-
super
|
55
|
-
mobility_attributes.each { |name| klass.register_mobility_attribute(name) }
|
56
|
-
end
|
57
|
-
|
58
|
-
protected
|
59
|
-
|
60
54
|
# Return translated attribute names on this model.
|
61
55
|
# @return [Array<String>] Attribute names
|
62
56
|
def mobility_attributes
|
63
57
|
@mobility_attributes ||= []
|
64
58
|
end
|
59
|
+
|
60
|
+
def inherited(klass)
|
61
|
+
super
|
62
|
+
attrs = mobility_attributes.freeze # ensure attributes are not modified after being inherited
|
63
|
+
klass.class_eval { @mobility_attributes = attrs.dup }
|
64
|
+
end
|
65
65
|
end
|
66
|
+
|
67
|
+
class FrozenAttributesError < Error; end
|
66
68
|
end
|
67
69
|
|
68
70
|
register_plugin(:attributes, Attributes)
|
@@ -32,18 +32,12 @@ Defines:
|
|
32
32
|
|
33
33
|
def initialize(*args, **original_options)
|
34
34
|
super
|
35
|
-
return unless Plugins::Backend.dependencies_satisfied?(self.class)
|
36
35
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
@backend_options = @backend_options.merge(original_options)
|
43
|
-
when NilClass
|
44
|
-
@backend = @backend_options = nil
|
45
|
-
else
|
46
|
-
raise ArgumentError, "backend must be either a backend name, a backend class, or a two-element array"
|
36
|
+
# Validate that the default backend from config has valid keys
|
37
|
+
if (default = self.class.defaults[:backend])
|
38
|
+
name, backend_options = default
|
39
|
+
extra_keys = backend_options.keys - backend.valid_keys
|
40
|
+
raise InvalidOptionKey, "These are not valid #{name} backend keys: #{extra_keys.join(', ')}." unless extra_keys.empty?
|
47
41
|
end
|
48
42
|
|
49
43
|
include InstanceMethods
|
@@ -58,13 +52,15 @@ Defines:
|
|
58
52
|
klass.extend ClassMethods
|
59
53
|
|
60
54
|
if backend
|
61
|
-
@backend_class =
|
62
|
-
build_subclass(klass, backend_options)
|
55
|
+
@backend_class = backend.build_subclass(klass, backend_options)
|
63
56
|
|
64
57
|
backend_class.setup_model(klass, names)
|
65
58
|
|
66
|
-
|
67
|
-
|
59
|
+
names = @names
|
60
|
+
backend_class = @backend_class
|
61
|
+
|
62
|
+
klass.class_eval do
|
63
|
+
names.each { |name| mobility_backend_classes[name.to_sym] = backend_class }
|
68
64
|
end
|
69
65
|
|
70
66
|
backend_class
|
@@ -83,10 +79,38 @@ Defines:
|
|
83
79
|
raise e, "could not find a #{backend} backend. Did you forget to include an ORM plugin like active_record or sequel?"
|
84
80
|
end
|
85
81
|
|
82
|
+
private
|
83
|
+
|
84
|
+
# Override to extract backend options from options hash.
|
85
|
+
def initialize_options(original_options)
|
86
|
+
super
|
87
|
+
|
88
|
+
case options[:backend]
|
89
|
+
when String, Symbol, Class
|
90
|
+
@backend, @backend_options = options[:backend], options
|
91
|
+
when Array
|
92
|
+
@backend, @backend_options = options[:backend]
|
93
|
+
@backend_options = @backend_options.merge(original_options)
|
94
|
+
when NilClass
|
95
|
+
@backend = @backend_options = nil
|
96
|
+
else
|
97
|
+
raise ArgumentError, "backend must be either a backend name, a backend class, or a two-element array"
|
98
|
+
end
|
99
|
+
|
100
|
+
@backend = load_backend(backend)
|
101
|
+
end
|
102
|
+
|
103
|
+
# Override default validation to exclude backend options, which may be
|
104
|
+
# mixed in with plugin options.
|
105
|
+
def validate_options(options)
|
106
|
+
return super unless backend
|
107
|
+
super(options.slice(*(options.keys - backend.valid_keys)))
|
108
|
+
end
|
109
|
+
|
86
110
|
# Override default argument-handling in DSL to store kwargs passed along
|
87
111
|
# with plugin name.
|
88
|
-
def self.configure_default(defaults, key,
|
89
|
-
defaults[key] = [
|
112
|
+
def self.configure_default(defaults, key, backend = nil, backend_options = {})
|
113
|
+
defaults[key] = [backend, backend_options] if backend
|
90
114
|
end
|
91
115
|
|
92
116
|
module InstanceMethods
|
@@ -116,12 +140,9 @@ Defines:
|
|
116
140
|
raise KeyError, "No backend for: #{name}"
|
117
141
|
end
|
118
142
|
|
119
|
-
def register_mobility_backend_class(name, backend_class)
|
120
|
-
mobility_backend_classes[name.to_sym] = backend_class
|
121
|
-
end
|
122
|
-
|
123
143
|
def inherited(klass)
|
124
|
-
|
144
|
+
parent_classes = mobility_backend_classes.freeze # ensure backend classes are not modified after being inherited
|
145
|
+
klass.class_eval { @mobility_backend_classes = parent_classes.dup }
|
125
146
|
super
|
126
147
|
end
|
127
148
|
|
@@ -131,6 +152,8 @@ Defines:
|
|
131
152
|
@mobility_backend_classes ||= {}
|
132
153
|
end
|
133
154
|
end
|
155
|
+
|
156
|
+
class InvalidOptionKey < Error; end
|
134
157
|
end
|
135
158
|
|
136
159
|
register_plugin(:backend, Backend)
|
@@ -7,8 +7,7 @@ module Mobility
|
|
7
7
|
Caches values fetched from the backend so subsequent fetches can be performed
|
8
8
|
more quickly. The cache stores cached values in a simple hash, which is not
|
9
9
|
optimal for some storage strategies, so some backends (KeyValue, Table) use a
|
10
|
-
custom module
|
11
|
-
details see the documentation for these backends.
|
10
|
+
custom module by defining a method, +include_cache+, on the backend class.
|
12
11
|
|
13
12
|
The cache is reset when one of a set of events happens (saving, reloading,
|
14
13
|
etc.). See {BackendResetter} for details.
|
@@ -28,12 +27,20 @@ Values are added to the cache in two ways:
|
|
28
27
|
# Applies cache plugin to attributes.
|
29
28
|
included_hook do |_, backend_class|
|
30
29
|
if options[:cache]
|
31
|
-
|
30
|
+
if backend_class.respond_to?(:include_cache)
|
31
|
+
backend_class.include_cache
|
32
|
+
else
|
33
|
+
include_cache(backend_class)
|
34
|
+
end
|
32
35
|
end
|
33
36
|
end
|
34
37
|
|
35
38
|
private
|
36
39
|
|
40
|
+
def include_cache(backend_class)
|
41
|
+
backend_class.include BackendMethods
|
42
|
+
end
|
43
|
+
|
37
44
|
# Used in ORM cache plugins
|
38
45
|
def define_cache_hooks(klass, *reset_methods)
|
39
46
|
mod = self
|
@@ -55,11 +62,11 @@ Values are added to the cache in two ways:
|
|
55
62
|
# @!method read(locale, value, options = {})
|
56
63
|
# @option options [Boolean] cache *false* to disable cache.
|
57
64
|
def read(locale, **options)
|
58
|
-
return super(locale, options) if options.delete(:cache) == false
|
65
|
+
return super(locale, **options) if options.delete(:cache) == false
|
59
66
|
if cache.has_key?(locale)
|
60
67
|
cache[locale]
|
61
68
|
else
|
62
|
-
cache[locale] = super(locale, options)
|
69
|
+
cache[locale] = super(locale, **options)
|
63
70
|
end
|
64
71
|
end
|
65
72
|
|
@@ -90,7 +90,7 @@ The proc can accept zero to three arguments (see examples below)
|
|
90
90
|
# *false* to disable presence filter.
|
91
91
|
def read(locale, accessor_options = {})
|
92
92
|
default = accessor_options.has_key?(:default) ? accessor_options.delete(:default) : options[:default]
|
93
|
-
if (value = super(locale, accessor_options)).nil?
|
93
|
+
if (value = super(locale, **accessor_options)).nil?
|
94
94
|
Default[default, locale: locale, accessor_options: accessor_options, model: model, attribute: attribute]
|
95
95
|
else
|
96
96
|
value
|
@@ -47,7 +47,7 @@ the current locale was +nil+.
|
|
47
47
|
Mobility.locale = :ja
|
48
48
|
post.title
|
49
49
|
#=> "foo"
|
50
|
-
|
50
|
+
|
51
51
|
post.title = "bar"
|
52
52
|
post.title
|
53
53
|
#=> "bar"
|
@@ -144,15 +144,15 @@ the current locale was +nil+.
|
|
144
144
|
|
145
145
|
def define_read(fallbacks)
|
146
146
|
define_method :read do |locale, fallback: true, **options|
|
147
|
-
return super(locale, options) if !fallback || options[:locale]
|
147
|
+
return super(locale, **options) if !fallback || options[:locale]
|
148
148
|
|
149
149
|
locales = fallback == true ? fallbacks[locale] : [locale, *fallback]
|
150
150
|
locales.each do |fallback_locale|
|
151
|
-
value = super(fallback_locale, options)
|
151
|
+
value = super(fallback_locale, **options)
|
152
152
|
return value if Util.present?(value)
|
153
153
|
end
|
154
154
|
|
155
|
-
super(locale, options)
|
155
|
+
super(locale, **options)
|
156
156
|
end
|
157
157
|
end
|
158
158
|
|
@@ -24,14 +24,11 @@ model class is generated.
|
|
24
24
|
|
25
25
|
default true
|
26
26
|
|
27
|
-
requires :reader
|
28
|
-
requires :writer
|
29
|
-
|
30
27
|
# Apply fallthrough accessors plugin to attributes.
|
31
28
|
# @param [Translations] translations
|
32
29
|
# @param [Boolean] option
|
33
30
|
initialize_hook do
|
34
|
-
if options[:fallthrough_accessors]
|
31
|
+
if options[:fallthrough_accessors]
|
35
32
|
define_fallthrough_accessors(names)
|
36
33
|
end
|
37
34
|
end
|
@@ -47,9 +44,11 @@ model class is generated.
|
|
47
44
|
locale, suffix = $2.split('_')
|
48
45
|
locale = "#{locale}-#{suffix.upcase}" if suffix
|
49
46
|
if $4 == '=' # writer
|
50
|
-
|
47
|
+
kwargs = args[1].is_a?(Hash) ? args[1] : {}
|
48
|
+
public_send(attribute_method, args[0], **kwargs, locale: locale)
|
51
49
|
else # reader
|
52
|
-
|
50
|
+
kwargs = args[0].is_a?(Hash) ? args[0] : {}
|
51
|
+
public_send(attribute_method, **kwargs, locale: locale)
|
53
52
|
end
|
54
53
|
else
|
55
54
|
super(method_name, *args, &block)
|
@@ -19,9 +19,6 @@ available locales for a Rails application) will be used by default.
|
|
19
19
|
|
20
20
|
default true
|
21
21
|
|
22
|
-
requires :reader
|
23
|
-
requires :writer
|
24
|
-
|
25
22
|
# Apply locale accessors plugin to attributes.
|
26
23
|
# @param [Translations] translations
|
27
24
|
# @param [Boolean] option
|
@@ -30,8 +27,8 @@ available locales for a Rails application) will be used by default.
|
|
30
27
|
locales = Mobility.available_locales if locales == true
|
31
28
|
names.each do |name|
|
32
29
|
locales.each do |locale|
|
33
|
-
define_locale_reader(name, locale)
|
34
|
-
define_locale_writer(name, locale)
|
30
|
+
define_locale_reader(name, locale)
|
31
|
+
define_locale_writer(name, locale)
|
35
32
|
end
|
36
33
|
end
|
37
34
|
end
|
@@ -19,13 +19,13 @@ Defines attribute reader that delegates to +Mobility::Backend#read+.
|
|
19
19
|
class_eval <<-EOM, __FILE__, __LINE__ + 1
|
20
20
|
def #{name}(locale: nil, **options)
|
21
21
|
#{Reader.setup_source}
|
22
|
-
mobility_backends[:#{name}].read(locale, options)
|
22
|
+
mobility_backends[:#{name}].read(locale, **options)
|
23
23
|
end
|
24
24
|
EOM
|
25
25
|
class_eval <<-EOM, __FILE__, __LINE__ + 1
|
26
26
|
def #{name}?(locale: nil, **options)
|
27
27
|
#{Reader.setup_source}
|
28
|
-
mobility_backends[:#{name}].present?(locale, options)
|
28
|
+
mobility_backends[:#{name}].present?(locale, **options)
|
29
29
|
end
|
30
30
|
EOM
|
31
31
|
end
|
@@ -51,12 +51,12 @@ Automatically includes dirty plugin in model class when enabled.
|
|
51
51
|
# @!group Backend Accessors
|
52
52
|
# @!macro backend_writer
|
53
53
|
# @param [Hash] options
|
54
|
-
def write(locale, value, options
|
54
|
+
def write(locale, value, **options)
|
55
55
|
locale_accessor = Mobility.normalize_locale_accessor(attribute, locale).to_sym
|
56
56
|
if model.column_changes.has_key?(locale_accessor) && model.initial_values[locale_accessor] == value
|
57
57
|
super
|
58
58
|
[model.changed_columns, model.initial_values].each { |h| h.delete(locale_accessor) }
|
59
|
-
elsif read(locale, options.merge(fallback: false)) != value
|
59
|
+
elsif read(locale, **options.merge(fallback: false)) != value
|
60
60
|
model.will_change_column(locale_accessor)
|
61
61
|
super
|
62
62
|
end
|
@@ -19,7 +19,7 @@ Defines attribute writer that delegates to +Mobility::Backend#write+.
|
|
19
19
|
class_eval <<-EOM, __FILE__, __LINE__ + 1
|
20
20
|
def #{name}=(value, locale: nil, **options)
|
21
21
|
#{Writer.setup_source}
|
22
|
-
mobility_backends[:#{name}].write(locale, value, options)
|
22
|
+
mobility_backends[:#{name}].write(locale, value, **options)
|
23
23
|
end
|
24
24
|
EOM
|
25
25
|
end
|
data/lib/mobility/version.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
|
-
Mobility.configure do
|
2
|
-
|
1
|
+
Mobility.configure do
|
3
2
|
# PLUGINS
|
4
|
-
|
3
|
+
plugins do
|
5
4
|
# Backend
|
6
5
|
#
|
7
6
|
# Sets the default backend to use in models. This can be overridden in models
|
@@ -104,5 +103,14 @@ Mobility.configure do |config|
|
|
104
103
|
#
|
105
104
|
# Or define specific defaults by uncommenting line below
|
106
105
|
# locale_accessors [:en, :ja]
|
106
|
+
|
107
|
+
# Attribute Methods
|
108
|
+
#
|
109
|
+
# Adds translated attributes to +attributes+ hash, and defines methods
|
110
|
+
# +translated_attributes+ and +untranslated_attributes+ which return hashes
|
111
|
+
# with translated and untranslated attributes, respectively. Be aware that
|
112
|
+
# this plugin can create conflicts with other gems.
|
113
|
+
#
|
114
|
+
# attribute_methods
|
107
115
|
end
|
108
116
|
end
|
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.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Salzberg
|
@@ -34,7 +34,7 @@ cert_chain:
|
|
34
34
|
gSQml7TqcC6dZRsZRwYqzD9kUwdAJoCqno2CBUKs2l0yQAjFT36lRrVJznb7uWwa
|
35
35
|
xpPFnsrtyaZW6Dty8TSG3qzmeGpmpIotA8x1VA==
|
36
36
|
-----END CERTIFICATE-----
|
37
|
-
date: 2020-
|
37
|
+
date: 2020-12-21 00:00:00.000000000 Z
|
38
38
|
dependencies:
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
40
|
name: request_store
|
@@ -156,14 +156,6 @@ files:
|
|
156
156
|
- README.md
|
157
157
|
- Rakefile
|
158
158
|
- lib/mobility.rb
|
159
|
-
- lib/mobility/active_record/model_translation.rb
|
160
|
-
- lib/mobility/active_record/string_translation.rb
|
161
|
-
- lib/mobility/active_record/text_translation.rb
|
162
|
-
- lib/mobility/active_record/translation.rb
|
163
|
-
- lib/mobility/arel.rb
|
164
|
-
- lib/mobility/arel/nodes.rb
|
165
|
-
- lib/mobility/arel/nodes/pg_ops.rb
|
166
|
-
- lib/mobility/arel/visitor.rb
|
167
159
|
- lib/mobility/backend.rb
|
168
160
|
- lib/mobility/backends.rb
|
169
161
|
- lib/mobility/backends/active_record.rb
|
@@ -209,6 +201,9 @@ files:
|
|
209
201
|
- lib/mobility/plugins/active_record/dirty.rb
|
210
202
|
- lib/mobility/plugins/active_record/query.rb
|
211
203
|
- lib/mobility/plugins/active_record/uniqueness_validation.rb
|
204
|
+
- lib/mobility/plugins/arel.rb
|
205
|
+
- lib/mobility/plugins/arel/nodes.rb
|
206
|
+
- lib/mobility/plugins/arel/nodes/pg_ops.rb
|
212
207
|
- lib/mobility/plugins/attribute_methods.rb
|
213
208
|
- lib/mobility/plugins/attributes.rb
|
214
209
|
- lib/mobility/plugins/backend.rb
|
@@ -228,13 +223,6 @@ files:
|
|
228
223
|
- lib/mobility/plugins/sequel/dirty.rb
|
229
224
|
- lib/mobility/plugins/sequel/query.rb
|
230
225
|
- lib/mobility/plugins/writer.rb
|
231
|
-
- lib/mobility/sequel/column_changes.rb
|
232
|
-
- lib/mobility/sequel/hash_initializer.rb
|
233
|
-
- lib/mobility/sequel/model_translation.rb
|
234
|
-
- lib/mobility/sequel/sql.rb
|
235
|
-
- lib/mobility/sequel/string_translation.rb
|
236
|
-
- lib/mobility/sequel/text_translation.rb
|
237
|
-
- lib/mobility/sequel/translation.rb
|
238
226
|
- lib/mobility/translations.rb
|
239
227
|
- lib/mobility/util.rb
|
240
228
|
- lib/mobility/version.rb
|
@@ -259,7 +247,13 @@ metadata:
|
|
259
247
|
homepage_uri: https://github.com/shioyama/mobility
|
260
248
|
source_code_uri: https://github.com/shioyama/mobility
|
261
249
|
changelog_uri: https://github.com/shioyama/mobility/blob/master/CHANGELOG.md
|
262
|
-
post_install_message:
|
250
|
+
post_install_message: |2
|
251
|
+
|
252
|
+
Warning: Mobility v1.0 includes backwards-incompatible changes (mostly around configuration).
|
253
|
+
|
254
|
+
If you are upgrading from an earlier version, please see:
|
255
|
+
- https://github.com/shioyama/mobility/releases/tag/v1.0.0
|
256
|
+
- https://github.com/shioyama/mobility/wiki/Introduction-to-Mobility-v1.0
|
263
257
|
rdoc_options: []
|
264
258
|
require_paths:
|
265
259
|
- lib
|
@@ -270,9 +264,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
270
264
|
version: '2.5'
|
271
265
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
272
266
|
requirements:
|
273
|
-
- - "
|
267
|
+
- - ">="
|
274
268
|
- !ruby/object:Gem::Version
|
275
|
-
version:
|
269
|
+
version: '0'
|
276
270
|
requirements: []
|
277
271
|
rubygems_version: 3.1.2
|
278
272
|
signing_key:
|