aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoshua Peek <josh@joshpeek.com>2009-06-08 20:52:27 -0500
committerJoshua Peek <josh@joshpeek.com>2009-06-08 20:52:27 -0500
commit27766ccf3b98216a4b1035281c6e0e31a790abe4 (patch)
treeec6abac1b779a5530bed38968ac9639e9f7d33a6
parent0b694a4ff41dbb7f64b6ea4cb088c2c2ba26b569 (diff)
downloadrails-27766ccf3b98216a4b1035281c6e0e31a790abe4.tar.gz
rails-27766ccf3b98216a4b1035281c6e0e31a790abe4.tar.bz2
rails-27766ccf3b98216a4b1035281c6e0e31a790abe4.zip
Make use of AS::Concern in ActiveResource
-rw-r--r--activeresource/lib/active_resource/custom_methods.rb69
-rw-r--r--activeresource/lib/active_resource/validations.rb8
2 files changed, 37 insertions, 40 deletions
diff --git a/activeresource/lib/active_resource/custom_methods.rb b/activeresource/lib/active_resource/custom_methods.rb
index 4647e8342c..ff14b49b07 100644
--- a/activeresource/lib/active_resource/custom_methods.rb
+++ b/activeresource/lib/active_resource/custom_methods.rb
@@ -31,47 +31,44 @@ module ActiveResource
# # => [{:id => 1, :name => 'Ryan'}, {:id => 2, :name => 'Joe'}]
#
module CustomMethods
- def self.included(base)
- base.class_eval do
- extend ActiveResource::CustomMethods::ClassMethods
- include ActiveResource::CustomMethods::InstanceMethods
+ extend ActiveSupport::Concern
- class << self
- alias :orig_delete :delete
+ included do
+ class << self
+ alias :orig_delete :delete
- # Invokes a GET to a given custom REST method. For example:
- #
- # Person.get(:active) # GET /people/active.xml
- # # => [{:id => 1, :name => 'Ryan'}, {:id => 2, :name => 'Joe'}]
- #
- # Person.get(:active, :awesome => true) # GET /people/active.xml?awesome=true
- # # => [{:id => 1, :name => 'Ryan'}]
- #
- # Note: the objects returned from this method are not automatically converted
- # into ActiveResource::Base instances - they are ordinary Hashes. If you are expecting
- # ActiveResource::Base instances, use the <tt>find</tt> class method with the
- # <tt>:from</tt> option. For example:
- #
- # Person.find(:all, :from => :active)
- def get(custom_method_name, options = {})
- connection.get(custom_method_collection_url(custom_method_name, options), headers)
- end
+ # Invokes a GET to a given custom REST method. For example:
+ #
+ # Person.get(:active) # GET /people/active.xml
+ # # => [{:id => 1, :name => 'Ryan'}, {:id => 2, :name => 'Joe'}]
+ #
+ # Person.get(:active, :awesome => true) # GET /people/active.xml?awesome=true
+ # # => [{:id => 1, :name => 'Ryan'}]
+ #
+ # Note: the objects returned from this method are not automatically converted
+ # into ActiveResource::Base instances - they are ordinary Hashes. If you are expecting
+ # ActiveResource::Base instances, use the <tt>find</tt> class method with the
+ # <tt>:from</tt> option. For example:
+ #
+ # Person.find(:all, :from => :active)
+ def get(custom_method_name, options = {})
+ connection.get(custom_method_collection_url(custom_method_name, options), headers)
+ end
- def post(custom_method_name, options = {}, body = '')
- connection.post(custom_method_collection_url(custom_method_name, options), body, headers)
- end
+ def post(custom_method_name, options = {}, body = '')
+ connection.post(custom_method_collection_url(custom_method_name, options), body, headers)
+ end
- def put(custom_method_name, options = {}, body = '')
- connection.put(custom_method_collection_url(custom_method_name, options), body, headers)
- end
+ def put(custom_method_name, options = {}, body = '')
+ connection.put(custom_method_collection_url(custom_method_name, options), body, headers)
+ end
- def delete(custom_method_name, options = {})
- # Need to jump through some hoops to retain the original class 'delete' method
- if custom_method_name.is_a?(Symbol)
- connection.delete(custom_method_collection_url(custom_method_name, options), headers)
- else
- orig_delete(custom_method_name, options)
- end
+ def delete(custom_method_name, options = {})
+ # Need to jump through some hoops to retain the original class 'delete' method
+ if custom_method_name.is_a?(Symbol)
+ connection.delete(custom_method_collection_url(custom_method_name, options), headers)
+ else
+ orig_delete(custom_method_name, options)
end
end
end
diff --git a/activeresource/lib/active_resource/validations.rb b/activeresource/lib/active_resource/validations.rb
index e029076079..a2ba224998 100644
--- a/activeresource/lib/active_resource/validations.rb
+++ b/activeresource/lib/active_resource/validations.rb
@@ -45,10 +45,10 @@ module ActiveResource
# person.save # => true (and person is now saved to the remote service)
#
module Validations
- def self.included(base) # :nodoc:
- base.class_eval do
- alias_method_chain :save, :validation
- end
+ extend ActiveSupport::Concern
+
+ included do
+ alias_method_chain :save, :validation
end
# Validate a resource and save (POST) it to the remote web service.