lib/zertico/service.rb in zertico-1.3.0 vs lib/zertico/service.rb in zertico-2.0.0.alpha.1
- old
+ new
@@ -1,66 +1,9 @@
module Zertico
- module Service
- def all
- instance_variable_set("@#{interface_name.pluralize}", resource_source.all)
- end
+ class Service
+ autoload :ClassMethods, 'zertico/service/class_methods'
+ autoload :InstanceMethods, 'zertico/service/instance_methods'
- def build
- instance_variable_set("@#{interface_name}", resource_source.new)
- end
-
- def find
- instance_variable_set("@#{interface_name}", resource_source.find(params[interface_id.to_sym]))
- end
-
- def generate
- instance_variable_set("@#{interface_name}", resource_source.create(params[interface_name.to_sym]))
- end
-
- def modify
- find
- instance_variable_get("@#{interface_name}").update_attributes(params[interface_name.to_sym])
- instance_variable_get("@#{interface_name}")
- end
-
- def delete
- find
- instance_variable_get("@#{interface_name}").destroy
- instance_variable_get("@#{interface_name}")
- end
-
- def resource_source
- @resource_source ||= interface_class
- end
-
- def resource_source=(resource_chain = [])
- @resource_source = resource_chain.shift
- @resource_source = @resource_source.constantize if @resource_source.respond_to?(:constantize)
- resource_chain.each do |resource|
- @resource_source = @resource_source.send(resource)
- end
- end
-
- protected
-
- def interface_id
- begin
- return "#{interface_name}_id" if self.class.name.chomp('Controller').split('::').size > 1
- rescue NameError
- 'id'
- end
- 'id'
- end
-
- def interface_name
- self.interface_class.name.singularize.underscore
- end
-
- def interface_class
- begin
- self.class.name.chomp('Controller').singularize.constantize
- rescue NameError
- self.class.name.chomp('Controller').split('::').last.singularize.constantize
- end
- end
+ extend ClassMethods
+ include InstanceMethods
end
end
\ No newline at end of file