12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/consumerable/model.rb', line 12
def consumerable(options = {})
define_method :create_path do
options[:path] || "/#{self.class.to_s.demodulize.downcase.pluralize}"
end
define_method :delete_path do
"/#{self.class.to_s.demodulize.downcase.pluralize}/:id"
end
define_method :attributes_for_api do
self.attributes
end
define_method :_inject_path_params do |path|
path.scan(/:[^\/]*id/).each do |attribute|
path.gsub!(/#{attribute}/, self.send(attribute.gsub(/^:/, '')))
end
path
end
define_singleton_method :list_path do
options[:path] || "/#{to_s.demodulize.downcase.pluralize}"
end
define_singleton_method :init_collection do |collection|
collection.map { |item| new(item) }
end
end
|