diff --git a/lib/aws_cloud_search.rb b/lib/aws_cloud_search.rb index 4b218f3..f0c29b8 100644 --- a/lib/aws_cloud_search.rb +++ b/lib/aws_cloud_search.rb @@ -18,17 +18,25 @@ module AWSCloudSearch # for future reference in case AWS-CS updates to XML 1.1 char compliance #INVALID_CHAR_XML11 = /[^\u0001-\uD7FF\uE000-\uFFFD]/m + DEFAULT_OPTIONS = { + region: 'us-east-1', + endpoint_base_domain: 'cloudsearch.amazonaws.com', + configuration_url: 'https://cloudsearch.us-east-1.amazonaws.com' + }.freeze - def self.search_url(domain, region="us-east-1") - "http://search-#{domain}.#{region}.cloudsearch.amazonaws.com" + def self.search_url(domain, options={}) + options = DEFAULT_OPTIONS.merge(options) + "http://search-#{domain}.#{options[:region]}.#{options[:endpoint_base_domain]}" end - def self.document_url(domain, region="us-east-1") - "http://doc-#{domain}.#{region}.cloudsearch.amazonaws.com" + def self.document_url(domain, options={}) + options = DEFAULT_OPTIONS.merge(options) + "http://doc-#{domain}.#{options[:region]}.#{options[:endpoint_base_domain]}" end - def self.configuration_url - "https://cloudsearch.us-east-1.amazonaws.com" + def self.configuration_url(options={}) + options = DEFAULT_OPTIONS.merge(options) + options[:configuration_url] end # Initialize the module diff --git a/lib/aws_cloud_search/cloud_search.rb b/lib/aws_cloud_search/cloud_search.rb index 111fe9f..a7c6d18 100644 --- a/lib/aws_cloud_search/cloud_search.rb +++ b/lib/aws_cloud_search/cloud_search.rb @@ -3,10 +3,9 @@ module AWSCloudSearch class CloudSearch - - def initialize(domain, region="us-east-1") - @doc_conn = AWSCloudSearch::create_connection( AWSCloudSearch::document_url(domain, region) ) - @search_conn = AWSCloudSearch::create_connection( AWSCloudSearch::search_url(domain, region) ) + def initialize(domain, options={}) + @doc_conn = AWSCloudSearch::create_connection( AWSCloudSearch::document_url(domain, options) ) + @search_conn = AWSCloudSearch::create_connection( AWSCloudSearch::search_url(domain, options) ) end # Sends a batch of document updates and deletes by invoking the CloudSearch documents/batch API