Sha256: e90a0ff08797ef6c7f2d665cc721a26e5e5e275e8fa543b29a9b0be5123e959b

Contents?: true

Size: 1.69 KB

Versions: 1

Compression:

Stored size: 1.69 KB

Contents

require 'couchrest'
require 'json'
require 'json/add/core'
require 'json/add/rails'

require 'ostruct'

JSON.create_id = 'ruby_class'

unless defined?(CouchPotato)
  module CouchPotato
    Config = Struct.new(:database_name, :validation_framework).new
    Config.validation_framework = :validatable # default to the validatable gem for validations

    # Returns a database instance which you can then use to create objects and query views. You have to set the CouchPotato::Config.database_name before this works.
    def self.database
      @@__database ||= Database.new(self.couchrest_database)
    end

    # Returns the underlying CouchRest database object if you want low level access to your CouchDB. You have to set the CouchPotato::Config.database_name before this works.
    def self.couchrest_database
      @@__couchrest_database ||= CouchRest.database(full_url_to_database)
    end

    private

    def self.full_url_to_database
      raise('No Database configured. Set CouchPotato::Config.database_name') unless CouchPotato::Config.database_name
      if CouchPotato::Config.database_name.match(%r{https?://})
        CouchPotato::Config.database_name
      else
        "http://127.0.0.1:5984/#{CouchPotato::Config.database_name}"
      end
    end
  end
end

require File.dirname(__FILE__) + '/core_ext/object'
require File.dirname(__FILE__) + '/core_ext/time'
require File.dirname(__FILE__) + '/core_ext/date'
require File.dirname(__FILE__) + '/core_ext/string'
require File.dirname(__FILE__) + '/core_ext/symbol'
require File.dirname(__FILE__) + '/couch_potato/validation'
require File.dirname(__FILE__) + '/couch_potato/persistence'
require File.dirname(__FILE__) + '/couch_potato/railtie' if defined?(Rails)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
couch_potato-0.2.27 lib/couch_potato.rb