Module: Untied::Consumer::Sync::Backend::Base
- Defined in:
- lib/untied-consumer-sync/backend/base.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- @@instances =
{}
Class Method Summary collapse
Instance Method Summary collapse
-
#create_model(payload) ⇒ Object
Public: Cria o modelo se o mesmo não existir no banco de dados.
-
#create_zombie(id) ⇒ Object
Public: Cria um modelo zumbie temporário.
-
#destroy_model(payload) ⇒ Object
Public: Destroi o modelo se o mesmo não existir no banco de dados.
-
#initialize(model_data) ⇒ Object
Public: Lida com a manipulação dos modelos através de payloads.
-
#update_model(payload) ⇒ Object
Public: Atualiza o modelo ou o cria se o mesmo não existir no banco.
Class Method Details
.included(base) ⇒ Object
8 9 10 |
# File 'lib/untied-consumer-sync/backend/base.rb', line 8 def self.included(base) base.extend ClassMethods end |
Instance Method Details
#create_model(payload) ⇒ Object
Public: Cria o modelo se o mesmo não existir no banco de dados.
payload - Hash com os dados a serem inseridos.
Retorna True se a operação for bem sucedida e False no caso contrário.
37 38 39 40 41 42 43 44 45 |
# File 'lib/untied-consumer-sync/backend/base.rb', line 37 def create_model(payload) temp_model = (find(payload[@model_data['mappings']['id']]) or @model.unscoped.new) # Seta os atributos payload.each_pair { |key, value| temp_model.send("#{key.to_s}=", value) } if temp_model.zombie temp_model.save end |
#create_zombie(id) ⇒ Object
Public: Cria um modelo zumbie temporário.
id - Inteiro que indentifica o objeto de acordo com a configuração
Retorna o modelo recém criado.
23 24 25 26 27 28 29 30 |
# File 'lib/untied-consumer-sync/backend/base.rb', line 23 def create_zombie(id) zombie = @model.unscoped.new do |z| z.send("#{ @model_data['mappings']['id'] }=", id) end zombie.save(:validate => false) zombie end |
#destroy_model(payload) ⇒ Object
Public: Destroi o modelo se o mesmo não existir no banco de dados.
payload - Hash com os dados do modelo.
Retorna True se a operação for bem sucedida e False no caso contrário.
65 66 67 68 69 |
# File 'lib/untied-consumer-sync/backend/base.rb', line 65 def destroy_model(payload) temp_model = find(payload[@model_data['mappings']['id']]) temp_model.destroy if temp_model end |
#initialize(model_data) ⇒ Object
Public: Lida com a manipulação dos modelos através de payloads.
13 14 15 16 |
# File 'lib/untied-consumer-sync/backend/base.rb', line 13 def initialize(model_data) @model = model_data['name'].constantize @model_data = model_data end |
#update_model(payload) ⇒ Object
Public: Atualiza o modelo ou o cria se o mesmo não existir no banco.
payload - Hash com os dados a serem inseridos.
Retorna True se a operação for bem sucedida e False no caso contrário.
52 53 54 55 56 57 58 |
# File 'lib/untied-consumer-sync/backend/base.rb', line 52 def update_model(payload) temp_model = (find(payload[@model_data['mappings']['id']]) or @model.unscoped.new) payload.each_pair {|key, value| temp_model.send("#{key.to_s}=", value)} temp_model.save end |