Class: Hickey::DomainDetector::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/hickey/domain_detector/base.rb

Instance Method Summary collapse

Instance Method Details

#visit(domain) ⇒ Object



4
5
6
7
8
9
10
# File 'lib/hickey/domain_detector/base.rb', line 4

def visit(domain)
  r = {}
  domain.each do |key, value|
    r[key] = value.accept_for_hickey(key, self)
  end
  r.size == 1 ? r.values.first : r
end

#visit_hash(attribute, record) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/hickey/domain_detector/base.rb', line 12

def visit_hash(attribute, record)
  owner = new_instance(attribute, record)
  after_created = []

  record.each do |key, value|
    if reflection = owner.class.reflections[key]
      after_created << send(reflection.macro, owner, reflection, value)
    else
      owner.send :write_attribute, key, value
    end
  end
  
  #bypass new alias method chain of save! method
  owner.save_with_validation!

  after_created.each(&:call)
  owner
end