Module: ActiveAsari

Defined in:
lib/active_asari/common.rb,
lib/active_asari/migrations.rb,
lib/active_asari/active_record.rb

Defined Under Namespace

Modules: ActiveRecord Classes: Migrations, ResultObject

Class Method Summary collapse

Class Method Details

.active_asari_raw_search(domain, query, search_options = {}) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/active_asari/common.rb', line 23

def self.active_asari_raw_search(domain, query, search_options = {})
  asari = Asari.new asari_domain_name(domain)
  fields = ACTIVE_ASARI_CONFIG[domain].map {|field| field.first.to_sym}
  fields = fields.concat([:active_asari_id])
  search_options[:return_fields] = fields
  asari.search query, search_options
end

.active_asari_search(domain, query, search_options = {}) ⇒ Object



40
41
42
43
# File 'lib/active_asari/common.rb', line 40

def self.active_asari_search(domain, query, search_options = {})
  raw_result = active_asari_raw_search domain, query, search_options
  objectify_results raw_result
end

.amazon_safe_domain_name(domain) ⇒ Object



3
4
5
6
# File 'lib/active_asari/common.rb', line 3

def self.amazon_safe_domain_name(domain)
  environment = ENV['RAILS_ENV'] ? ENV['RAILS_ENV'] : ENV['RACK_ENV'] 
  "#{ACTIVE_ASARI_ENV[environment]['domain_prefix']}-#{domain.underscore.sub(/_/, '-')}" 
end

.asari_domain_name(domain) ⇒ Object



12
13
14
15
16
17
18
19
20
21
# File 'lib/active_asari/common.rb', line 12

def self.asari_domain_name(domain)
  $domains = {} if !$domains
  amazon_domain = amazon_safe_domain_name domain
  if !$domains[amazon_domain]
    domain_data = aws_client.describe_domains[:domain_status_list].select { |domain_data|  
      domain_data[:domain_name] == amazon_domain}
    $domains[amazon_domain] = domain_data.first[:search_service][:endpoint].split('.').first[7..-1]
  end
  $domains[amazon_domain] 
end

.aws_clientObject



8
9
10
# File 'lib/active_asari/common.rb', line 8

def self.aws_client
  AWS::CloudSearch::Client.new
end

.configure(yaml_file_dir) ⇒ Object



45
46
47
48
49
# File 'lib/active_asari/common.rb', line 45

def self.configure(yaml_file_dir)
  active_asari_config = YAML.load_file(File.expand_path(yaml_file_dir) + '/active_asari_config.yml')
  active_asari_env = YAML.load_file(File.expand_path(yaml_file_dir) + '/active_asari_env.yml') 
  return active_asari_config, active_asari_env
end

.objectify_results(hash_results) ⇒ Object



31
32
33
34
35
36
37
38
# File 'lib/active_asari/common.rb', line 31

def self.objectify_results(hash_results)
  results = {}
  hash_results.each do |key, value|
    results[key] = ResultObject.new
    results[key].raw_result = value
  end
  results
end