Class: Makura::Design
- Inherits:
-
Object
- Object
- Makura::Design
- Defined in:
- lib/makura/design.rb
Instance Attribute Summary collapse
-
#database ⇒ Object
Returns the value of attribute database.
-
#language ⇒ Object
Returns the value of attribute language.
-
#layouts ⇒ Object
readonly
Returns the value of attribute layouts.
-
#name ⇒ Object
Returns the value of attribute name.
Instance Method Summary collapse
- #[](layout_name) ⇒ Object
- #[]=(layout_name, layout) ⇒ Object
-
#initialize(name, database = nil) ⇒ Design
constructor
A new instance of Design.
- #save ⇒ Object
- #to_hash ⇒ Object
Constructor Details
#initialize(name, database = nil) ⇒ Design
Returns a new instance of Design.
6 7 8 9 10 |
# File 'lib/makura/design.rb', line 6 def initialize(name, database = nil) @name, @database = name, database @language = 'javascript' @layouts = {} end |
Instance Attribute Details
#database ⇒ Object
Returns the value of attribute database.
3 4 5 |
# File 'lib/makura/design.rb', line 3 def database @database end |
#language ⇒ Object
Returns the value of attribute language.
3 4 5 |
# File 'lib/makura/design.rb', line 3 def language @language end |
#layouts ⇒ Object (readonly)
Returns the value of attribute layouts.
4 5 6 |
# File 'lib/makura/design.rb', line 4 def layouts @layouts end |
#name ⇒ Object
Returns the value of attribute name.
3 4 5 |
# File 'lib/makura/design.rb', line 3 def name @name end |
Instance Method Details
#[](layout_name) ⇒ Object
21 22 23 |
# File 'lib/makura/design.rb', line 21 def [](layout_name) @layouts[layout_name.to_s] end |
#[]=(layout_name, layout) ⇒ Object
25 26 27 |
# File 'lib/makura/design.rb', line 25 def []=(layout_name, layout) @layouts[layout_name.to_s] = layout end |
#save ⇒ Object
12 13 14 15 16 17 18 19 |
# File 'lib/makura/design.rb', line 12 def save hash = to_hash doc = @database[hash['_id']] doc['views'] = hash['views'] @database.save(doc) rescue Makura::Error::ResourceNotFound @database.save(to_hash) end |
#to_hash ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/makura/design.rb', line 29 def to_hash views = {} @layouts.each{|name, layout| views[name] = layout.to_hash } views.delete_if{|k,v| !(v[:map] || v['map']) } {'language' => @language, '_id' => "_design/#{@name}", 'views' => views} end |