activeresource 4.1.0 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +5 -5
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +324 -0
  4. data/lib/active_resource/active_job_serializer.rb +26 -0
  5. data/lib/active_resource/associations/builder/association.rb +6 -6
  6. data/lib/active_resource/associations/builder/belongs_to.rb +5 -3
  7. data/lib/active_resource/associations/builder/has_many.rb +4 -2
  8. data/lib/active_resource/associations/builder/has_one.rb +5 -3
  9. data/lib/active_resource/associations.rb +23 -20
  10. data/lib/active_resource/base.rb +233 -113
  11. data/lib/active_resource/callbacks.rb +3 -1
  12. data/lib/active_resource/collection.rb +21 -12
  13. data/lib/active_resource/connection.rb +78 -81
  14. data/lib/active_resource/custom_methods.rb +8 -6
  15. data/lib/active_resource/exceptions.rb +17 -5
  16. data/lib/active_resource/formats/json_format.rb +4 -1
  17. data/lib/active_resource/formats/xml_format.rb +4 -2
  18. data/lib/active_resource/formats.rb +5 -3
  19. data/lib/active_resource/http_mock.rb +23 -27
  20. data/lib/active_resource/inheriting_hash.rb +15 -0
  21. data/lib/active_resource/log_subscriber.rb +14 -3
  22. data/lib/active_resource/railtie.rb +10 -10
  23. data/lib/active_resource/reflection.rb +11 -10
  24. data/lib/active_resource/schema.rb +6 -3
  25. data/lib/active_resource/singleton.rb +25 -28
  26. data/lib/active_resource/threadsafe_attributes.rb +35 -31
  27. data/lib/active_resource/validations.rb +18 -15
  28. data/lib/active_resource/version.rb +6 -4
  29. data/lib/active_resource.rb +8 -7
  30. data/lib/activeresource.rb +3 -1
  31. metadata +41 -24
  32. data/README.rdoc +0 -231
  33. data/lib/active_resource/observing.rb +0 -31
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ActiveResource
4
+ class InheritingHash < Hash
5
+ def initialize(parent_hash = {})
6
+ # Default hash value must be nil, which allows fallback lookup on parent hash
7
+ super(nil)
8
+ @parent_hash = parent_hash
9
+ end
10
+
11
+ def [](key)
12
+ super || @parent_hash[key]
13
+ end
14
+ end
15
+ end
@@ -1,9 +1,20 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActiveResource
2
4
  class LogSubscriber < ActiveSupport::LogSubscriber
3
5
  def request(event)
4
6
  result = event.payload[:result]
5
- info "#{event.payload[:method].to_s.upcase} #{event.payload[:request_uri]}"
6
- info "--> %d %s %d (%.1fms)" % [result.code, result.message, result.body.to_s.length, event.duration]
7
+
8
+ # When result is nil, the connection could not even be initiated
9
+ # with the server, so we log an internal synthetic error response (523).
10
+ code = result.try(:code) || 523 # matches CloudFlare's convention
11
+ message = result.try(:message) || "ActiveResource connection error"
12
+ body = result.try(:body) || ""
13
+
14
+ log_level_method = code.to_i < 400 ? :info : :error
15
+
16
+ send log_level_method, "#{event.payload[:method].to_s.upcase} #{event.payload[:request_uri]}"
17
+ send log_level_method, "--> %d %s %d (%.1fms)" % [code, message, body.to_s.length, event.duration]
7
18
  end
8
19
 
9
20
  def logger
@@ -12,4 +23,4 @@ module ActiveResource
12
23
  end
13
24
  end
14
25
 
15
- ActiveResource::LogSubscriber.attach_to :active_resource
26
+ ActiveResource::LogSubscriber.attach_to :active_resource
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "active_resource"
2
4
  require "rails"
3
5
 
@@ -6,20 +8,18 @@ module ActiveResource
6
8
  config.active_resource = ActiveSupport::OrderedOptions.new
7
9
 
8
10
  initializer "active_resource.set_configs" do |app|
