Sha256: 244a6c3ae9bd40f061ba0da93977c7c7f2d5c7d7900a9d3348e4ecf24b9be17a

Contents?: true

Size: 1.47 KB

Versions: 1

Compression:

Stored size: 1.47 KB

Contents

# frozen_string_literal: true

module Fixturizer
  module Adapters
    module Mongoid
      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 link.is_a? Symbol then
              model = Object.const_get(@models[belong][:class]).find_by(**pattern).send by
              model.create!(record[:data]) unless model.where(@models[belong][:unicity] => record[:data][@models[belong][:unicity]]).exists?
            else
              model = Object.const_get(@models[name][:class])
              model.create!(record[:data]) unless model.where(@models[name][:unicity] => record[:data][@models[name][:unicity]]).exists?
            end

          end
          
        end
      end


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

      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
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fixturizer-0.4.3 lib/fixturizer/adapters/mongoid.rb