mobility 0.1.20 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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
  - - ">="