9
- app.config.active_resource.each do |k,v|
10
- ActiveResource::Base.send "#{k}=", v
11
+ ActiveSupport.on_load(:active_resource) do
12
+ app.config.active_resource.each do |k, v|
13
+ send "#{k}=", v
14
+ end
11
15
  end
12
16
  end
13
17
 
14
- config.after_initialize do |app|
15
- ActiveSupport.on_load(:active_resource) do
16
- ActiveResource::Base.instantiate_observers
17
-
18
- ActionDispatch::Reloader.to_prepare do
19
- ActiveResource::Base.instantiate_observers
20
- end
18
+ initializer "active_resource.add_active_job_serializer" do |app|
19
+ if app.config.try(:active_job).try(:custom_serializers)
20
+ require "active_resource/active_job_serializer"
21
+ app.config.active_job.custom_serializers << ActiveResource::ActiveJobSerializer
21
22
  end
22
23
  end
23
24
  end
24
25
  end
25
-
@@ -1,5 +1,7 @@
1
- require 'active_support/core_ext/class/attribute'
2
- require 'active_support/core_ext/module/deprecation'
1
+ # frozen_string_literal: true
2
+
3
+ require "active_support/core_ext/class/attribute"
4
+ require "active_support/core_ext/module/deprecation"
3
5
 
4
6
  module ActiveResource
5
7
  # = Active Resource reflection
@@ -25,7 +27,6 @@ module ActiveResource
25
27
 
26
28
 
27
29
  class AssociationReflection
28
-
29
30
  def initialize(macro, name, options)
30
31
  @macro, @name, @options = macro, name, options
31
32
  end
@@ -61,17 +62,17 @@ module ActiveResource
61
62
 
62
63
  # Returns the foreign_key for the macro.
63
64
  def foreign_key
64
- @foreign_key ||= self.options[:foreign_key] || "#{self.name.to_s.downcase}_id"
65
+ @foreign_key ||= derive_foreign_key
65
66
  end
66
67
 
67
68
  private
68
- def derive_class_name
69
- return (options[:class_name] ? options[:class_name].to_s : name.to_s).classify
70
- end
69
+ def derive_class_name
70
+ options[:class_name] ? options[:class_name].to_s.camelize : name.to_s.classify
71
+ end
71
72
 
72
- def derive_foreign_key
73
- return options[:foreign_key] ? options[:foreign_key].to_s : "#{name.to_s.downcase}_id"
74
- end
73
+ def derive_foreign_key
74
+ options[:foreign_key] ? options[:foreign_key].to_s : "#{name.to_s.downcase}_id"
75
+ end
75
76
  end
76
77
  end
77
78
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActiveResource # :nodoc:
2
4
  class Schema # :nodoc:
3
5
  # attributes can be known to be one of these types. They are easy to
@@ -29,8 +31,8 @@ module ActiveResource # :nodoc:
29
31
 
30
32
  the_type = type.to_s
31
33
  # TODO: add defaults
32
- #the_attr = [type.to_s]
33
- #the_attr << options[:default] if options.has_key? :default
34
+ # the_attr = [type.to_s]
35
+ # the_attr << options[:default] if options.has_key? :default
34
36
  @attrs[name.to_s] = the_type
35
37
  self
36
38
  end
@@ -45,7 +47,8 @@ module ActiveResource # :nodoc:
45
47
  # attr_names.each { |name| attribute(name, 'string', options) }
46
48
  # end
47
49
  class_eval <<-EOV, __FILE__, __LINE__ + 1
48
- def #{attr_type.to_s}(*args)
50
+ # frozen_string_literal: true
51
+ def #{attr_type}(*args)
49
52
  options = args.extract_options!
50
53
  attr_names = args
51
54
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActiveResource
2
4
  module Singleton
3
5
  extend ActiveSupport::Concern
@@ -60,20 +62,19 @@ module ActiveResource
60
62
  #
61
63
  # Inventory.find
62
64
  # # => raises ResourceNotFound
