Class: Libcouchbase::DesignDocs
- Inherits:
-
Object
- Object
- Libcouchbase::DesignDocs
- Defined in:
- lib/libcouchbase/design_docs.rb
Instance Method Summary collapse
- #design(name) ⇒ Object (also: #[])
- #designs ⇒ Object
-
#initialize(bucket, connection, result_meth, **opts) ⇒ DesignDocs
constructor
A new instance of DesignDocs.
Constructor Details
#initialize(bucket, connection, result_meth, **opts) ⇒ DesignDocs
Returns a new instance of DesignDocs.
5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/libcouchbase/design_docs.rb', line 5 def initialize(bucket, connection, result_meth, **opts) @connection = connection @result = result_meth @bucket = bucket # This reference is required to keep to the connection alive opts[:type] = :management result(@connection.http("/pools/default/buckets/#{connection.bucket}/ddocs", **opts).then(proc { |resp| @ddocs = if resp.body.length > 0 JSON.parse(resp.body, Connection::DECODE_OPTIONS)[:rows] || [] else [] end })) end |
Instance Method Details
#design(name) ⇒ Object Also known as: []
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/libcouchbase/design_docs.rb', line 25 def design(name) name = name.to_s des = nil short = nil @ddocs.each do |row| full = row[:doc][:meta][:id] short = full[8..-1] if [short, full].include? name des = row[:doc] break end end des ? DesignDoc.new(short, des, @bucket, @connection, @result) : nil end |
#designs ⇒ Object
20 21 22 23 |
# File 'lib/libcouchbase/design_docs.rb', line 20 def designs # Remove '_design/' from the id string @ddocs.map { |row| row[:doc][:meta][:id][8..-1] } end |