mobility 0.1.20 → 0.2.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.
Files changed (110) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +2 -0
  4. data/CHANGELOG.md +17 -0
  5. data/CONTRIBUTING.md +55 -0
  6. data/Gemfile +2 -0
  7. data/Gemfile.lock +2 -56
  8. data/README.md +64 -15
  9. data/Rakefile +17 -17
  10. data/lib/mobility.rb +43 -40
  11. data/lib/mobility/active_model.rb +0 -1
  12. data/lib/mobility/active_model/backend_resetter.rb +1 -1
  13. data/lib/mobility/active_record.rb +8 -15
  14. data/lib/mobility/active_record/backend_resetter.rb +2 -0
  15. data/lib/mobility/active_record/model_translation.rb +1 -1
  16. data/lib/mobility/active_record/string_translation.rb +2 -0
  17. data/lib/mobility/active_record/text_translation.rb +2 -0
  18. data/lib/mobility/attributes.rb +74 -71
  19. data/lib/mobility/backend.rb +64 -25
  20. data/lib/mobility/backend/orm_delegator.rb +17 -7
  21. data/lib/mobility/backend/stringify_locale.rb +18 -0
  22. data/lib/mobility/backend_resetter.rb +8 -5
  23. data/lib/mobility/backends.rb +4 -0
  24. data/lib/mobility/backends/active_record.rb +20 -0
  25. data/lib/mobility/{backend → backends}/active_record/column.rb +25 -13
  26. data/lib/mobility/{backend → backends}/active_record/column/query_methods.rb +5 -3
  27. data/lib/mobility/backends/active_record/hstore.rb +29 -0
  28. data/lib/mobility/{backend → backends}/active_record/hstore/query_methods.rb +2 -2
  29. data/lib/mobility/{backend → backends}/active_record/jsonb.rb +6 -6
  30. data/lib/mobility/{backend → backends}/active_record/jsonb/query_methods.rb +4 -2
  31. data/lib/mobility/{backend → backends}/active_record/key_value.rb +10 -44
  32. data/lib/mobility/{backend → backends}/active_record/key_value/query_methods.rb +4 -2
  33. data/lib/mobility/{backend/active_record/hash_valued.rb → backends/active_record/pg_hash.rb} +13 -21
  34. data/lib/mobility/{backend → backends}/active_record/query_methods.rb +2 -2
  35. data/lib/mobility/{backend → backends}/active_record/serialized.rb +12 -28
  36. data/lib/mobility/{backend → backends}/active_record/serialized/query_methods.rb +5 -8
  37. data/lib/mobility/{backend → backends}/active_record/table.rb +11 -60
  38. data/lib/mobility/{backend → backends}/active_record/table/query_methods.rb +5 -3
  39. data/lib/mobility/{backend → backends}/column.rb +8 -4
  40. data/lib/mobility/backends/hash_valued.rb +29 -0
  41. data/lib/mobility/{backend → backends}/hstore.rb +4 -4
  42. data/lib/mobility/{backend → backends}/jsonb.rb +4 -4
  43. data/lib/mobility/backends/key_value.rb +111 -0
  44. data/lib/mobility/{backend → backends}/null.rb +4 -4
  45. data/lib/mobility/backends/sequel.rb +20 -0
  46. data/lib/mobility/backends/sequel/column.rb +52 -0
  47. data/lib/mobility/{backend → backends}/sequel/column/query_methods.rb +5 -3
  48. data/lib/mobility/backends/sequel/hstore.rb +29 -0
  49. data/lib/mobility/{backend → backends}/sequel/hstore/query_methods.rb +4 -3
  50. data/lib/mobility/{backend → backends}/sequel/jsonb.rb +6 -6
  51. data/lib/mobility/{backend → backends}/sequel/jsonb/query_methods.rb +4 -3
  52. data/lib/mobility/{backend → backends}/sequel/key_value.rb +28 -39
  53. data/lib/mobility/{backend → backends}/sequel/key_value/query_methods.rb +4 -5
  54. data/lib/mobility/backends/sequel/pg_hash.rb +46 -0
  55. data/lib/mobility/{backend → backends}/sequel/postgres_query_methods.rb +1 -2
  56. data/lib/mobility/{backend → backends}/sequel/query_methods.rb +6 -4
  57. data/lib/mobility/{backend → backends}/sequel/serialized.rb +17 -38
  58. data/lib/mobility/backends/sequel/serialized/query_methods.rb +17 -0
  59. data/lib/mobility/{backend → backends}/sequel/table.rb +29 -60
  60. data/lib/mobility/{backend → backends}/sequel/table/query_methods.rb +5 -3
  61. data/lib/mobility/{backend → backends}/serialized.rb +27 -5
  62. data/lib/mobility/{backend → backends}/table.rb +69 -29
  63. data/lib/mobility/configuration.rb +40 -0
  64. data/lib/mobility/{orm.rb → loaded.rb} +0 -0
  65. data/lib/mobility/plugins.rb +35 -0
  66. data/lib/mobility/plugins/active_model.rb +6 -0
  67. data/lib/mobility/plugins/active_model/dirty.rb +81 -0
  68. data/lib/mobility/plugins/active_record.rb +6 -0
  69. data/lib/mobility/plugins/active_record/dirty.rb +59 -0
  70. data/lib/mobility/plugins/cache.rb +54 -0
  71. data/lib/mobility/plugins/cache/translation_cacher.rb +40 -0
  72. data/lib/mobility/plugins/default.rb +73 -0
  73. data/lib/mobility/plugins/dirty.rb +61 -0
  74. data/lib/mobility/{backend → plugins}/fallbacks.rb +36 -31
  75. data/lib/mobility/plugins/fallthrough_accessors.rb +66 -0
  76. data/lib/mobility/plugins/locale_accessors.rb +84 -0
  77. data/lib/mobility/{backend → plugins}/presence.rb +15 -6
  78. data/lib/mobility/plugins/sequel.rb +6 -0
  79. data/lib/mobility/plugins/sequel/dirty.rb +59 -0
  80. data/lib/mobility/sequel.rb +5 -14
  81. data/lib/mobility/sequel/backend_resetter.rb +4 -6
  82. data/lib/mobility/sequel/column_changes.rb +4 -4
  83. data/lib/mobility/sequel/model_translation.rb +1 -1
  84. data/lib/mobility/sequel/string_translation.rb +2 -0
  85. data/lib/mobility/sequel/text_translation.rb +2 -0
  86. data/lib/mobility/translates.rb +1 -5
  87. data/lib/mobility/util.rb +126 -0
  88. data/lib/mobility/version.rb +1 -1
  89. data/lib/mobility/wrapper.rb +1 -1
  90. data/lib/rails/generators/mobility/translations_generator.rb +7 -3
  91. metadata +85 -55
  92. metadata.gz.sig +0 -0
  93. data/lib/mobility/backend/active_model.rb +0 -7
  94. data/lib/mobility/backend/active_model/dirty.rb +0 -95
  95. data/lib/mobility/backend/active_record.rb +0 -29
  96. data/lib/mobility/backend/active_record/dirty.rb +0 -54
  97. data/lib/mobility/backend/active_record/hstore.rb +0 -29
  98. data/lib/mobility/backend/cache.rb +0 -117
  99. data/lib/mobility/backend/dirty.rb +0 -38
  100. data/lib/mobility/backend/key_value.rb +0 -85
  101. data/lib/mobility/backend/sequel.rb +0 -29
  102. data/lib/mobility/backend/sequel/column.rb +0 -39
  103. data/lib/mobility/backend/sequel/dirty.rb +0 -57
  104. data/lib/mobility/backend/sequel/hash_valued.rb +0 -51
  105. data/lib/mobility/backend/sequel/hstore.rb +0 -29
  106. data/lib/mobility/backend/sequel/serialized/query_methods.rb +0 -20
  107. data/lib/mobility/core_ext/object.rb +0 -30
  108. data/lib/mobility/core_ext/string.rb +0 -16
  109. data/lib/mobility/fallthrough_accessors.rb +0 -57
  110. data/lib/mobility/locale_accessors.rb +0 -55
