Class: ActiveAsari::Migrations
- Inherits:
-
Object
- Object
- ActiveAsari::Migrations
- Defined in:
- lib/active_asari/migrations.rb
Instance Attribute Summary collapse
-
#connection ⇒ Object
Returns the value of attribute connection.
Instance Method Summary collapse
- #create_domain(domain) ⇒ Object
- #create_index_field(domain, field) ⇒ Object
-
#initialize ⇒ Migrations
constructor
A new instance of Migrations.
- #migrate_all ⇒ Object
- #migrate_domain(domain) ⇒ Object
- #update_service_access_policies(domain) ⇒ Object
Constructor Details
#initialize ⇒ Migrations
Returns a new instance of Migrations.
6 7 8 |
# File 'lib/active_asari/migrations.rb', line 6 def initialize self.connection = AWS::CloudSearch::Client.new end |
Instance Attribute Details
#connection ⇒ Object
Returns the value of attribute connection.
4 5 6 |
# File 'lib/active_asari/migrations.rb', line 4 def connection @connection end |
Instance Method Details
#create_domain(domain) ⇒ Object
56 57 58 |
# File 'lib/active_asari/migrations.rb', line 56 def create_domain(domain) connection.create_domain :domain_name => ActiveAsari.amazon_safe_domain_name(domain) end |
#create_index_field(domain, field) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/active_asari/migrations.rb', line 36 def create_index_field(domain, field) index_field_name = field.keys.first index_field_type = field[index_field_name]['index_field_type'] search_enabled = field[index_field_name]['search_enabled'] if search_enabled == nil or search_enabled.blank? search_enabled = false end request = {:domain_name => ActiveAsari.amazon_safe_domain_name(domain), :index_field => {:index_field_name => index_field_name, :index_field_type => index_field_type}} case index_field_type when 'literal' request[:index_field][:literal_options] = {:search_enabled => search_enabled, :result_enabled => true} when 'text' request[:index_field][:text_options] = {:result_enabled => true} end connection.define_index_field request end |
#migrate_all ⇒ Object
10 11 12 13 14 |
# File 'lib/active_asari/migrations.rb', line 10 def migrate_all ACTIVE_ASARI_CONFIG.keys.each do |domain| migrate_domain domain end end |
#migrate_domain(domain) ⇒ Object
16 17 18 19 20 21 22 23 24 |
# File 'lib/active_asari/migrations.rb', line 16 def migrate_domain(domain) create_domain domain ACTIVE_ASARI_CONFIG[domain].each do |field| create_index_field domain, field.first => field.last end create_index_field domain, 'active_asari_id' => {'index_field_type' => 'uint'} connection.index_documents :domain_name => ActiveAsari.amazon_safe_domain_name(domain) update_service_access_policies ActiveAsari.amazon_safe_domain_name(domain) end |
#update_service_access_policies(domain) ⇒ Object
26 27 28 29 30 31 32 33 34 |
# File 'lib/active_asari/migrations.rb', line 26 def update_service_access_policies(domain) policy_array = [] asari_env = ENV['RAILS_ENV'] ? ENV['RAILS_ENV'] : ENV['RACK_ENV'] ACTIVE_ASARI_ENV[asari_env]['access_permissions'].each do || policy_array << {:Effect => :Allow, :Action => '*', :Resource => '*', :Condition => {:IpAddress => {'aws:SourceIp' => [['ip_address']]}}} end access_policies = {:Statement => policy_array} connection.update_service_access_policies :domain_name => domain, :access_policies => access_policies.to_json end |