mobility 0.1.17 → 0.1.18

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4b2c85161a42ab2c88e2794d754ce12233267609
4
- data.tar.gz: cae36c91d8ebcaa6e626a1409b6b28acd2e123d5
3
+ metadata.gz: 608d78d453d3a4a8c70d081851ad41b7469ea359
4
+ data.tar.gz: 25a56ec92b1f17a64b0f7ff2305709ac461a0b21
5
5
  SHA512:
6
- metadata.gz: 74dc7a52f90f4949bbe061e34dbcead628fbeba9e04582d687f1db0930b4bcdf19cc69e3e6fcb397a47d6e30f5311dc71cf4254152d544ac77cd6d5770022979
7
- data.tar.gz: 47b403bd4f85a0401a662eb5ff69233eca34a6965ed8f9d8a0c82480622d6e41abf623f7efed257db8e8b978a28144d7eba56238ef8692c8b6b25665090d23c7
6
+ metadata.gz: 0ee3ca1d2c69def85e662c064809c611cd1f93f4ec512ba85fdd011b4349de739175421cd6a1658060691e8ff8122c808056c254c24bfba2c7bfc803fd1fad7e
7
+ data.tar.gz: 4d32541308d245ea15bc1a2867876448e5fc637c30a794127807c5f63789c21f0f221160a54264777866a07416c7e09ff6d1d5df4e223ad3de74459fd54d788b
data/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## 0.1
4
4
 