@@ -5,22 +5,13 @@ Module loading Sequel-specific classes for Mobility models.
5
5
 
6
6
  =end
7
7
  module Sequel
8
- autoload :BackendResetter, "mobility/sequel/backend_resetter"
9
- autoload :ColumnChanges, "mobility/sequel/column_changes"
10
- autoload :ModelTranslation, "mobility/sequel/model_translation"
11
- autoload :StringTranslation, "mobility/sequel/string_translation"
12
- autoload :TextTranslation, "mobility/sequel/text_translation"
13
- autoload :Translation, "mobility/sequel/translation"
14
-
15
8
  def self.included(model_class)
16
- model_class.extend(ClassMethods)
17
- end
18
-
19
- module ClassMethods
20
- # @return [Sequel::Dataset] dataset extended with Mobility query methods.
21
- define_method ::Mobility.query_method do
22
- dataset
9
+ query_method = Module.new do
10
+ define_method Mobility.query_method do
11
+ dataset
12
+ end
23
13
  end
14
+ model_class.extend query_method
24
15
  end
25
16
  end
26
17
  end
@@ -12,14 +12,12 @@ method is called.
12
12
  def included(model_class)
13
13
  model_reset_method = @model_reset_method
14
14
 
15
- model_class.class_eval do
16
- mod = Module.new do
17
- define_method :refresh do
18
- super().tap { instance_eval(&model_reset_method) }
19
- end
15
+ mod = Module.new do
16
+ define_method :refresh do
17
+ super().tap { instance_eval(&model_reset_method) }
20
18
  end
