W jaki sposób mogę wysuszyć moje widoki CouchDB?

Co mogę zrobić, aby udostępnić kod wśród widoków w CouchDB?

Przykład 1 - metody użytkowe

Jesse Hallettma kilka dobrych metod użytkowych, włącznie z

function dot(attr) {
  return function(obj) {
      return obj[attr];
  }
}

Array.prototype.map = function(func) {
  var i, r = [],
  for (i = 0; i < this.length; i += 1) {
    r[i] = func(this[i]);
  }
  return r;
};

...

Gdzie mogę umieścić ten kod, aby każdy widok miał do niego dostęp?

Przykład 2 - stałe

Podobnie dla stałych używam w mojej aplikacji. Gdzie mogę umieścić

MyApp = {
  A_CONSTANT = "...";
  ANOTHER_CONSTANT = "...";
};
Przykład 3 - filtr filtra:

Co zrobić, jeśli chcę zobaczyć jeden z filtrów według „czy jest to osoba bogata?”:

function(doc) {
  if (doc.type == 'person' && doc.net_worth > 1000000) {
    emit(doc.id, doc);
  }
}

i inny, który indeksuje według nazwiska:

function(doc) {
  if (doc.last_name) {
    emit(doc.last_name, doc);
  }
}

Jak mogę połączyć je w widok „bogaci ludzie według nazwiska”?

Chciałbym mieć odpowiednik Rubiego

my_array.select { |x| x.person? }.select { |x| x.net_worth > 1,000,000 }.map { |x| [x.last_name, x] }

Jak mogę być DRYER?

questionAnswers(5)

yourAnswerToTheQuestion