63
- def find(options={})
65
+ def find(options = {})
64
66
  find_singleton(options)
65
67
  end
66
68
 
67
69
  private
68
- # Find singleton resource
69
- def find_singleton(options)
70
- prefix_options, query_options = split_options(options[:params])
71
-
72
- path = singleton_path(prefix_options, query_options)
73
- resp = self.format.decode(self.connection.get(path, self.headers).body)
74
- instantiate_record(resp, prefix_options)
75
- end
76
-
70
+ # Find singleton resource
71
+ def find_singleton(options)
72
+ prefix_options, query_options = split_options(options[:params])
73
+
74
+ path = singleton_path(prefix_options, query_options)
75
+ resp = self.format.decode(self.connection.get(path, self.headers).body)
76
+ instantiate_record(resp, prefix_options)
77
+ end
77
78
  end
78
79
  # Deletes the resource from the remote service.
79
80
  #
@@ -87,28 +88,24 @@ module ActiveResource
87
88
 
88
89
 
89
90
  protected
90
-
91
- # Update the resource on the remote service
92
- def update
93
- connection.put(singleton_path(prefix_options), encode, self.class.headers).tap do |response|
94
- load_attributes_from_response(response)
91
+ # Update the resource on the remote service
92
+ def update
93
+ connection.put(singleton_path(prefix_options), encode, self.class.headers).tap do |response|
94
+ load_attributes_from_response(response)
95
+ end
95
96
  end
96
- end
97
97
 
98
- # Create (i.e. \save to the remote service) the \new resource.
99
- def create
100
- connection.post(singleton_path, encode, self.class.headers).tap do |response|
101
- self.id = id_from_response(response)
102
- load_attributes_from_response(response)
98
+ # Create (i.e. \save to the remote service) the \new resource.
99
+ def create
100
+ connection.post(singleton_path, encode, self.class.headers).tap do |response|
101
+ self.id = id_from_response(response)
102
+ load_attributes_from_response(response)
103
+ end
103
104
  end
104
- end
105
105
 
106
106
  private
107
-
108
- def singleton_path(options = nil)
109
- self.class.singleton_path(options || prefix_options)
110
- end
111
-
107
+ def singleton_path(options = nil)
108
+ self.class.singleton_path(options || prefix_options)
109
+ end
112
110
  end
113
-
114
111
  end
@@ -1,3 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "active_support/core_ext/object/duplicable"
4
+
1
5
  module ThreadsafeAttributes
2
6
  def self.included(klass)
3
7
  klass.extend(ClassMethods)
@@ -5,57 +9,57 @@ module ThreadsafeAttributes
5
9
 
6
10
  module ClassMethods
7
11
  def threadsafe_attribute(*attrs)
12
+ main_thread = Thread.main # remember this, because it could change after forking
13
+
8
14
  attrs.each do |attr|
9
15
  define_method attr do
10
- get_threadsafe_attribute(attr)
16
+ get_threadsafe_attribute(attr, main_thread)
11
17
  end
12
18
 
13
19
  define_method "#{attr}=" do |value|
14
- set_threadsafe_attribute(attr, value)
20
+ set_threadsafe_attribute(attr, value, main_thread)
15
21
  end
16
22
 
17
23
  define_method "#{attr}_defined?" do
18
- threadsafe_attribute_defined?(attr)
24
+ threadsafe_attribute_defined?(attr, main_thread)
19
25
  end
20
26
  end
21
27
  end
22
28
  end
23
29
 
24
30
  private
31
+ def get_threadsafe_attribute(name, main_thread)
32
+ if threadsafe_attribute_defined_by_thread?(name, Thread.current)
33
+ get_threadsafe_attribute_by_thread(name, Thread.current)
34
+ elsif threadsafe_attribute_defined_by_thread?(name, main_thread)
35
+ value = get_threadsafe_attribute_by_thread(name, main_thread)
36
+ value = value.dup if value.duplicable?
37
+ set_threadsafe_attribute_by_thread(name, value, Thread.current)
38
+ value
39
+ end
40
+ end
25
41
 
