Module: NoBrainer::Document::Persistance::ClassMethods

Defined in:
lib/no_brainer/document/persistance.rb

Instance Method Summary collapse

Instance Method Details

#create(attrs = {}, options = {}) ⇒ Object



131
132
133
# File 'lib/no_brainer/document/persistance.rb', line 131

def create(attrs={}, options={})
  new(attrs, options).tap { |doc| doc.save?(options) }
end

#create!(attrs = {}, options = {}) ⇒ Object



135
136
137
# File 'lib/no_brainer/document/persistance.rb', line 135

def create!(attrs={}, options={})
  new(attrs, options).tap { |doc| doc.save!(options) }
end

#insert_all(*args) ⇒ Object



139
140
141
142
143
144
145
# File 'lib/no_brainer/document/persistance.rb', line 139

def insert_all(*args)
  docs = args.shift
  docs = [docs] unless docs.is_a?(Array)
  docs = docs.map { |doc| persistable_attributes(doc) }
  result = NoBrainer.run(rql_table.insert(docs, *args))
  result['generated_keys'].to_a
end

#persistable_attributes(attrs, options = {}) ⇒ Object



159
160
161
# File 'lib/no_brainer/document/persistance.rb', line 159

def persistable_attributes(attrs, options={})
  Hash[attrs.map { |k,v| [persistable_key(k, options), persistable_value(k, v, options)] }]
end

#persistable_key(k, options = {}) ⇒ Object



151
152
153
# File 'lib/no_brainer/document/persistance.rb', line 151

def persistable_key(k, options={})
  k
end

#persistable_value(k, v, options = {}) ⇒ Object



155
156
157
# File 'lib/no_brainer/document/persistance.rb', line 155

def persistable_value(k, v, options={})
  v
end

#syncObject



147
148
149
# File 'lib/no_brainer/document/persistance.rb', line 147

def sync
  NoBrainer.run(rql_table.sync)['synced'] == 1
end