Sha256: b5adf7ab5bd77f968e5d316bbd02b1df5da31920158c7054e3dad7f3b503e1c5

Contents?: true

Size: 1.66 KB

Versions: 8

Compression:

Stored size: 1.66 KB

Contents

module EnomAPI
  # Class to define the parameters of an eNom search query
  class SearchQuery
    def initialize
      @options = {'responsetype' => 'xml', 'command' => 'advanceddomainsearch'}
    end

    # Change the ordering of the query results.
    #
    # @param [String] opt Ordering option, one of sld, tld, nsstatus, expdate, or renew
    def order_by(opt)
      raise ArgumentError, "invalid order by value" unless %w(sld tld nsstatus expdate renew).include?(opt)
      @options['orderby'] = opt
      self
    end

    # Limit the quantity of results returned
    #
    # @overload limit(number)
    #   @param [Integer] number Number of records to return
    # @overload limit(start, number)
    #   @param [Integer] start Start position in the results
    #   @param [Integer] number Number of records to return
    def limit(num_or_start, num = nil)
      if num.nil?
        raise ArgumentError, "invalid limit" unless num_or_start.kind_of?(Integer)
        @options['recordstoreturn'] = num_or_start
      else
        raise ArgumentError, "invalid limit start" unless num_or_start.kind_of?(Integer)
        raise ArgumentError, "invalid limit size" unless num_or_start.kind_of?(Integer)
        @options['recordstoreturn'] = num
        @options['startposition'] = num_or_start
      end
      self
    end

    # @param [Hash] conditions Search conditions
    def where(conditions = {})
      @options = conditions.merge(@options)
      self
    end

    # @return POST data options
    def to_post_data
      if @options[:creationdate].respond_to?(:strftime)
        @options[:creationdate] = @options[:creationdate].strftime("%m/%d/%Y")
      end
      @options
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
enom-api-0.2.3 lib/enom-api/search_query.rb
enom-api-0.2.2 lib/enom-api/search_query.rb
enom-api-0.2.1 lib/enom-api/search_query.rb
enom-api-0.2.0 lib/enom-api/search_query.rb
enom-api-0.1.4 lib/enom-api/search_query.rb
enom-api-0.1.3 lib/enom-api/search_query.rb
enom-api-0.1.2 lib/enom-api/search_query.rb
enom-api-0.1.1 lib/enom-api/search_query.rb