26
- def get_threadsafe_attribute(name)
27
- if threadsafe_attribute_defined_by_thread?(name, Thread.current)
28
- get_threadsafe_attribute_by_thread(name, Thread.current)
29
- elsif threadsafe_attribute_defined_by_thread?(name, Thread.main)
30
- value = get_threadsafe_attribute_by_thread(name, Thread.main)
31
- value = value.dup if value
42
+ def set_threadsafe_attribute(name, value, main_thread)
32
43
  set_threadsafe_attribute_by_thread(name, value, Thread.current)
33
- value
44
+ unless threadsafe_attribute_defined_by_thread?(name, main_thread)
45
+ set_threadsafe_attribute_by_thread(name, value, main_thread)
46
+ end
34
47
  end
35
- end
36
48
 
37
- def set_threadsafe_attribute(name, value)
38
- set_threadsafe_attribute_by_thread(name, value, Thread.current)
39
- unless threadsafe_attribute_defined_by_thread?(name, Thread.main)
40
- set_threadsafe_attribute_by_thread(name, value, Thread.main)
49
+ def threadsafe_attribute_defined?(name, main_thread)
50
+ threadsafe_attribute_defined_by_thread?(name, Thread.current) || ((Thread.current != main_thread) && threadsafe_attribute_defined_by_thread?(name, main_thread))
41
51
  end
42
- end
43
52
 
44
- def threadsafe_attribute_defined?(name)
45
- threadsafe_attribute_defined_by_thread?(name, Thread.current) || ((Thread.current != Thread.main) && threadsafe_attribute_defined_by_thread?(name, Thread.main))
46
- end
47
-
48
- def get_threadsafe_attribute_by_thread(name, thread)
49
- thread["active.resource.#{name}.#{self.object_id}"]
50
- end
51
-
52
- def set_threadsafe_attribute_by_thread(name, value, thread)
53
- thread["active.resource.#{name}.#{self.object_id}.defined"] = true
54
- thread["active.resource.#{name}.#{self.object_id}"] = value
55
- end
53
+ def get_threadsafe_attribute_by_thread(name, thread)
54
+ thread.thread_variable_get "active.resource.#{name}.#{self.object_id}"
55
+ end
56
56
 
57
- def threadsafe_attribute_defined_by_thread?(name, thread)
58
- thread["active.resource.#{name}.#{self.object_id}.defined"]
59
- end
57
+ def set_threadsafe_attribute_by_thread(name, value, thread)
58
+ thread.thread_variable_set "active.resource.#{name}.#{self.object_id}.defined", true
59
+ thread.thread_variable_set "active.resource.#{name}.#{self.object_id}", value
60
+ end
60
61
 
62
+ def threadsafe_attribute_defined_by_thread?(name, thread)
63
+ thread.thread_variable_get "active.resource.#{name}.#{self.object_id}.defined"
64
+ end
61
65
  end
@@ -1,8 +1,10 @@
1
- require 'active_support/core_ext/array/wrap'
2
- require 'active_support/core_ext/object/blank'
1
+ # frozen_string_literal: true
2
+
3
+ require "active_support/core_ext/array/wrap"
4
+ require "active_support/core_ext/object/blank"
3
5
 
4
6
  module ActiveResource
5
- class ResourceInvalid < ClientError #:nodoc:
7
+ class ResourceInvalid < ClientError # :nodoc:
6
8
  end
7
9
 
8
10
  # Active Resource validation is reported to and from this object, which is used by Base#save
@@ -20,7 +22,7 @@ module ActiveResource
20
22
  add humanized_attributes[attr_name], message[(attr_name.size + 1)..-1]
21
23
  end
22
24
  end
23
- self[:base] << message if attr_message.nil?
25
+ add(:base, message) if attr_message.nil?
24
26
  end
25
27
  end
26
28
 
@@ -33,16 +35,16 @@ module ActiveResource
33
35
  def from_hash(messages, save_cache = false)
34
36
  clear unless save_cache
35
37
 
