Sha256: 18515f7f482e4ceab0b22e7c754029f640d56df740019f8129b77b52d1e04b1f

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

require 'active_model'
require 'uri'

module HostedSolr
  module API
    class SolrCore
      include ActiveModel::Model

      attr_accessor :id, :solr_version, :system, :schema, :host,
                    :name, :internal_name, :password,
                    :is_activated, :created_at, :updated_at

      validates :name, presence: true,
                       format: { with: /^[a-z0-9\-]+$/, multiline: true, message: 'Name is allowed to contain only lower case characters, numbers and dashes' },
                       length: { maximum: 20 }

      validates :solr_version, presence: true
      validates :schema,       presence: true
      validates :system,       presence: true

      def self.from_hash(attributes_hash = {})
        new(attributes_hash.slice(*%w(id solr_version system schema name host internal_name password is_activated created_at updated_at)))
      end

      def port
        443
      end

      def protocol
        'https'
      end

      def connection_uri
        URI("#{protocol}://#{internal_name}:#{password}@#{host}:#{port}/#{internal_name}/core")
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hosted_solr-api-0.6.0 lib/hosted_solr/api/solr_core.rb