21
- include mod
22
19
  end
20
+ model_class.include mod
23
21
  end
24
22
  end
25
23
  end
@@ -2,8 +2,8 @@ module Mobility
2
2
  module Sequel
3
3
  =begin
4
4
 
5
- Internal class used to force Sequel model to notice changes when +mobility_set+
6
- is called.
5
+ Internal class used to force Sequel model to notice changes when mobility
6
+ setter method is called.
7
7
 
8
8
  =end
9
9
  class ColumnChanges < Module
@@ -12,8 +12,8 @@ is called.
12
12
  @attributes = attributes
13
13
 
14
14
  attributes.each do |attribute|
15
- define_method "#{attribute}=" do |value, **options|
16
- if send(attribute) != value
15
+ define_method "#{attribute}=".freeze do |value, **options|
16
+ if !options[:super] && send(attribute) != value
17
17
  locale = options[:locale] || Mobility.locale
18
18
  column = attribute.to_sym
19
19
  column_with_locale = :"#{attribute}_#{Mobility.normalize_locale(locale)}"
@@ -3,7 +3,7 @@ module Mobility
3
3
  =begin
4
4
 
5
5
  Module included in translation class dynamically generated by
6
- {Backend::Sequel::Table} backend.
6
+ {Backends::Sequel::Table} backend.
7
7
 
8
8
  =end
9
9
  module ModelTranslation
@@ -1,3 +1,5 @@
1
+ require "mobility/sequel/translation"
2
+
1
3
  module Mobility
2
4
  module Sequel
3
5
  class StringTranslation < ::Sequel::Model(:mobility_string_translations)
@@ -1,3 +1,5 @@
1
+ require "mobility/sequel/translation"
2
+
1
3
  module Mobility
2
4
  module Sequel
3
5
  class TextTranslation < ::Sequel::Model(:mobility_text_translations)
@@ -61,12 +61,8 @@ passed to accessors to configure backend (see example below).
61
61
  %w[accessor reader writer].each do |method|
62
62
  class_eval <<-EOM, __FILE__, __LINE__ + 1
63
63
  def mobility_#{method}(*args, **options, &block)