36
- messages.each do |(key,errors)|
38
+ messages.each do |(key, errors)|
37
39
  errors.each do |error|
38
40
  if @base.known_attributes.include?(key)
39
41
  add key, error
40
- elsif key == 'base'
41
- self[:base] << error
42
+ elsif key == "base"
43
+ add(:base, error)
42
44
  else
43
45
  # reporting an error on an attribute not in attributes
44
46
  # format and add them to base
45
- self[:base] << "#{key.humanize} #{error}"
47
+ add(:base, "#{key.humanize} #{error}")
46
48
  end
47
49
  end
48
50
  end
@@ -51,11 +53,11 @@ module ActiveResource
51
53
  # Grabs errors from a json response.
52
54
  def from_json(json, save_cache = false)
53
55
  decoded = ActiveSupport::JSON.decode(json) || {} rescue {}
54
- if decoded.kind_of?(Hash) && (decoded.has_key?('errors') || decoded.empty?)
55
- errors = decoded['errors'] || {}
56
+ if decoded.kind_of?(Hash) && (decoded.has_key?("errors") || decoded.empty?)
57
+ errors = decoded["errors"] || {}
56
58
  if errors.kind_of?(Array)
57
59
  # 3.2.1-style with array of strings
58
- ActiveSupport::Deprecation.warn('Returning errors as an array of strings is deprecated.')
60
+ ActiveSupport::Deprecation.warn("Returning errors as an array of strings is deprecated.")
59
61
  from_array errors, save_cache
60
62
  else
61
63
  # 3.2.2+ style
@@ -70,7 +72,7 @@ module ActiveResource
70
72
 
71
73
  # Grabs errors from an XML response.
72
74
  def from_xml(xml, save_cache = false)
73
- array = Array.wrap(Hash.from_xml(xml)['errors']['error']) rescue []
75
+ array = Array.wrap(Hash.from_xml(xml)["errors"]["error"]) rescue []
74
76
  from_array array, save_cache
75
77
  end
76
78
  end
@@ -100,12 +102,13 @@ module ActiveResource
100
102
  include ActiveModel::Validations
101
103
 
102
104
  included do
103
- alias_method_chain :save, :validation
105
+ alias_method :save_without_validation, :save
106
+ alias_method :save, :save_with_validation
104
107
  end
105
108
 
106
109
  # Validate a resource and save (POST) it to the remote web service.
107
110
  # If any local validations fail - the save (POST) will not be attempted.
108
- def save_with_validation(options={})
111
+ def save_with_validation(options = {})
109
112
  perform_validation = options[:validate] != false
110
113
 
111
114
  # clear the remote validations so they don't interfere with the local
@@ -130,7 +133,7 @@ module ActiveResource
130
133
 
131
134
  # Loads the set of remote errors into the object's Errors based on the
132
135
  # content-type of the error-block received.
133
- def load_remote_errors(remote_errors, save_cache = false ) #:nodoc:
136
+ def load_remote_errors(remote_errors, save_cache = false) # :nodoc:
134
137
  case self.class.format
135
138
  when ActiveResource::Formats[:xml]
136
139
  errors.from_xml(remote_errors.response.body, save_cache)
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActiveResource
2
- module VERSION #:nodoc:
3
- MAJOR = 4
4
- MINOR = 1
4
+ module VERSION # :nodoc:
5
+ MAJOR = 6
6
+ MINOR = 0
5
7
  TINY = 0
6
8
  PRE = nil
7
9
 
8
- STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
10
+ STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
9
11
  end
10
12
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  #--
2
4
  # Copyright (c) 2006-2012 David Heinemeier Hansson
3
5
  #
@@ -21,10 +23,10 @@
21
23
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
24
  #++
23
25
 
24
- require 'active_support'
25
- require 'active_model'
26
- require 'active_resource/exceptions'
27
- require 'active_resource/version'
26
+ require "active_support"
27
+ require "active_model"
28
+ require "active_resource/exceptions"
29
+ require "active_resource/version"
28
30
 
29
31
  module ActiveResource
