class IronHide::Storage::CouchdbAdapter

Constants

VERSION

Public Instance Methods

where(opts = {}) click to toggle source

@option opts [String] :resource required @option opts [String] :action required @return [Array<Hash>] array of canonical JSON representation of rules

# File lib/iron_hide/storage/couchdb_adapter.rb, line 13
def where(opts = {})
  self["#{opts.fetch(:resource)}::#{opts.fetch(:action)}"]
end

Private Instance Methods

[](val) click to toggle source

Implements an interface that makes selecting rules look like a Hash: @example

 {
   'com::test::TestResource::read' => {
     ...
   }
 }
adapter['com::test::TestResource::read']
#=> [Array<Hash>]

@param [Symbol] val @return [Array<Hash>] array of canonical JSON representation of rules

# File lib/iron_hide/storage/couchdb_adapter.rb, line 30
def [](val)
  response = couchd_db_rules(val)
  if response.response_code == 200
    MultiJson.load(response.response_body)["rows"].reduce([]) do |rval, row|
      rval << row["value"]
    end
  else
    # Do Something
  end
end
couchd_db_rules(val) click to toggle source
# File lib/iron_hide/storage/couchdb_adapter.rb, line 41
def couchd_db_rules(val)
  Typhoeus.get(
    "#{server}/#{database}/_design/rules/_view/resource_rules?key=\"#{val}\""
  )
end
database() click to toggle source
# File lib/iron_hide/storage/couchdb_adapter.rb, line 51
def database
  IronHide.configuration.couchdb_database
end
server() click to toggle source
# File lib/iron_hide/storage/couchdb_adapter.rb, line 47
def server
  IronHide.configuration.couchdb_server
end