5
+ ### 0.1.18 (June 21, 2017)
6
+ * Fix deprecation warnings when using ActiveRecord 5.1
7
+ ([#44](https://github.com/shioyama/mobility/pull/44))
8
+
5
9
  ### 0.1.17 (June 16, 2017)
6
10
  * Fix STI issues ([#43](https://github.com/shioyama/mobility/pull/43))
7
11
 
data/Gemfile.lock CHANGED
@@ -1,45 +1,45 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mobility (0.1.16)
4
+ mobility (0.1.17)
5
5
  i18n (>= 0.6.10, < 0.9)
6
6
  request_store (~> 1.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- actionpack (5.0.3)
12
- actionview (= 5.0.3)
13
- activesupport (= 5.0.3)
11
+ actionpack (5.1.1)
12
+ actionview (= 5.1.1)
13
+ activesupport (= 5.1.1)
14
14
  rack (~> 2.0)
15
15
  rack-test (~> 0.6.3)
16
16
  rails-dom-testing (~> 2.0)
17
17
  rails-html-sanitizer (~> 1.0, >= 1.0.2)
18
- actionview (5.0.3)
19
- activesupport (= 5.0.3)
18
+ actionview (5.1.1)
19
+ activesupport (= 5.1.1)
20
20
  builder (~> 3.1)
21
- erubis (~> 2.7.0)
21
+ erubi (~> 1.4)
22
22
  rails-dom-testing (~> 2.0)
23
23
  rails-html-sanitizer (~> 1.0, >= 1.0.3)
24
- activemodel (5.0.3)
25
- activesupport (= 5.0.3)
26
- activerecord (5.0.3)
27
- activemodel (= 5.0.3)
28
- activesupport (= 5.0.3)
29
- arel (~> 7.0)
30
- activesupport (5.0.3)
24
+ activemodel (5.1.1)
25
+ activesupport (= 5.1.1)
26
+ activerecord (5.1.1)
27
+ activemodel (= 5.1.1)
28
+ activesupport (= 5.1.1)
29
+ arel (~> 8.0)
30
+ activesupport (5.1.1)
31
31
  concurrent-ruby (~> 1.0, >= 1.0.2)
32
32
  i18n (~> 0.7)
33
33
  minitest (~> 5.1)
34
34
  tzinfo (~> 1.1)
35
- arel (7.1.4)
35
+ arel (8.0.0)
36
36
  builder (3.2.3)
37
37
  byebug (9.0.6)
38
38
  coderay (1.1.1)
39
39
  concurrent-ruby (1.0.5)
40
40
  database_cleaner (1.6.1)
41
41
  diff-lcs (1.3)
42
- erubis (2.7.0)
42
+ erubi (1.6.0)
43
43
  ffi (1.9.18)
44
44
  formatador (0.2.5)
45
45
  generator_spec (0.9.4)
@@ -59,7 +59,7 @@ GEM
59
59
  guard (~> 2.1)
60
60
  guard-compat (~> 1.1)
61
61
  rspec (>= 2.99.0, < 4.0)
62
- i18n (0.8.1)
62
+ i18n (0.8.4)
63
63
  listen (3.1.5)
64
64
  rb-fsevent (~> 0.9, >= 0.9.4)
65
65
  rb-inotify (~> 0.9, >= 0.9.7)
@@ -77,7 +77,7 @@ GEM
77
77
  notiffany (0.1.1)
78
78
  nenv (~> 0.1)
79
79
  shellany (~> 0.0)
80
- pg (0.20.0)
80
+ pg (0.21.0)
81
81
  pry (0.10.4)
82
82
  coderay (~> 1.1.0)
83
83
  method_source (~> 0.8.1)
@@ -93,16 +93,16 @@ GEM
93
93
  nokogiri (>= 1.6)
94
94
  rails-html-sanitizer (1.0.3)
95
95
  loofah (~> 2.0)
96
- railties (5.0.3)
97
- actionpack (= 5.0.3)
98
- activesupport (= 5.0.3)
96
+ railties (5.1.1)
97
+ actionpack (= 5.1.1)
98
+ activesupport (= 5.1.1)
99
99
  method_source
100
100
  rake (>= 0.8.7)
101
101
  thor (>= 0.18.1, < 2.0)
102
102
  rake (10.5.0)
103
103
  rb-fsevent (0.9.8)
104
- rb-inotify (0.9.8)
105
- ffi (>= 0.5.0)
104
+ rb-inotify (0.9.10)
105
+ ffi (>= 0.5.0, < 2)
106
106
  request_store (1.3.2)
107
107
  rspec (3.6.0)
108
108
  rspec-core (~> 3.6.0)
@@ -131,7 +131,7 @@ PLATFORMS
131
131
  ruby
132
132
 
133
133
  DEPENDENCIES
134
- activerecord (>= 5.0, < 5.1)
134
+ activerecord (>= 5.1, < 5.2)
135
135
  bundler (~> 1.12)
136
136
  database_cleaner (~> 1.5, >= 1.5.3)
137
137
  generator_spec (~> 0.9.4)
data/README.md CHANGED
@@ -47,7 +47,7 @@ Installation
47
47
  Add this line to your application's Gemfile:
48
48
 
49
49
  ```ruby
50
- gem 'mobility', '~> 0.1.17'
50
+ gem 'mobility', '~> 0.1.18'
51
51
  ```
52
52
 
53
53
  To translate attributes on a model, include (or extend) `Mobility`, then call
@@ -58,9 +58,6 @@ To translate attributes on a model, include (or extend) `Mobility`, then call
58
58
  Requirements:
59
59
  - ActiveRecord >= 5.0
60
60
 
61
- Using Mobility with Rails 5.1 will currently result in some deprecation
62
- warnings. This will be fixed soon.
63
-
64
61
  (Support for some backends is also supported with ActiveRecord/Rails 4.2, see
65
62
  the [active_record-4.2
66
63
  branch](https://github.com/shioyama/mobility/tree/active_record_4.2).)
data/lib/mobility.rb CHANGED
@@ -102,7 +102,7 @@ module Mobility
102
102
 
103
103
  if Loaded::ActiveRecord
104
104
  model_class.include(ActiveRecord) if model_class < ::ActiveRecord::Base
105
- model_class.include(ActiveModel::AttributeMethods) if model_class.ancestors.include?(::ActiveModel::AttributeMethods)
105
+ model_class.include(ActiveRecord::AttributeMethods) if model_class.ancestors.include?(::ActiveRecord::AttributeMethods)
106
106
  end
107
107
 
108
108
  if Loaded::Sequel
@@ -1,6 +1,5 @@
1
1
  module Mobility
2
2
  module ActiveModel
3
- autoload :AttributeMethods, "mobility/active_model/attribute_methods"
4
3
  autoload :BackendResetter, "mobility/active_model/backend_resetter"
5
4
  end
6
5
  end
@@ -5,6 +5,7 @@ Module loading ActiveRecord-specific classes for Mobility models.
5
5
 
6
6
  =end
7
7
  module ActiveRecord
8
+ autoload :AttributeMethods, "mobility/active_record/attribute_methods"
8
9
  autoload :BackendResetter, "mobility/active_record/backend_resetter"
9
10
  autoload :ModelTranslation, "mobility/active_record/model_translation"
10
11
  autoload :StringTranslation, "mobility/active_record/string_translation"
@@ -12,20 +13,6 @@ Module loading ActiveRecord-specific classes for Mobility models.
12
13
  autoload :Translation, "mobility/active_record/translation"
13
14
  autoload :UniquenessValidator, "mobility/active_record/uniqueness_validator"
14
15
 
15
- def changes_applied
16
- @previously_changed = changes
17
- super
18
- end
19
-
20
- def clear_changes_information
21
- @previously_changed = ActiveSupport::HashWithIndifferentAccess.new
22
- super
23
- end
24
-
25
- def previous_changes
26
- super.merge(@previously_changed ||= ActiveSupport::HashWithIndifferentAccess.new)
27
- end
28
-
29
16
  def self.included(model_class)
30
17
  model_class.extend(ClassMethods)
31
18
  model_class.const_set(:UniquenessValidator,
@@ -1,8 +1,8 @@
1
1
  module Mobility
2
- module ActiveModel
2
+ module ActiveRecord
3
3
  =begin
4
4
 
5
- Included into model if model has +ActiveModel::AttributeMethods+ among its
5
+ Included into model if model has +ActiveRecord::AttributeMethods+ among its
6
6
  ancestors.
7
7
 
8
8
  =end
@@ -2,6 +2,7 @@ module Mobility
2
2
  module Backend
3
3
  module ActiveRecord
4
4
  autoload :Column, 'mobility/backend/active_record/column'
5
+ autoload :Dirty, 'mobility/backend/active_record/dirty'
5
6
  autoload :Hstore, 'mobility/backend/active_record/hstore'
6
7
  autoload :Jsonb, 'mobility/backend/active_record/jsonb'
7
8
  autoload :KeyValue, 'mobility/backend/active_record/key_value'
@@ -0,0 +1,45 @@
1
+ module Mobility
2
+ module Backend
3
+ module ActiveRecord::Dirty
4
+ include ActiveModel::Dirty
5
+
6
+ # @param [Class] backend_class Class of backend
7
+ def self.included(backend_class)
8
+ backend_class.extend(ActiveModel::Dirty::ClassMethods)
9
+ backend_class.extend(ClassMethods)
10
+ end
11
+
12
+ module ClassMethods
13
+ def setup_model(model_class, attributes, **options)
14
+ super
15
+
16
+ method_name_regex = /\A(#{attributes.join('|'.freeze)})_([a-z]{2}(_[a-z]{2})?)(=?|\??)\z/.freeze
17
+ mod = Module.new do
18
+ define_method :has_attribute? do |attr_name|
19
+ super(attr_name) || !!method_name_regex.match(attr_name)
20
+ end
21
+ end
22
+
23
+ model_class.class_eval do
24
+ extend mod
25
+
26
+ method_name = ::ActiveRecord::VERSION::STRING < '5.1' ? :changes_applied : :changes_internally_applied
27
+ define_method method_name do
28
+ @previously_changed = changes
29
+ super()
30
+ end
31
+
32
+ def clear_changes_information
33
+ @previously_changed = ActiveSupport::HashWithIndifferentAccess.new
34
+ super
35
+ end
36
+
37
+ def previous_changes
38
+ (@previously_changed ||= ActiveSupport::HashWithIndifferentAccess.new).merge(super)
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -25,7 +25,8 @@ details.
25
25
  def self.for(model_class)
26
26
  model_class ||= Object
27
27
  if Loaded::ActiveRecord && model_class.ancestors.include?(::ActiveModel::Dirty)
28
- Backend::ActiveModel::Dirty
28
+ (model_class < ::ActiveRecord::Base) ?
29
+ Backend::ActiveRecord::Dirty : Backend::ActiveModel::Dirty
29
30
  elsif Loaded::Sequel && model_class < ::Sequel::Model
30
31
  Backend::Sequel::Dirty
31
32
  else
@@ -1,3 +1,3 @@
1
1
  module Mobility
2
- VERSION = "0.1.17"
2
+ VERSION = "0.1.18"
3
3
  end
@@ -29,7 +29,7 @@ simple delegator, so any missing method will be delegated to the model class.
29
29
  end
30
30
 
31
31
  def initialize_dup(other)
32
- @modules = other.modules.map(&:dup)
32
+ @modules = other.modules.dup
33
33
  super
34
34
  end
35
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mobility
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.17
4
+ version: 0.1.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Salzberg
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-15 00:00:00.000000000 Z
11
+ date: 2017-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: request_store
@@ -149,9 +149,9 @@ files:
149
149
  - lib/generators/rails/mobility/translations_generator.rb
150
150
  - lib/mobility.rb
151
151
  - lib/mobility/active_model.rb
152
- - lib/mobility/active_model/attribute_methods.rb
153
152
  - lib/mobility/active_model/backend_resetter.rb
154
153
  - lib/mobility/active_record.rb
154
+ - lib/mobility/active_record/attribute_methods.rb
155
155
  - lib/mobility/active_record/backend_resetter.rb
156
156
  - lib/mobility/active_record/model_translation.rb
157
157
  - lib/mobility/active_record/string_translation.rb
@@ -165,6 +165,7 @@ files:
165
165
  - lib/mobility/backend/active_record.rb
166
166
  - lib/mobility/backend/active_record/column.rb
167
167
  - lib/mobility/backend/active_record/column/query_methods.rb
168
+ - lib/mobility/backend/active_record/dirty.rb
168
169
  - lib/mobility/backend/active_record/hash_valued.rb
169
170
  - lib/mobility/backend/active_record/hstore.rb
170
171
  - lib/mobility/backend/active_record/hstore/query_methods.rb