64
- attributes = Attributes.new(:#{method}, *args, options.merge(model_class: self))
64
+ attributes = Attributes.new(*args, method: :#{method}, **options)
65
65
  attributes.backend.instance_eval(&block) if block_given?
66
- attributes.each do |attribute|
67
- alias_method "\#{attribute}_before_mobility", attribute if method_defined?(attribute) && #{%w[accessor reader].include? method}
68
- alias_method "\#{attribute}_before_mobility=", "\#{attribute}=" if method_defined?("\#{attribute}=") && #{%w[accessor writer].include? method}
69
- end
70
66
  include attributes
71
67
  end
72
68
  EOM
@@ -0,0 +1,126 @@
1
+ require "singleton"
2
+
3
+ module Mobility
4
+ =begin
5
+
6
+ Some useful methods on strings, borrowed in parts from Sequel and ActiveSupport.
7
+
8
+ @example With no methods defined on String
9
+ "foos".respond_to?(:singularize)
10
+ #=> false
11
+
12
+ class A
13
+ include Mobility::Util
14
+ end
15
+
16
+ A.new.singularize("foos")
17
+ #=> "foo"
18
+ A.new.singularize("bunnies")
19
+ #=> "bunnie"
20
+
21
+ @example With methods on String
22
+ require "active_support"
23
+ "foos".respond_to?(:singularize)
24
+ #=> true
25
+
26
+ class A
27
+ include Mobility::Util
28
+ end
29
+
30
+ A.new.singularize("bunnies")
31
+ #=> "bunny"
32
+ =end
33
+ module Util
34
+ VALID_CONSTANT_NAME_REGEXP = /\A(?:::)?([A-Z]\w*(?:::[A-Z]\w*)*)\z/.freeze
35
+
36
+ def self.included(klass)
37
+ klass.extend(self)
38
+ end
39
+
40
+ # Converts strings to UpperCamelCase.
41
+ # @param [String] str
42
+ # @return [String]
43
+ def camelize(str)
44
+ call_or_yield str do
45
+ str.to_s.sub(/^[a-z\d]*/) { $&.capitalize }.gsub(/(?:_|(\/))([a-z\d]*)/) { "#{$1}#{$2.capitalize}" }.gsub('/'.freeze, '::'.freeze)
46
+ end
47
+ end
48
+
49
+ # Tries to find a constant with the name specified in the argument string.
50
+ # @param [String] str
51
+ # @return [Object]
52
+ def constantize(str)
53
+ str = str.to_s
54
+ call_or_yield str do
55
+ raise(NameError, "#{s.inspect} is not a valid constant name!") unless m = VALID_CONSTANT_NAME_REGEXP.match(str)
56
+ Object.module_eval("::#{m[1]}", __FILE__, __LINE__)
57
+ end
58
+ end
59
+
60
+ # Returns the singular form of a word in a string.
61
+ # @param [String] str
62
+ # @return [String]
63
+ # @note If +singularize+ is not defined on +String+, falls back to simply
64
+ # stripping the trailing 's' from the string.
65
+ def singularize(str)
66
+ call_or_yield str do
67
+ str.to_s.gsub(/s$/, '')
68
+ end
69
+ end
70
+
71
+ # Removes the module part from the expression in the string.
72
+ # @param [String] str
73
+ # @return [String]
74
+ def demodulize(str)
75
+ call_or_yield str do
76
+ str.to_s.gsub(/^.*::/, '')
77
+ end
78
+ end
79
+
80
+ # Creates a foreign key name from a class name
81
+ # @param [String] str
82
+ # @return [String]
83
+ def foreign_key(str)
84
+ call_or_yield str do
85
+ "#{underscore(demodulize(str))}_id"
86
+ end
87
+ end
88
+
89
+ # Makes an underscored, lowercase form from the expression in the string.
90
+ # @param [String] str
91
+ # @return [String]
92
+ def underscore(str)
93
+ call_or_yield str do
94
+ str.to_s.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
95
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').tr("-", "_").downcase
96
+ end
97
+ end
98
+
99
+ def present?(object)
100
+ !blank?(object)
101
+ end
102
+
103
+ def blank?(object)
104
+ return true if object.nil?
105
+ object.respond_to?(:empty?) ? !!object.empty? : !object
106
+ end
107
+
108
+ def presence(object)
109
+ object if present?(object)
110
+ end
111
+
112
+ private
113
+
114
+ # Calls caller method on object if defined, otherwise yields to block
115
+ def call_or_yield(object)
116
+ caller_method = caller_locations(1,1)[0].label
117
+ if object.respond_to?(caller_method)
118
+ object.public_send(caller_method)
119
+ else
120
+ yield
121
+ end
122
+ end
123
+
124
+ extend self
125
+ end
126
+ end
@@ -1,3 +1,3 @@
1
1
  module Mobility
2
- VERSION = "0.1.20"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -19,7 +19,7 @@ simple delegator, so any missing method will be delegated to the model class.
19
19
 
20
20
  # @return [Array<String>] Translated attributes defined on model
21
21
  def translated_attribute_names
22
- modules.map(&:attributes).flatten
22
+ modules.map(&:names).flatten
23
23
  end
24
24
 
25
25
  # Appends backend module to +modules+ array for later reference.
@@ -52,10 +52,14 @@ Other backends are not supported, for obvious reasons:
52
52
  if SUPPORTED_BACKENDS.include?(value)
53
53
  require_relative "./backend_generators/#{value}_backend".freeze
54
54
  Mobility::BackendGenerators.const_get("#{value}_backend".camelcase.freeze)
55
- elsif Mobility::Backend.const_get(value.to_s.camelize.gsub(/\s+/, ''.freeze))
56
- raise Thor::Error, "The #{value} backend does not have a translations generator."
57
55
  else
58
- raise Thor::Error, "#{value} is not a Mobility backend."
56
+ begin
57
+ require "mobility/backends/#{value}"
58
+ raise Thor::Error, "The #{value} backend does not have a translations generator."
59
+ rescue LoadError => e
60
+ raise unless e.message =~ /#{value}/
61
+ raise Thor::Error, "#{value} is not a Mobility backend."
62
+ end
59
63
  end
60
64
  else
61
65
  super
metadata CHANGED
@@ -1,14 +1,36 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mobility
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.20
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Salzberg
8
8
  autorequire:
9
9
  bindir: exe
10
- cert_chain: []
11
- date: 2017-07-22 00:00:00.000000000 Z
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDcDCCAligAwIBAgIBATANBgkqhkiG9w0BAQUFADA/MQ4wDAYDVQQDDAVjaHJp
14
+ czEYMBYGCgmSJomT8ixkARkWCGRlamltYXRhMRMwEQYKCZImiZPyLGQBGRYDY29t
15
+ MB4XDTE3MDgxMTE0NDU0N1oXDTE4MDgxMTE0NDU0N1owPzEOMAwGA1UEAwwFY2hy
16
+ aXMxGDAWBgoJkiaJk/IsZAEZFghkZWppbWF0YTETMBEGCgmSJomT8ixkARkWA2Nv
17
+ bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK4/1rb97IE2+aDbwqO0
18
+ BdbiS9QONr9mZRyTCSVkKh4XY+Ex3XzoJSK/qj0E6eRb2K8Lsc8JNZra+1h6do8H
19
+ dkl+GfFcHnWVuDkt17YcZuK/uAaxFOlWGVbFIdGxYz94rBddWGh3bOxqQGr3YtdD
20
+ Ajj1foUnsPmxQ0j8p8vAJhHM0h0MTyphFxMT5xTDJkprVQOiktfWQBL+76jx/UQ4
21
+ UXczbSgaObaUzvNM7ggi7+PPNG4S39SafjQ0MM/QvBZ31B6tN1KuzluKFhAMC+sH
22
+ NofRUmYbrjZiCId6WCepJz48/fel6BtQ8CQGcQShx+eYOKEWRBiDkhpIil5JVaxi
23
+ NucCAwEAAaN3MHUwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFAzG
24
+ 77899+wndUmwUTLUD8z+YnnwMB0GA1UdEQQWMBSBEmNocmlzQGRlamltYXRhLmNv
25
+ bTAdBgNVHRIEFjAUgRJjaHJpc0BkZWppbWF0YS5jb20wDQYJKoZIhvcNAQEFBQAD
26
+ ggEBAGP58/sXe/VX8dZ74Ih5VscaWOHZqfT5VzsremZS2899Mf+MaSDhMmdYx8b7
27
+ e8Muzpi0V7EIbP0+QeocepYHugyodeoKerqaLEPQ0yCbUbfNAZd9HwkpFbd8hA/J
28
+ Nt2Az+BsBS0COBZKnruEqXA2AbrDua/ifSAjQMPBKCJ8nPQqRQf5A1hcP71yO3du
29
+ 8t13MBd1vS8/4nYUoCQnOCTA8A1Lj6RSbQWyS1zZHq7hDm9hmgvvcIMGOkBCcFhy
30
+ eGDROPZoL5RXwiOnRbexxa7dcAxMrDfGB/hpiunIPWPsi4n5P7K/6OO/sGVMl9xv
31
+ SZBPXjzrHdyOFLBYXB+PG7s3F/4=
32
+ -----END CERTIFICATE-----
33
+ date: 2017-08-13 00:00:00.000000000 Z
12
34
  dependencies:
13
35
  - !ruby/object:Gem::Dependency
14
36
  name: request_store
@@ -129,6 +151,7 @@ extensions: []
129
151
  extra_rdoc_files: []
130
152
  files:
131
153
  - CHANGELOG.md
154
+ - CONTRIBUTING.md
132
155
  - Gemfile
133
156
  - Gemfile.lock
134
157
  - Guardfile
@@ -148,60 +171,66 @@ files:
148
171
  - lib/mobility/active_record/uniqueness_validator.rb
149
172
  - lib/mobility/attributes.rb
150
173
  - lib/mobility/backend.rb
151
- - lib/mobility/backend/active_model.rb
152
- - lib/mobility/backend/active_model/dirty.rb
153
- - lib/mobility/backend/active_record.rb
154
- - lib/mobility/backend/active_record/column.rb
155
- - lib/mobility/backend/active_record/column/query_methods.rb
156
- - lib/mobility/backend/active_record/dirty.rb
157
- - lib/mobility/backend/active_record/hash_valued.rb
158
- - lib/mobility/backend/active_record/hstore.rb
159
- - lib/mobility/backend/active_record/hstore/query_methods.rb
160
- - lib/mobility/backend/active_record/jsonb.rb
161
- - lib/mobility/backend/active_record/jsonb/query_methods.rb
162
- - lib/mobility/backend/active_record/key_value.rb
163
- - lib/mobility/backend/active_record/key_value/query_methods.rb
164
- - lib/mobility/backend/active_record/query_methods.rb
165
- - lib/mobility/backend/active_record/serialized.rb
166
- - lib/mobility/backend/active_record/serialized/query_methods.rb
167
- - lib/mobility/backend/active_record/table.rb
168
- - lib/mobility/backend/active_record/table/query_methods.rb
169
- - lib/mobility/backend/cache.rb
170
- - lib/mobility/backend/column.rb
171
- - lib/mobility/backend/dirty.rb
172
- - lib/mobility/backend/fallbacks.rb
173
- - lib/mobility/backend/hstore.rb
174
- - lib/mobility/backend/jsonb.rb
175
- - lib/mobility/backend/key_value.rb
176
- - lib/mobility/backend/null.rb
177
174
  - lib/mobility/backend/orm_delegator.rb
178
- - lib/mobility/backend/presence.rb
179
- - lib/mobility/backend/sequel.rb
180
- - lib/mobility/backend/sequel/column.rb
181
- - lib/mobility/backend/sequel/column/query_methods.rb
182
- - lib/mobility/backend/sequel/dirty.rb
183
- - lib/mobility/backend/sequel/hash_valued.rb
184
- - lib/mobility/backend/sequel/hstore.rb
185
- - lib/mobility/backend/sequel/hstore/query_methods.rb
186
- - lib/mobility/backend/sequel/jsonb.rb
187
- - lib/mobility/backend/sequel/jsonb/query_methods.rb
188
- - lib/mobility/backend/sequel/key_value.rb
189
- - lib/mobility/backend/sequel/key_value/query_methods.rb
190
- - lib/mobility/backend/sequel/postgres_query_methods.rb
191
- - lib/mobility/backend/sequel/query_methods.rb
192
- - lib/mobility/backend/sequel/serialized.rb
193
- - lib/mobility/backend/sequel/serialized/query_methods.rb
194
- - lib/mobility/backend/sequel/table.rb
195
- - lib/mobility/backend/sequel/table/query_methods.rb
196
- - lib/mobility/backend/serialized.rb
197
- - lib/mobility/backend/table.rb
175
+ - lib/mobility/backend/stringify_locale.rb
198
176
  - lib/mobility/backend_resetter.rb
177
+ - lib/mobility/backends.rb
178
+ - lib/mobility/backends/active_record.rb
179
+ - lib/mobility/backends/active_record/column.rb
180
+ - lib/mobility/backends/active_record/column/query_methods.rb
181
+ - lib/mobility/backends/active_record/hstore.rb
182
+ - lib/mobility/backends/active_record/hstore/query_methods.rb
183
+ - lib/mobility/backends/active_record/jsonb.rb
184
+ - lib/mobility/backends/active_record/jsonb/query_methods.rb
185
+ - lib/mobility/backends/active_record/key_value.rb
186
+ - lib/mobility/backends/active_record/key_value/query_methods.rb
187
+ - lib/mobility/backends/active_record/pg_hash.rb
188
+ - lib/mobility/backends/active_record/query_methods.rb
189
+ - lib/mobility/backends/active_record/serialized.rb
190
+ - lib/mobility/backends/active_record/serialized/query_methods.rb
191
+ - lib/mobility/backends/active_record/table.rb
192
+ - lib/mobility/backends/active_record/table/query_methods.rb
193
+ - lib/mobility/backends/column.rb
194
+ - lib/mobility/backends/hash_valued.rb
195
+ - lib/mobility/backends/hstore.rb
196
+ - lib/mobility/backends/jsonb.rb
197
+ - lib/mobility/backends/key_value.rb
198
+ - lib/mobility/backends/null.rb
199
+ - lib/mobility/backends/sequel.rb
200
+ - lib/mobility/backends/sequel/column.rb
201
+ - lib/mobility/backends/sequel/column/query_methods.rb
202
+ - lib/mobility/backends/sequel/hstore.rb
203
+ - lib/mobility/backends/sequel/hstore/query_methods.rb
204
+ - lib/mobility/backends/sequel/jsonb.rb
205
+ - lib/mobility/backends/sequel/jsonb/query_methods.rb
206
+ - lib/mobility/backends/sequel/key_value.rb
207
+ - lib/mobility/backends/sequel/key_value/query_methods.rb
208
+ - lib/mobility/backends/sequel/pg_hash.rb
209
+ - lib/mobility/backends/sequel/postgres_query_methods.rb
210
+ - lib/mobility/backends/sequel/query_methods.rb
211
+ - lib/mobility/backends/sequel/serialized.rb
212
+ - lib/mobility/backends/sequel/serialized/query_methods.rb
213
+ - lib/mobility/backends/sequel/table.rb
214
+ - lib/mobility/backends/sequel/table/query_methods.rb
215
+ - lib/mobility/backends/serialized.rb
216
+ - lib/mobility/backends/table.rb
199
217
  - lib/mobility/configuration.rb
200
- - lib/mobility/core_ext/object.rb
201
- - lib/mobility/core_ext/string.rb
202
- - lib/mobility/fallthrough_accessors.rb
203
- - lib/mobility/locale_accessors.rb
204
- - lib/mobility/orm.rb
218
+ - lib/mobility/loaded.rb
219
+ - lib/mobility/plugins.rb
220
+ - lib/mobility/plugins/active_model.rb
221
+ - lib/mobility/plugins/active_model/dirty.rb
222
+ - lib/mobility/plugins/active_record.rb
223
+ - lib/mobility/plugins/active_record/dirty.rb
224
+ - lib/mobility/plugins/cache.rb
225
+ - lib/mobility/plugins/cache/translation_cacher.rb
226
+ - lib/mobility/plugins/default.rb
227
+ - lib/mobility/plugins/dirty.rb
228
+ - lib/mobility/plugins/fallbacks.rb
229
+ - lib/mobility/plugins/fallthrough_accessors.rb
230
+ - lib/mobility/plugins/locale_accessors.rb
231
+ - lib/mobility/plugins/presence.rb
232
+ - lib/mobility/plugins/sequel.rb
233
+ - lib/mobility/plugins/sequel/dirty.rb
205
234
  - lib/mobility/sequel.rb
206
235
  - lib/mobility/sequel/backend_resetter.rb
207
236
  - lib/mobility/sequel/column_changes.rb
@@ -210,6 +239,7 @@ files:
210
239
  - lib/mobility/sequel/text_translation.rb
211
240
  - lib/mobility/sequel/translation.rb
212
241
  - lib/mobility/translates.rb
242
+ - lib/mobility/util.rb
213
243
  - lib/mobility/version.rb
214
244
  - lib/mobility/wrapper.rb
215
245
  - lib/rails/generators/mobility/active_record_migration_compatibility.rb
@@ -238,7 +268,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
238
268
  requirements:
239
269
  - - ">="
240
270
  - !ruby/object:Gem::Version
241
- version: 2.0.0
271
+ version: 2.2.7
242
272
  required_rubygems_version: !ruby/object:Gem::Requirement
243
273
  requirements:
244
274
  - - ">="