Sha256: 7d47091bf3250b0bde092ccf48fb51af402a7e90df4a539527951e908c88e5f4

Contents?: true

Size: 1.51 KB

Versions: 4

Compression:

Stored size: 1.51 KB

Contents

module Mongoid
  module Shell
    module Properties
      module Primary
        attr_accessor :primary

        # primary database host
        if ::Mongoid::Compatibility::Version.mongoid3?
          def primary
            @primary || begin
              fail Mongoid::Shell::Errors::SessionNotConnectedError unless session.cluster.nodes.any?
              node = session.cluster.nodes.find(&:primary?)
              fail Mongoid::Shell::Errors::MissingPrimaryNodeError unless node
              node.address == 'localhost:27017' ? nil : node.address
            end
          end
        elsif ::Mongoid::Compatibility::Version.mongoid4?
          def primary
            @primary || begin
              fail Mongoid::Shell::Errors::SessionNotConnectedError unless session.cluster.nodes.any?
              node = session.cluster.nodes.find(&:primary?)
              fail Mongoid::Shell::Errors::MissingPrimaryNodeError unless node
              node.address.original == 'localhost:27017' ? nil : node.address.original
            end
          end
        else
          def primary
            @primary || begin
              fail Mongoid::Shell::Errors::SessionNotConnectedError unless session.cluster.servers.any?
              node = session.cluster.servers.find { |server| server.primary? || server.standalone? }
              fail Mongoid::Shell::Errors::MissingPrimaryNodeError unless node
              node.address.to_s == 'localhost:27017' ? nil : node.address.to_s
            end
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
mongoid-shell-0.4.3 lib/mongoid/shell/properties/primary.rb
mongoid-shell-0.4.2 lib/mongoid/shell/properties/primary.rb
mongoid-shell-0.4.1 lib/mongoid/shell/properties/primary.rb
mongoid-shell-0.4.0 lib/mongoid/shell/properties/primary.rb