Class: Cushion::Design

Inherits:
Document show all
Defined in:
lib/cushion/design.rb

Instance Attribute Summary

Attributes inherited from Document

#database, #headers

Instance Method Summary collapse

Methods inherited from Document

#[], #[]=, #attach, #attachments, #copy_to, database, #delete, #destroy, #detach, #fetch, #id, #id?, #initialize, #key?, #merge!, #move_to, #new_document?, #reload, #rename, #rev, #rev?, set_database, #to_json

Constructor Details

This class inherits a constructor from Cushion::Document

Instance Method Details

#languageObject



17
18
19
# File 'lib/cushion/design.rb', line 17

def language
  self['language']
end

#language=(lang) ⇒ Object

Sets this design document’s language.



22
23
24
# File 'lib/cushion/design.rb', line 22

def language=(lang)
  self['language'] = lang
end

#nameObject



9
10
11
# File 'lib/cushion/design.rb', line 9

def name
  id.sub('_design/','') if id
end

#name=(newname) ⇒ Object



13
14
15
# File 'lib/cushion/design.rb', line 13

def name=(newname)
  self['_id'] = "_design/#{newname}"
end

#saveObject

Raises:

  • (ArgumentError)


26
27
28
29
30
# File 'lib/cushion/design.rb', line 26

def save
  raise ArgumentError, "_design docs require a name" unless name && name.length > 0
  self.language = "javascript" unless language
  super
end

#view(view_name, options = {}) ⇒ Object

Queries a view rooted at this document. See Database#view.



4
5
6
7
# File 'lib/cushion/design.rb', line 4

def view(view_name, options = {})
  slug = "#{name}/#{view_name}"
  database.view(slug, options)
end