activemodel 6.0.0 → 6.0.1.rc1

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
  SHA256:
3
- metadata.gz: 69a5bee0cfba77f4724c2db8488624ecf96cf07711dcdc049dd0c3dc63ee5511
4
- data.tar.gz: 19750eda0fd5b204ae2825c05808351c33a5c73b94e46e5cc6a083e7f71392f3
3
+ metadata.gz: 730f70f2562e4ec51447fabe473bb6e47a34c51224db9b987559d5684943560f
4
+ data.tar.gz: 2f480664d22d4c09bb1c0d1247b1cc94b2ae69d3c876507c6b3e0e4d39adb1ed
5
5
  SHA512:
6
- metadata.gz: 0717aa6a3b1c7d833939ce27faf0f2603dfa37c4b07cc67c3e87d4ab596fb086a4da1d719943b6d16fd679dbafdb227f9221d22822359b4c355d398e3bc35850
7
- data.tar.gz: 325635123b6a4f68f09fe7ae5c5606cdadef8c011e890a54b638bd91bb272c9e45de3d7eda403ad291c365463891d420d2212dcfdefd9212717ddc255c296f1d
6
+ metadata.gz: 610908012ccc1e598efea402bee3d63edbe0a558324673c1670b8d310928a298fdad1e206442ab6d018c0057565d8a93051013b7037e7fffbfbbf1bf95bfcbef
7
+ data.tar.gz: 2e2fd041d8054a208bcddfd0b5731874f1f80bdaf69e7885960fef5f992432a9b5c1741605450152602c31c8002a87850e7e4c8b069de34f0e565231dd4921c7
@@ -1,3 +1,8 @@
1
+ ## Rails 6.0.1.rc1 (October 31, 2019) ##
2
+
3
+ * No changes.
4
+
5
+
1
6
  ## Rails 6.0.0 (August 16, 2019) ##
2
7
 
3
8
  * No changes.
@@ -9,8 +9,8 @@ module ActiveModel
9
9
  module VERSION
10
10
  MAJOR = 6
11
11
  MINOR = 0
12
- TINY = 0
13
- PRE = nil
12
+ TINY = 1
13
+ PRE = "rc1"
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
16
16
  end
@@ -17,7 +17,8 @@ module ActiveModel
17
17
  private
18
18
 
19
19
  def setup!(klass)
20
- klass.include(LazilyDefineAttributes.new(AttributeDefinition.new(attributes)))
20
+ define_attributes = LazilyDefineAttributes.new(attributes)
21
+ klass.include(define_attributes) unless klass.included_modules.include?(define_attributes)
21
22
  end
22
23
 
23
24
  def acceptable_option?(value)
@@ -25,46 +26,50 @@ module ActiveModel
25
26
  end
26
27
 
27
28
  class LazilyDefineAttributes < Module
28
- def initialize(attribute_definition)
29
+ def initialize(attributes)
30
+ @attributes = attributes.map(&:to_s)
31
+ end
32
+
33
+ def included(klass)
34
+ mod = self
35
+
29
36
  define_method(:respond_to_missing?) do |method_name, include_private = false|
30
- super(method_name, include_private) || attribute_definition.matches?(method_name)
37
+ mod.define_on(klass)
38
+ super(method_name, include_private) || mod.matches?(method_name)
31
39
  end
32
40
 
33
41
  define_method(:method_missing) do |method_name, *args, &block|
34
- if attribute_definition.matches?(method_name)
35
- attribute_definition.define_on(self.class)
42
+ mod.define_on(klass)
43
+ if mod.matches?(method_name)
36
44
  send(method_name, *args, &block)
37
45
  else
38
46
  super(method_name, *args, &block)
39
47
  end
40
48
  end
41
49
  end
42
- end
43
-
44
- class AttributeDefinition
45
- def initialize(attributes)
46
- @attributes = attributes.map(&:to_s)
47
- end
48
50
 
49
51
  def matches?(method_name)
50
- attr_name = convert_to_reader_name(method_name)
51
- attributes.include?(attr_name)
52
+ attr_name = method_name.to_s.chomp("=")
53
+ attributes.any? { |name| name == attr_name }
52
54
  end
53
55
 
54
56
  def define_on(klass)
57
+ remove_method :respond_to_missing?
58
+ remove_method :method_missing
59
+
55
60
  attr_readers = attributes.reject { |name| klass.attribute_method?(name) }
56
61
  attr_writers = attributes.reject { |name| klass.attribute_method?("#{name}=") }
57
- klass.define_attribute_methods
58
- klass.attr_reader(*attr_readers)
59
- klass.attr_writer(*attr_writers)
62
+
63
+ attr_reader(*attr_readers)
64
+ attr_writer(*attr_writers)
60
65
  end
61
66
 
62
- private
63
- attr_reader :attributes
67
+ def ==(other)
68
+ self.class == other.class && attributes == other.attributes
69
+ end
64
70
 
65
- def convert_to_reader_name(method_name)
66
- method_name.to_s.chomp("=")
67
- end
71
+ protected
72
+ attr_reader :attributes
68
73
  end
69
74
  end
70
75
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activemodel
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.0
4
+ version: 6.0.1.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-16 00:00:00.000000000 Z
11
+ date: 2019-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 6.0.0
19
+ version: 6.0.1.rc1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 6.0.0
26
+ version: 6.0.1.rc1
27
27
  description: A toolkit for building modeling frameworks like Active Record. Rich support
28
28
  for attributes, callbacks, validations, serialization, internationalization, and
29
29
  testing.
@@ -101,8 +101,11 @@ homepage: https://rubyonrails.org
101
101
  licenses:
102
102
  - MIT
103
103
  metadata:
104
- source_code_uri: https://github.com/rails/rails/tree/v6.0.0/activemodel
105
- changelog_uri: https://github.com/rails/rails/blob/v6.0.0/activemodel/CHANGELOG.md
104
+ bug_tracker_uri: https://github.com/rails/rails/issues
105
+ changelog_uri: https://github.com/rails/rails/blob/v6.0.1.rc1/activemodel/CHANGELOG.md
106
+ documentation_uri: https://api.rubyonrails.org/v6.0.1.rc1/
107
+ mailing_list_uri: https://groups.google.com/forum/#!forum/rubyonrails-talk
108
+ source_code_uri: https://github.com/rails/rails/tree/v6.0.1.rc1/activemodel
106
109
  post_install_message:
107
110
  rdoc_options: []
108
111
  require_paths:
@@ -114,11 +117,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
114
117
  version: 2.5.0
115
118
  required_rubygems_version: !ruby/object:Gem::Requirement
116
119
  requirements:
117
- - - ">="
120
+ - - ">"
118
121
  - !ruby/object:Gem::Version
119
- version: '0'
122
+ version: 1.3.1
120
123
  requirements: []
121
- rubygems_version: 3.0.1
124
+ rubygems_version: 3.0.3
122
125
  signing_key:
123
126
  specification_version: 4
124
127
  summary: A toolkit for building modeling frameworks (part of Rails).