Module: SimplyCouch::Model::View::CustomViews::ClassMethods
- Defined in:
- lib/simply_couch/model/view/custom_views.rb
Instance Method Summary collapse
- #_find_view(view) ⇒ Object
- #execute_view(view_name, view_parameters) ⇒ Object
-
#view(view_name, options) ⇒ Object
Declare a CouchDB view, for examples on how to use see the *ViewSpec classes in SimplyCouch::Model::View.
- #view_spec_class(type) ⇒ Object
- #views(view_name = nil) ⇒ Object
Instance Method Details
#_find_view(view) ⇒ Object
43 44 45 |
# File 'lib/simply_couch/model/view/custom_views.rb', line 43 def _find_view(view) (@views && @views[view]) || (superclass._find_view(view) if superclass.respond_to?(:_find_view)) end |
#execute_view(view_name, view_parameters) ⇒ Object
20 21 22 23 24 |
# File 'lib/simply_couch/model/view/custom_views.rb', line 20 def execute_view(view_name, view_parameters) = views(view_name).dup [:split_design_doc] = split_design_documents? if respond_to?(:split_design_documents?) view_spec_class([:type]).new(self, view_name, , view_parameters) end |
#view(view_name, options) ⇒ Object
Declare a CouchDB view, for examples on how to use see the *ViewSpec classes in SimplyCouch::Model::View
27 28 29 30 31 32 |
# File 'lib/simply_couch/model/view/custom_views.rb', line 27 def view(view_name, ) view_name = view_name.to_s views[view_name] = method_str = "def #{view_name}(view_parameters = {}); execute_view(\"#{view_name}\", view_parameters); end" self.instance_eval(method_str) end |
#view_spec_class(type) ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/simply_couch/model/view/custom_views.rb', line 34 def view_spec_class(type) if type && type.is_a?(Class) type else name = type.nil? ? 'Model' : type.to_s.camelize SimplyCouch::Model::View.const_get("#{name}ViewSpec") end end |
#views(view_name = nil) ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/simply_couch/model/view/custom_views.rb', line 12 def views(view_name = nil) if view_name _find_view(view_name) else @views ||= {} end end |