Module: Polipus::Storage

Defined in:
lib/polipus/storage.rb,
lib/polipus/storage/base.rb,
lib/polipus/storage/dev_null.rb,
lib/polipus/storage/s3_store.rb,
lib/polipus/storage/mongo_store.rb,
lib/polipus/storage/memory_store.rb

Defined Under Namespace

Classes: Base, DevNull, MemoryStore, MongoStore, S3Store

Class Method Summary collapse

Class Method Details

.dev_nullObject



27
28
29
30
# File 'lib/polipus/storage.rb', line 27

def self.dev_null
  require 'polipus/storage/dev_null'
  self::DevNull.new
end

.memory_storeObject



32
33
34
35
# File 'lib/polipus/storage.rb', line 32

def self.memory_store
  require 'polipus/storage/memory_store'
  self::MemoryStore.new
end

.mongo_store(mongo = nil, collection_name = 'pages', except = []) ⇒ Object



5
6
7
8
9
10
# File 'lib/polipus/storage.rb', line 5

def self.mongo_store(mongo = nil, collection_name = 'pages', except = [])
  require 'polipus/storage/mongo_store'
  mongo ||= Mongo::Connection.new('localhost', 27_017, pool_size: 15, pool_timeout: 5).db('polipus')
  fail 'First argument must be an instance of Mongo::DB' unless mongo.is_a?(Mongo::DB)
  self::MongoStore.new(mongo: mongo, collection: collection_name, except: except)
end

.s3_store(bucket_name = 'pages', aws_credential = {}, except = []) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/polipus/storage.rb', line 12

def self.s3_store(bucket_name = 'pages', aws_credential = {}, except = [])
  require 'polipus/storage/s3_store'

  if aws_credential[:access_key_id].nil? || aws_credential[:secret_access_key].nil?
    fail 'You have to specify AWS crediantials: :access_key_id and :secret_access_key'
  end

  self::S3Store.new(
    bucket: bucket_name,
    access_key_id: aws_credential[:access_key_id],
    secret_access_key: aws_credential[:secret_access_key],
    except: except
  )
end