Module: Fixturizer::Adapters::Mongoid

Defined in:
lib/fixturizer/adapters/mongoid.rb

Instance Method Summary collapse

Instance Method Details

#check ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/fixturizer/adapters/mongoid.rb', line 36

def check
  res = {}
  begin
    node = ::Mongoid.default_client.cluster.addresses.first.to_s
    dbname = ::Mongoid.default_client.database.name
    client = ::Mongo::Client.new("mongodb://#{node}/#{dbname}")
    client.database_names
    return true
  rescue ::Mongo::Auth::Unauthorized, Mongo::Error
    return false
  end
  res
end

#drop_database ⇒ Object



29
30
31
32
33
34
# File 'lib/fixturizer/adapters/mongoid.rb', line 29

def drop_database
  ::Mongoid.purge!
  true
rescue StandardError
  false
end

#inject_data ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/fixturizer/adapters/mongoid.rb', line 6

def inject_data
  list = (@orders.is_a? Array) ? @order : @generated.keys
  list.each do |name|
    records = @generated[name]
    records.each do |record|
      belong = record.dig(:belong, :to)
      by = record.dig(:belong, :by)
      pattern = record.dig(:belong, :search_by)
      if belong.is_a? Symbol
        model = Object.const_get(@models[belong][:class]).find_by(**pattern).send by
        unless model.where(@models[belong][:unicity] => record[:data][@models[belong][:unicity]]).exists?
          model.create!(record[:data])
        end
      else
        model = Object.const_get(@models[name][:class])
        unless model.where(@models[name][:unicity] => record[:data][@models[name][:unicity]]).exists?
          model.create!(record[:data])
        end
      end
    end
  end
end