Class: SimplyCouch::Model::View::PropertiesViewSpec

Inherits:
ModelViewSpec show all
Defined in:
lib/simply_couch/model/view/properties_view_spec.rb

Overview

A view to return model instances with only some properties populated by searching its properties, e.g. for very large documents where you are only interested in some of their data

example:

view :my_view, :key => :name, :properties => [:name, :author], :type => :properties

Constant Summary

Constants inherited from ModelViewSpec

ModelViewSpec::RUBY_CLASS_KEY

Constants inherited from BaseViewSpec

BaseViewSpec::DEFAULT_DIGEST_VIEW_NAMES, BaseViewSpec::DEFAULT_LANGUAGE

Instance Attribute Summary

Attributes inherited from BaseViewSpec

#design_document, #lib, #list_function, #list_name, #view_name

Instance Method Summary collapse

Methods inherited from BaseViewSpec

#initialize

Constructor Details

This class inherits a constructor from SimplyCouch::Model::View::BaseViewSpec

Instance Method Details

#languageObject



37
38
39
# File 'lib/simply_couch/model/view/properties_view_spec.rb', line 37

def language
  :javascript
end

#map_functionObject



9
10
11
12
13
# File 'lib/simply_couch/model/view/properties_view_spec.rb', line 9

def map_function
  map_body do
    "emit(#{formatted_key}, #{properties_for_map(properties)});"
  end
end

#process_results(results) ⇒ Object



27
28
29
30
31
# File 'lib/simply_couch/model/view/properties_view_spec.rb', line 27

def process_results(results)
  results['rows'].map do |row|
    klass.json_create row['value'].merge(:_id => row['id'])
  end
end

#reduce_functionObject



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/simply_couch/model/view/properties_view_spec.rb', line 15

def reduce_function
  <<-JS
    function(key, values, rereduce) {
      if(rereduce) {
        return sum(values);
      } else {
        return values.length;
      }
    }
  JS
end

#view_parametersObject



33
34
35
# File 'lib/simply_couch/model/view/properties_view_spec.rb', line 33

def view_parameters
  {:include_docs => false}.merge(super)
end