lib/motion-resource/urls.rb in motion-resource-0.1.3 vs lib/motion-resource/urls.rb in motion-resource-0.1.4

- old
+ new

@@ -1,17 +1,20 @@ module MotionResource class Base class_attribute :collection_url, :member_url class_attribute :root_url, :default_url_options class_attribute :extension + class_attribute :url_encoder + self.extension = '.json' - + self.url_encoder = UrlEncoder.new + class << self def custom_urls(params = {}) params.each do |name, url_format| - define_method name do |params = {}| - url_format.fill_url_params(params, self) + define_method name do |method_params = {}| + self.url_encoder.fill_url_params(url_format, method_params, self) end define_singleton_method name do url_format end end @@ -22,16 +25,17 @@ end def member_url_or_default member_url || "#{name.underscore.pluralize}/:#{primary_key}" end + end def collection_url(params = {}) - self.class.collection_url_or_default.fill_url_params(params, self) + self.class.url_encoder.fill_url_params(self.class.collection_url_or_default, params, self) end def member_url(params = {}) - self.class.member_url_or_default.fill_url_params(params, self) + self.class.url_encoder.fill_url_params(self.class.member_url_or_default, params, self) end end end