30
32
  extend ActiveSupport::Autoload
@@ -35,12 +37,11 @@ module ActiveResource
35
37
  autoload :CustomMethods
36
38
  autoload :Formats
37
39
  autoload :HttpMock
38
- autoload :Observing
39
40
  autoload :Schema
40
41
  autoload :Singleton
42
+ autoload :InheritingHash
41
43
  autoload :Validations
42
44
  autoload :Collection
43
45
  end
44
46
 
45
- require 'active_resource/railtie' if defined? Rails
46
-
47
+ require "active_resource/railtie" if defined?(Rails.application)
@@ -1 +1,3 @@
1
- require 'active_resource'
1
+ # frozen_string_literal: true
2
+
3
+ require "active_resource"
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activeresource
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0
4
+ version: 6.0.0
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: 2016-06-10 00:00:00.000000000 Z
11
+ date: 2022-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '4.0'
19
+ version: '6.0'
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: '4.0'
26
+ version: '6.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activemodel
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '4.0'
33
+ version: '6.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '4.0'
40
+ version: '6.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rails-observers
42
+ name: activemodel-serializers-xml
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.1.2
47
+ version: '1.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.1.2
54
+ version: '1.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -80,16 +80,31 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: 0.13.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: rexml
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  description: REST on Rails. Wrap your RESTful web app with Ruby classes and work with
84
98
  them like Active Record models.
85
99
  email: david@loudthinking.com
86
100
  executables: []
87
101
  extensions: []
88
- extra_rdoc_files:
89
- - README.rdoc
102
+ extra_rdoc_files: []
90
103
  files:
91
- - README.rdoc
104
+ - MIT-LICENSE
105
+ - README.md
92
106
  - lib/active_resource.rb
107
+ - lib/active_resource/active_job_serializer.rb
93
108
  - lib/active_resource/associations.rb
94
109
  - lib/active_resource/associations/builder/association.rb
95
110
  - lib/active_resource/associations/builder/belongs_to.rb
@@ -105,8 +120,8 @@ files:
105
120
  - lib/active_resource/formats/json_format.rb
106
121
  - lib/active_resource/formats/xml_format.rb
107
122
  - lib/active_resource/http_mock.rb
123
+ - lib/active_resource/inheriting_hash.rb
108
124
  - lib/active_resource/log_subscriber.rb
109
- - lib/active_resource/observing.rb
110
125
  - lib/active_resource/railtie.rb
111
126
  - lib/active_resource/reflection.rb
112
127
  - lib/active_resource/schema.rb
@@ -118,26 +133,28 @@ files:
118
133
  homepage: http://www.rubyonrails.org
119
134
  licenses:
120
135
  - MIT
121
- metadata: {}
136
+ metadata:
137
+ bug_tracker_uri: https://github.com/rails/activeresource/issues
138
+ changelog_uri: https://github.com/rails/activeresource/releases/tag/v6.0.0
139
+ documentation_uri: http://rubydoc.info/gems/activeresource
140
+ source_code_uri: https://github.com/rails/activeresource/tree/v6.0.0
141
+ rubygems_mfa_required: 'true'
122
142
  post_install_message:
123
- rdoc_options:
124
- - "--main"
125
- - README.rdoc
143
+ rdoc_options: []
126
144
  require_paths:
127
145
  - lib
128
146
  required_ruby_version: !ruby/object:Gem::Requirement
129
147
  requirements:
130
148
  - - ">="
131
149
  - !ruby/object:Gem::Version
132
- version: 1.9.3
150
+ version: 2.6.0
133
151
  required_rubygems_version: !ruby/object:Gem::Requirement
134
152
  requirements:
135
153
  - - ">="
136
154
  - !ruby/object:Gem::Version
137
155
  version: '0'
138
156
  requirements: []
139
- rubyforge_project:
140
- rubygems_version: 2.5.1
157
+ rubygems_version: 3.2.32
141
158
  signing_key:
142
159
  specification_version: 4
143
160
  summary: REST modeling framework (part of Rails).