Module: MongoBijou

Defined in:
lib/mongo_bijou.rb,
lib/mongo_bijou/client.rb,
lib/mongo_bijou/boaster.rb,
lib/mongo_bijou/crusher.rb,
lib/mongo_bijou/murderer.rb

Overview

Module to supply class objects with mongodb storage.

Defined Under Namespace

Modules: Boaster, Murderer Classes: Client, Crusher

Constant Summary collapse

CORE_TYPES =
[Fixnum, String, TrueClass, FalseClass, Bignum, Array, Hash, NilClass]

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#config_attrObject

Returns the value of attribute config_attr.



6
7
8
# File 'lib/mongo_bijou.rb', line 6

def config_attr
  @config_attr
end

Class Method Details

.included(klass) ⇒ Object



8
9
10
11
# File 'lib/mongo_bijou.rb', line 8

def self.included(klass)
  klass.extend Murderer
  klass.extend Boaster
end

Instance Method Details

#attr_defaultsObject

Default configuration for object attributes to be saved in db - all.



14
15
16
# File 'lib/mongo_bijou.rb', line 14

def attr_defaults
  @config_attr = crusher.to_hash(self)
end

#db_name=(name) ⇒ Object



18
19
20
# File 'lib/mongo_bijou.rb', line 18

def db_name=(name)
  Client.instance.db_name = name
end

#mongo_storeObject

Call this method on object to perform saving object with configured attributes.



24
25
26
27
28
29
# File 'lib/mongo_bijou.rb', line 24

def mongo_store
  attr_defaults if config_attr.nil?
  attr = crusher.crush(config_attr)
  client = Client.instance.client[collection_name]
  client.insert_one(attr).inserted_id.to_s
end