Module: MinceDataModel::ClassMethods

Defined in:
lib/mince_data_model.rb

Instance Method Summary collapse

Instance Method Details

#allObject



72
73
74
# File 'lib/mince_data_model.rb', line 72

def all
  translate_each_from_data_store data_store.instance.find_all(data_collection)
end

#all_by_field(field, value) ⇒ Object



76
77
78
# File 'lib/mince_data_model.rb', line 76

def all_by_field(field, value)
  translate_each_from_data_store data_store.instance.get_all_for_key_with_value(data_collection, field, value)
end

#all_by_fields(hash) ⇒ Object



80
81
82
# File 'lib/mince_data_model.rb', line 80

def all_by_fields(hash)
  translate_each_from_data_store data_store.instance.get_by_params(data_collection, hash)
end

#array_contains(field, value) ⇒ Object



96
97
98
# File 'lib/mince_data_model.rb', line 96

def array_contains(field, value)
  translate_each_from_data_store data_store.instance.array_contains(data_collection, field, value)
end

#containing_any(field, values) ⇒ Object



92
93
94
# File 'lib/mince_data_model.rb', line 92

def containing_any(field, values)
  translate_each_from_data_store data_store.instance.containing_any(data_collection, field, values)
end

#data_collection(collection_name = nil) ⇒ Object



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

def data_collection(collection_name = nil)
  set_data_collection(collection_name) if collection_name
  @data_collection
end

#data_fields(*fields) ⇒ Object



22
23
24
25
# File 'lib/mince_data_model.rb', line 22

def data_fields(*fields)
  create_data_fields(*fields) if fields.any?
  @data_fields
end

#data_storeObject



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

def data_store
  DataStoreConfig.data_store
end

#delete_by_params(params) ⇒ Object



68
69
70
# File 'lib/mince_data_model.rb', line 68

def delete_by_params(params)
  data_store.instance.delete_by_params(data_collection, params)
end

#delete_collectionObject



100
101
102
# File 'lib/mince_data_model.rb', line 100

def delete_collection
  data_store.instance.delete_collection(data_collection)
end

#delete_field(field) ⇒ Object



64
65
66
# File 'lib/mince_data_model.rb', line 64

def delete_field(field)
  data_store.instance.delete_field(data_collection, field)
end

#find(id) ⇒ Object



60
61
62
# File 'lib/mince_data_model.rb', line 60

def find(id)
  translate_from_data_store data_store.instance.find(data_collection, data_store.primary_key_identifier, id)
end

#find_by_field(field, value) ⇒ Object



88
89
90
# File 'lib/mince_data_model.rb', line 88

def find_by_field(field, value)
  translate_from_data_store data_store.instance.get_for_key_with_value(data_collection, field, value)
end

#find_by_fields(hash) ⇒ Object



84
85
86
# File 'lib/mince_data_model.rb', line 84

def find_by_fields(hash)
  translate_from_data_store all_by_fields(hash).first
end

#increment_field_by_amount(id, field, amount) ⇒ Object



48
49
50
# File 'lib/mince_data_model.rb', line 48

def increment_field_by_amount(id, field, amount)
  data_store.instance.increment_field_by_amount(data_collection, id, field, amount)
end

#push_to_array(id, field, value) ⇒ Object



56
57
58
# File 'lib/mince_data_model.rb', line 56

def push_to_array(id, field, value)
  data_store.instance.push_to_array(data_collection, data_store.primary_key_identifier, id, field, value)
end

#remove_from_array(id, field, value) ⇒ Object



52
53
54
# File 'lib/mince_data_model.rb', line 52

def remove_from_array(id, field, value)
  data_store.instance.remove_from_array(data_collection, data_store.primary_key_identifier, id, field, value)
end

#store(model) ⇒ Object



32
33
34
35
36
# File 'lib/mince_data_model.rb', line 32

def store(model)
  new(model).tap do |p|
    p.add_to_data_store
  end.id
end

#translate_each_from_data_store(data) ⇒ Object



111
112
113
# File 'lib/mince_data_model.rb', line 111

def translate_each_from_data_store(data)
  data.collect {|d| translate_from_data_store(d) }
end

#translate_from_data_store(hash) ⇒ Object



104
105
106
107
108
109
# File 'lib/mince_data_model.rb', line 104

def translate_from_data_store(hash)
  if hash
    hash["id"] = hash[primary_key_identifier] if hash[primary_key_identifier]
    HashWithIndifferentAccess.new hash
  end
end

#update(model) ⇒ Object



38
39
40
41
42
# File 'lib/mince_data_model.rb', line 38

def update(model)
  new(model).tap do |p|
    p.replace_in_data_store
  end
end

#update_field_with_value(id, field, value) ⇒ Object



44
45
46
# File 'lib/mince_data_model.rb', line 44

def update_field_with_value(id, field, value)
  data_store.instance.update_field_with_value(data_collection, id, field, value)
end