mobility 0.3.6 → 0.4.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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/CHANGELOG.md +21 -0
- data/Gemfile +11 -9
- data/Gemfile.lock +9 -6
- data/README.md +50 -16
- data/lib/mobility.rb +18 -4
- data/lib/mobility/active_record.rb +14 -7
- data/lib/mobility/active_record/uniqueness_validator.rb +17 -3
- data/lib/mobility/attributes.rb +39 -16
- data/lib/mobility/backends/active_record/column/query_methods.rb +12 -11
- data/lib/mobility/backends/active_record/container.rb +116 -0
- data/lib/mobility/backends/active_record/container/query_methods.rb +31 -0
- data/lib/mobility/backends/active_record/hstore/query_methods.rb +7 -54
- data/lib/mobility/backends/active_record/jsonb/query_methods.rb +5 -55
- data/lib/mobility/backends/active_record/key_value.rb +13 -9
- data/lib/mobility/backends/active_record/key_value/query_methods.rb +6 -6
- data/lib/mobility/backends/active_record/pg_query_methods.rb +115 -0
- data/lib/mobility/backends/active_record/query_methods.rb +4 -3
- data/lib/mobility/backends/active_record/serialized/query_methods.rb +6 -5
- data/lib/mobility/backends/active_record/table.rb +18 -3
- data/lib/mobility/backends/active_record/table/query_methods.rb +25 -14
- data/lib/mobility/backends/container.rb +25 -0
- data/lib/mobility/backends/hash_valued.rb +2 -2
- data/lib/mobility/backends/null.rb +2 -2
- data/lib/mobility/backends/sequel/column.rb +2 -2
- data/lib/mobility/backends/sequel/column/query_methods.rb +2 -2
- data/lib/mobility/backends/sequel/container.rb +99 -0
- data/lib/mobility/backends/sequel/container/query_methods.rb +41 -0
- data/lib/mobility/backends/sequel/hstore/query_methods.rb +17 -3
- data/lib/mobility/backends/sequel/jsonb/query_methods.rb +17 -3
- data/lib/mobility/backends/sequel/key_value.rb +2 -1
- data/lib/mobility/backends/sequel/key_value/query_methods.rb +2 -2
- data/lib/mobility/backends/sequel/pg_hash.rb +4 -7
- data/lib/mobility/backends/sequel/pg_query_methods.rb +85 -0
- data/lib/mobility/backends/sequel/query_methods.rb +4 -3
- data/lib/mobility/backends/sequel/serialized/query_methods.rb +4 -3
- data/lib/mobility/backends/sequel/table.rb +1 -1
- data/lib/mobility/backends/sequel/table/query_methods.rb +2 -2
- data/lib/mobility/backends/serialized.rb +5 -7
- data/lib/mobility/configuration.rb +34 -4
- data/lib/mobility/plugins/active_record/dirty.rb +1 -1
- data/lib/mobility/plugins/fallbacks.rb +20 -6
- data/lib/mobility/sequel/column_changes.rb +2 -5
- data/lib/mobility/sequel/hash_initializer.rb +19 -0
- data/lib/mobility/util.rb +0 -2
- data/lib/mobility/version.rb +1 -1
- metadata +11 -4
- metadata.gz.sig +0 -0
- data/lib/mobility/backends/sequel/postgres_query_methods.rb +0 -41
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'mobility/backends/sequel/
|
1
|
+
require 'mobility/backends/sequel/pg_query_methods'
|
2
2
|
require "mobility/backends/sequel/query_methods"
|
3
3
|
|
4
4
|
Sequel.extension :pg_json, :pg_json_ops
|
@@ -6,12 +6,12 @@ Sequel.extension :pg_json, :pg_json_ops
|
|
6
6
|
module Mobility
|
7
7
|
module Backends
|
8
8
|
class Sequel::Jsonb::QueryMethods < Sequel::QueryMethods
|
9
|
-
include
|
9
|
+
include Sequel::PgQueryMethods
|
10
10
|
|
11
11
|
def initialize(attributes, _)
|
12
12
|
super
|
13
13
|
|
14
|
-
define_query_methods
|
14
|
+
define_query_methods
|
15
15
|
|
16
16
|
attributes.each do |attribute|
|
17
17
|
define_method :"first_by_#{attribute}" do |value|
|
@@ -20,6 +20,20 @@ module Mobility
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def contains_value(key, value, locale)
|
27
|
+
build_op(key).contains({ locale => value }.to_json)
|
28
|
+
end
|
29
|
+
|
30
|
+
def has_locale(key, locale)
|
31
|
+
build_op(key).has_key?(locale)
|
32
|
+
end
|
33
|
+
|
34
|
+
def build_op(key)
|
35
|
+
::Sequel.pg_jsonb_op(key)
|
36
|
+
end
|
23
37
|
end
|
24
38
|
end
|
25
39
|
end
|
@@ -3,6 +3,7 @@ require "mobility/util"
|
|
3
3
|
require "mobility/backends/sequel"
|
4
4
|
require "mobility/backends/key_value"
|
5
5
|
require "mobility/sequel/column_changes"
|
6
|
+
require "mobility/sequel/hash_initializer"
|
6
7
|
require "mobility/sequel/string_translation"
|
7
8
|
require "mobility/sequel/text_translation"
|
8
9
|
|
@@ -82,7 +83,7 @@ Implements the {Mobility::Backends::KeyValue} backend for Sequel models.
|
|
82
83
|
end
|
83
84
|
include callback_methods
|
84
85
|
|
85
|
-
include Mobility::Sequel::ColumnChanges.new(attributes)
|
86
|
+
include Mobility::Sequel::ColumnChanges.new(*attributes)
|
86
87
|
|
87
88
|
private
|
88
89
|
|
@@ -36,11 +36,11 @@ module Mobility
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def define_query_methods(association_name)
|
39
|
-
|
39
|
+
q = self
|
40
40
|
|
41
41
|
%w[exclude or where].each do |method_name|
|
42
42
|
define_method method_name do |*conds, &block|
|
43
|
-
if i18n_keys =
|
43
|
+
if i18n_keys = q.extract_attributes(conds.first)
|
44
44
|
cond = conds.first.dup
|
45
45
|
i18n_nulls = i18n_keys.select { |key| cond[key].nil? }
|
46
46
|
i18n_keys.each { |attr| cond[::Sequel[:"#{attr}_#{association_name}"][:value]] = cond.delete(attr) }
|
@@ -27,11 +27,7 @@ jsonb).
|
|
27
27
|
end
|
28
28
|
|
29
29
|
setup do |attributes|
|
30
|
-
|
31
|
-
define_method :initialize_set do |values|
|
32
|
-
attributes.each { |attribute| self[attribute.to_sym] = {} }
|
33
|
-
super(values)
|
34
|
-
end
|
30
|
+
before_validation = Module.new do
|
35
31
|
define_method :before_validation do
|
36
32
|
attributes.each do |attribute|
|
37
33
|
self[attribute.to_sym].delete_if { |_, v| Util.blank?(v) }
|
@@ -39,8 +35,9 @@ jsonb).
|
|
39
35
|
super()
|
40
36
|
end
|
41
37
|
end
|
42
|
-
include
|
43
|
-
include Mobility::Sequel::
|
38
|
+
include before_validation
|
39
|
+
include Mobility::Sequel::HashInitializer.new(*attributes)
|
40
|
+
include Mobility::Sequel::ColumnChanges.new(*attributes)
|
44
41
|
|
45
42
|
plugin :defaults_setter
|
46
43
|
attributes.each { |attribute| default_values[attribute.to_sym] = {} }
|
@@ -0,0 +1,85 @@
|
|
1
|
+
module Mobility
|
2
|
+
module Backends
|
3
|
+
module Sequel
|
4
|
+
=begin
|
5
|
+
|
6
|
+
Defines query methods for Postgres backends. Including class must define two
|
7
|
+
private methods:
|
8
|
+
|
9
|
+
- a private method +contains_value+ which takes a key (column name), value and
|
10
|
+
locale and returns an SQL expression, and checks that the column has the
|
11
|
+
specified value in the specified locale
|
12
|
+
- a private method +has_locale+ which takes a key (column name) and locale, and
|
13
|
+
returns an SQL expression which checks that the column has a value in the
|
14
|
+
locale
|
15
|
+
|
16
|
+
(The +contains_value+ method is implemented slightly differently for hstore and
|
17
|
+
jsonb columns.)
|
18
|
+
|
19
|
+
=end
|
20
|
+
module PgQueryMethods
|
21
|
+
|
22
|
+
# Create query for conditions and translated keys
|
23
|
+
# @note This is a destructive action, it will alter +cond+.
|
24
|
+
#
|
25
|
+
# @param [Hash] cond Hash of attribute/value pairs
|
26
|
+
# @param [Array] keys Translated attribute names
|
27
|
+
# @param [Boolean] invert Invert query, true for +exclude+, false otherwise
|
28
|
+
# @return [Sequel::SQL::Expression] Query expression
|
29
|
+
def create_query!(cond, keys, invert = false)
|
30
|
+
keys.map { |key|
|
31
|
+
values = cond.delete(key)
|
32
|
+
values = [values] unless values.is_a?(Array)
|
33
|
+
values.map { |value| create_query_op(key, value, invert) }.inject(&:|)
|
34
|
+
}.inject(invert ? :| : :&)
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def define_query_methods
|
40
|
+
%w[exclude or where].each do |method_name|
|
41
|
+
define_query_method(method_name)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def define_query_method(method_name)
|
46
|
+
q = self
|
47
|
+
|
48
|
+
define_method method_name do |*cond, &block|
|
49
|
+
if i18n_keys = q.extract_attributes(cond.first)
|
50
|
+
cond = cond.first
|
51
|
+
|
52
|
+
query = q.create_query!(cond, i18n_keys, method_name == "exclude")
|
53
|
+
if method_name == "or"
|
54
|
+
query = ::Sequel.&(cond, query) unless cond.empty?
|
55
|
+
super(query, &block)
|
56
|
+
else
|
57
|
+
super(cond, &block).where(query)
|
58
|
+
end
|
59
|
+
else
|
60
|
+
super(*cond, &block)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def create_query_op(key, value, invert)
|
66
|
+
locale = Mobility.locale.to_s
|
67
|
+
|
68
|
+
if invert
|
69
|
+
has_locale(key, locale) & ~contains_value(key, value, locale)
|
70
|
+
else
|
71
|
+
value.nil? ? ~has_locale(key, locale) : contains_value(key, value, locale)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def contains_value(_key, _value, _locale)
|
76
|
+
raise NotImplementedError
|
77
|
+
end
|
78
|
+
|
79
|
+
def has_locale(_key, _locale)
|
80
|
+
raise NotImplementedError
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -13,9 +13,10 @@ models. For details see backend-specific subclasses.
|
|
13
13
|
# @param [Array<String>] attributes Translated attributes
|
14
14
|
def initialize(attributes, _)
|
15
15
|
@attributes = attributes.map!(&:to_sym)
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
end
|
17
|
+
|
18
|
+
def extract_attributes(cond)
|
19
|
+
cond.is_a?(Hash) && Util.presence(cond.keys & @attributes)
|
19
20
|
end
|
20
21
|
end
|
21
22
|
end
|
@@ -3,13 +3,14 @@ require "mobility/backends/sequel/query_methods"
|
|
3
3
|
module Mobility
|
4
4
|
module Backends
|
5
5
|
class Sequel::Serialized::QueryMethods < Sequel::QueryMethods
|
6
|
+
include Serialized
|
7
|
+
|
6
8
|
def initialize(attributes, _)
|
7
9
|
super
|
8
|
-
|
9
|
-
cond_checker = Backends::Serialized.attr_checker(attributes_extractor)
|
10
|
+
q = self
|
10
11
|
|
11
12
|
define_method :where do |*cond, &block|
|
12
|
-
|
13
|
+
q.check_opts(cond.first) || super(*cond, &block)
|
13
14
|
end
|
14
15
|
end
|
15
16
|
end
|
@@ -83,7 +83,7 @@ Implements the {Mobility::Backends::Table} backend for Sequel models.
|
|
83
83
|
end
|
84
84
|
include callback_methods
|
85
85
|
|
86
|
-
include Mobility::Sequel::ColumnChanges.new(attributes)
|
86
|
+
include Mobility::Sequel::ColumnChanges.new(*attributes)
|
87
87
|
end
|
88
88
|
|
89
89
|
setup_query_methods(QueryMethods)
|
@@ -35,14 +35,14 @@ module Mobility
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def define_query_methods(association_name, translation_class, **)
|
38
|
-
|
38
|
+
q = self
|
39
39
|
|
40
40
|
# See note in AR Table QueryMethods class about limitations of
|
41
41
|
# query methods on translated attributes when searching on nil values.
|
42
42
|
#
|
43
43
|
%w[exclude or where].each do |method_name|
|
44
44
|
define_method method_name do |*conds, &block|
|
45
|
-
if i18n_keys =
|
45
|
+
if i18n_keys = q.extract_attributes(conds.first)
|
46
46
|
cond = conds.first.dup
|
47
47
|
outer_join = method_name == "or" || i18n_keys.all? { |key| cond[key].nil? }
|
48
48
|
i18n_keys.each { |attr| cond[::Sequel[translation_class.table_name][attr]] = cond.delete(attr) }
|
@@ -60,14 +60,12 @@ Format for serialization. Either +:yaml+ (default) or +:json+.
|
|
60
60
|
lambda { |v| JSON.parse(v, symbolize_names: true) }
|
61
61
|
end
|
62
62
|
end
|
63
|
+
end
|
63
64
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
"You cannot query on mobility attributes translated with the Serialized backend (#{keys.join(", ")})."
|
69
|
-
end
|
70
|
-
end
|
65
|
+
def check_opts(opts)
|
66
|
+
if keys = extract_attributes(opts)
|
67
|
+
raise ArgumentError,
|
68
|
+
"You cannot query on mobility attributes translated with the Serialized backend (#{keys.join(", ")})."
|
71
69
|
end
|
72
70
|
end
|
73
71
|
end
|
@@ -45,12 +45,42 @@ Set each option on the default_options hash instead, like this:
|
|
45
45
|
# @return [Array<Symbol>]
|
46
46
|
attr_accessor :plugins
|
47
47
|
|
48
|
-
#
|
48
|
+
# Generate new fallbacks instance
|
49
|
+
# @note This method will call the proc defined in the variable set by the
|
50
|
+
# +fallbacks_generator=+ setter, passing the first argument to its `call`
|
51
|
+
# method. By default the generator returns an instance of
|
52
|
+
# +I18n::Locale::Fallbacks+.
|
53
|
+
# @param fallbacks [Hash] Fallbacks hash passed to generator
|
49
54
|
# @return [I18n::Locale::Fallbacks]
|
55
|
+
def new_fallbacks(fallbacks = {})
|
56
|
+
@fallbacks_generator.call(fallbacks)
|
57
|
+
end
|
58
|
+
|
59
|
+
# Assign proc which, passed a set of fallbacks, returns a default fallbacks
|
60
|
+
# instance. By default this is a proc which takes fallbacks and returns an
|
61
|
+
# instance of +I18n::Locale::Fallbacks+.
|
62
|
+
# @param [Proc] fallbacks generator
|
63
|
+
attr_writer :fallbacks_generator
|
64
|
+
|
65
|
+
# @deprecated Use {#new_fallbacks} instead.
|
50
66
|
def default_fallbacks(fallbacks = {})
|
51
|
-
|
67
|
+
warn %{
|
68
|
+
WARNING: The default_fallbacks configuration getter has been renamed
|
69
|
+
new_fallbacks to avoid confusion. The original method default_fallbacks will be
|
70
|
+
removed in the next major version of Mobility.
|
71
|
+
}
|
72
|
+
new_fallbacks(fallbacks)
|
73
|
+
end
|
74
|
+
|
75
|
+
# @deprecated Use {#fallbacks_generator=} instead.
|
76
|
+
def default_fallbacks=(fallbacks)
|
77
|
+
warn %{
|
78
|
+
WARNING: The default_fallbacks= configuration setter has been renamed
|
79
|
+
fallbacks_generator= to avoid confusion. The original method
|
80
|
+
default_fallbacks= will be removed in the next major version of Mobility.
|
81
|
+
}
|
82
|
+
self.fallbacks_generator = fallbacks
|
52
83
|
end
|
53
|
-
attr_writer :default_fallbacks
|
54
84
|
|
55
85
|
# Default backend to use (can be symbol or actual backend class)
|
56
86
|
# @return [Symbol,Class]
|
@@ -71,7 +101,7 @@ Set each option on the default_options hash instead, like this:
|
|
71
101
|
def initialize
|
72
102
|
@accessor_method = :translates
|
73
103
|
@query_method = :i18n
|
74
|
-
@
|
104
|
+
@fallbacks_generator = lambda { |fallbacks| I18n::Locale::Fallbacks.new(fallbacks) }
|
75
105
|
@default_accessor_locales = lambda { I18n.available_locales }
|
76
106
|
@default_options = Options[{
|
77
107
|
cache: true,
|
@@ -9,7 +9,7 @@ module Mobility
|
|
9
9
|
Dirty tracking for AR models. See {Mobility::Plugins::ActiveModel::Dirty} for
|
10
10
|
details on usage.
|
11
11
|
|
12
|
-
In addition to methods added by {Mobility::Plugins::ActiveModel::
|
12
|
+
In addition to methods added by {Mobility::Plugins::ActiveModel::Dirty}, the
|
13
13
|
AR::Dirty plugin adds support for the following persistence-specific methods
|
14
14
|
(for a model with a translated attribute +title+):
|
15
15
|
- +saved_changes+
|
@@ -8,12 +8,14 @@ Falls back to one or more alternative locales in case no value is defined for a
|
|
8
8
|
given locale.
|
9
9
|
|
10
10
|
For +fallbacks: true+, Mobility will use the value of
|
11
|
-
{Mobility::Configuration#
|
12
|
-
defaults to an instance of +I18n::Locale::Fallbacks+, but can be
|
13
|
-
(see {Mobility::Configuration}).
|
11
|
+
{Mobility::Configuration#new_fallbacks} for the fallbacks instance. This
|
12
|
+
defaults to an instance of +I18n::Locale::Fallbacks+, but can be
|
13
|
+
configured (see {Mobility::Configuration}).
|
14
14
|
|
15
15
|
If a hash is passed to the +fallbacks+ option, a new fallbacks instance will be
|
16
|
-
created for the model with the hash defining additional fallbacks.
|
16
|
+
created for the model with the hash defining additional fallbacks. To set a
|
17
|
+
default value for this hash, use set the value of `default_options[:fallbacks]`
|
18
|
+
in your Mobility configuration (see below).
|
17
19
|
|
18
20
|
In addition, fallbacks are disabled in certain situation. To explicitly disable
|
19
21
|
fallbacks when reading and writing, you can pass the <tt>fallback: false</tt>
|
@@ -102,6 +104,18 @@ the current locale was +nil+.
|
|
102
104
|
post.title_fr
|
103
105
|
#=> nil
|
104
106
|
|
107
|
+
@example Setting default fallbacks across all models
|
108
|
+
Mobility.configure do |config|
|
109
|
+
# ...
|
110
|
+
config.default_options[:fallbacks] = { :'fr' => 'en' }
|
111
|
+
# ...
|
112
|
+
end
|
113
|
+
|
114
|
+
class Post
|
115
|
+
# Post will fallback from French to English by default
|
116
|
+
translates :title, fallbacks: true
|
117
|
+
end
|
118
|
+
|
105
119
|
=end
|
106
120
|
class Fallbacks < Module
|
107
121
|
# Applies fallbacks plugin to attributes.
|
@@ -133,9 +147,9 @@ the current locale was +nil+.
|
|
133
147
|
|
134
148
|
def convert_option_to_fallbacks(option)
|
135
149
|
if option.is_a?(Hash)
|
136
|
-
Mobility.
|
150
|
+
Mobility.new_fallbacks(option)
|
137
151
|
elsif option == true
|
138
|
-
Mobility.
|
152
|
+
Mobility.new_fallbacks
|
139
153
|
else
|
140
154
|
Hash.new { [] }
|
141
155
|
end
|
@@ -8,17 +8,14 @@ setter method is called.
|
|
8
8
|
=end
|
9
9
|
class ColumnChanges < Module
|
10
10
|
# @param [Array<String>] attributes Backend attributes
|
11
|
-
def initialize(attributes)
|
12
|
-
@attributes = attributes
|
13
|
-
|
11
|
+
def initialize(*attributes)
|
14
12
|
attributes.each do |attribute|
|
15
13
|
define_method "#{attribute}=".freeze do |value, **options|
|
16
14
|
if !options[:super] && send(attribute) != value
|
17
15
|
locale = options[:locale] || Mobility.locale
|
18
16
|
column = attribute.to_sym
|
19
17
|
column_with_locale = :"#{attribute}_#{Mobility.normalize_locale(locale)}"
|
20
|
-
@changed_columns
|
21
|
-
@changed_columns << column if !changed_columns.include?(column)
|
18
|
+
@changed_columns = changed_columns | [column, column_with_locale]
|
22
19
|
end
|
23
20
|
super(value, **options)
|
24
21
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Mobility
|
2
|
+
module Sequel
|
3
|
+
=begin
|
4
|
+
|
5
|
+
Internal class used to initialize column value(s) by default to a hash.
|
6
|
+
|
7
|
+
=end
|
8
|
+
class HashInitializer < Module
|
9
|
+
def initialize(*columns)
|
10
|
+
class_eval <<-EOM, __FILE__, __LINE__ + 1
|
11
|
+
def initialize_set(values)
|
12
|
+
#{columns.map { |c| "self[:#{c}] = {}" }.join(';')}
|
13
|
+
super
|
14
|
+
end
|
15
|
+
EOM
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/mobility/util.rb
CHANGED
data/lib/mobility/version.rb
CHANGED
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: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Salzberg
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
eGDROPZoL5RXwiOnRbexxa7dcAxMrDfGB/hpiunIPWPsi4n5P7K/6OO/sGVMl9xv
|
31
31
|
SZBPXjzrHdyOFLBYXB+PG7s3F/4=
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date:
|
33
|
+
date: 2018-01-24 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: request_store
|
@@ -184,6 +184,8 @@ files:
|
|
184
184
|
- lib/mobility/backends/active_record.rb
|
185
185
|
- lib/mobility/backends/active_record/column.rb
|
186
186
|
- lib/mobility/backends/active_record/column/query_methods.rb
|
187
|
+
- lib/mobility/backends/active_record/container.rb
|
188
|
+
- lib/mobility/backends/active_record/container/query_methods.rb
|
187
189
|
- lib/mobility/backends/active_record/hstore.rb
|
188
190
|
- lib/mobility/backends/active_record/hstore/query_methods.rb
|
189
191
|
- lib/mobility/backends/active_record/jsonb.rb
|
@@ -191,12 +193,14 @@ files:
|
|
191
193
|
- lib/mobility/backends/active_record/key_value.rb
|
192
194
|
- lib/mobility/backends/active_record/key_value/query_methods.rb
|
193
195
|
- lib/mobility/backends/active_record/pg_hash.rb
|
196
|
+
- lib/mobility/backends/active_record/pg_query_methods.rb
|
194
197
|
- lib/mobility/backends/active_record/query_methods.rb
|
195
198
|
- lib/mobility/backends/active_record/serialized.rb
|
196
199
|
- lib/mobility/backends/active_record/serialized/query_methods.rb
|
197
200
|
- lib/mobility/backends/active_record/table.rb
|
198
201
|
- lib/mobility/backends/active_record/table/query_methods.rb
|
199
202
|
- lib/mobility/backends/column.rb
|
203
|
+
- lib/mobility/backends/container.rb
|
200
204
|
- lib/mobility/backends/hash_valued.rb
|
201
205
|
- lib/mobility/backends/hstore.rb
|
202
206
|
- lib/mobility/backends/jsonb.rb
|
@@ -205,6 +209,8 @@ files:
|
|
205
209
|
- lib/mobility/backends/sequel.rb
|
206
210
|
- lib/mobility/backends/sequel/column.rb
|
207
211
|
- lib/mobility/backends/sequel/column/query_methods.rb
|
212
|
+
- lib/mobility/backends/sequel/container.rb
|
213
|
+
- lib/mobility/backends/sequel/container/query_methods.rb
|
208
214
|
- lib/mobility/backends/sequel/hstore.rb
|
209
215
|
- lib/mobility/backends/sequel/hstore/query_methods.rb
|
210
216
|
- lib/mobility/backends/sequel/jsonb.rb
|
@@ -212,7 +218,7 @@ files:
|
|
212
218
|
- lib/mobility/backends/sequel/key_value.rb
|
213
219
|
- lib/mobility/backends/sequel/key_value/query_methods.rb
|
214
220
|
- lib/mobility/backends/sequel/pg_hash.rb
|
215
|
-
- lib/mobility/backends/sequel/
|
221
|
+
- lib/mobility/backends/sequel/pg_query_methods.rb
|
216
222
|
- lib/mobility/backends/sequel/query_methods.rb
|
217
223
|
- lib/mobility/backends/sequel/serialized.rb
|
218
224
|
- lib/mobility/backends/sequel/serialized/query_methods.rb
|
@@ -242,6 +248,7 @@ files:
|
|
242
248
|
- lib/mobility/sequel.rb
|
243
249
|
- lib/mobility/sequel/backend_resetter.rb
|
244
250
|
- lib/mobility/sequel/column_changes.rb
|
251
|
+
- lib/mobility/sequel/hash_initializer.rb
|
245
252
|
- lib/mobility/sequel/model_translation.rb
|
246
253
|
- lib/mobility/sequel/string_translation.rb
|
247
254
|
- lib/mobility/sequel/text_translation.rb
|
@@ -276,7 +283,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
276
283
|
requirements:
|
277
284
|
- - ">="
|
278
285
|
- !ruby/object:Gem::Version
|
279
|
-
version: 2.2.
|
286
|
+
version: 2.2.9
|
280
287
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
281
288
|
requirements:
|
282
289
|
- - ">="
|