class MarkLogic::Application
Attributes
app_name[RW]
port[RW]
Public Class Methods
load(app_name, options = {})
click to toggle source
# File lib/marklogic/application.rb, line 197 def self.load(app_name, options = {}) app = Application.new(app_name, options) app.load app end
new(app_name, options = {})
click to toggle source
# File lib/marklogic/application.rb, line 7 def initialize(app_name, options = {}) @app_name = app_name self.connection = options[:connection] @port = options[:port] || self.connection.port self.admin_connection = options[:admin_connection] end
Public Instance Methods
add_index(index)
click to toggle source
# File lib/marklogic/application.rb, line 147 def add_index(index) indexes[index.key] = index end
app_server(name) { |app_server| ... }
click to toggle source
# File lib/marklogic/application.rb, line 177 def app_server(name) app_server = MarkLogic::AppServer.new(name, @port) app_servers[name] = app_server yield(app_server) if block_given? end
app_servers()
click to toggle source
# File lib/marklogic/application.rb, line 143 def app_servers @app_servers ||= {} end
clear_indexes()
click to toggle source
# File lib/marklogic/application.rb, line 151 def clear_indexes() content_databases.each do |database| database.reset_indexes end @indexes = {} end
config() { |self| ... }
click to toggle source
# File lib/marklogic/application.rb, line 183 def config yield(self) if block_given? build_implicit_defs end
content_databases()
click to toggle source
# File lib/marklogic/application.rb, line 158 def content_databases app_servers.values.map do |app_server| databases[app_server['content-database']] end end
create()
click to toggle source
# File lib/marklogic/application.rb, line 14 def create logger.debug(%Q{Creating Application: #{@app_name}}) build_implicit_defs databases.each do |database_name, database| unless database.exists? database.create else database.update end end forests.each do |forest_name, forest| forest.create unless forest.exists? end app_servers.each do |server_name, app_server| unless app_server.exists? app_server.create else app_server.update end end end
create_indexes()
click to toggle source
# File lib/marklogic/application.rb, line 41 def create_indexes build_implicit_defs content_databases.each do |database| if database.exists? database.update else database.create end end end
database(name) { |database| ... }
click to toggle source
# File lib/marklogic/application.rb, line 170 def database(name) database = MarkLogic::Database.new(name, self.connection) database.application = self databases[name] = database yield(database) if block_given? end
databases()
click to toggle source
# File lib/marklogic/application.rb, line 139 def databases @databases ||= {} end
drop()
click to toggle source
# File lib/marklogic/application.rb, line 61 def drop logger.debug(%Q{Dropping Application: #{@app_name}}) build_implicit_defs app_servers.each do |server_name, app_server| app_server.drop if app_server.exists? end databases.each do |database_name, database| if database.exists? database.drop end end forests.each do |forest_name, forest| if forest.exists? forest.drop end end end
exists?()
click to toggle source
# File lib/marklogic/application.rb, line 83 def exists? build_implicit_defs databases.each do |database_name, database| return false if !database.exists? end forests.each do |forest_name, forest| return false if !forest.exists? end app_servers.each do |server_name, app_server| return false if !app_server.exists? end return true end
forests()
click to toggle source
# File lib/marklogic/application.rb, line 135 def forests @forests ||= {} end
inspect()
click to toggle source
# File lib/marklogic/application.rb, line 188 def inspect as_nice_string = [ " app_name: #{app_name.inspect}", " port: #{port.inspect}", " app_servers: #{app_servers.values.each { |app_server| app_server.inspect }}" ].join(",") "#<#{self.class}#{as_nice_string}>" end
load()
click to toggle source
# File lib/marklogic/application.rb, line 203 def load app_servers[app_name] = MarkLogic::AppServer.load(app_name) @port = app_servers[app_name]['port'] load_databases build_indexes end
modules_databases()
click to toggle source
# File lib/marklogic/application.rb, line 164 def modules_databases app_servers.values.map do |app_server| databases[app_server['modules-database']] end end
stale?()
click to toggle source
# File lib/marklogic/application.rb, line 101 def stale? build_implicit_defs databases.each do |database_name, database| unless database.exists? logger.debug "database: #{database_name} is missing" return true end end content_databases.each do |database| if database.stale? logger.debug "database: #{database.database_name} is stale" return true end end forests.each do |forest_name, forest| unless forest.exists? logger.debug "forest: #{forest_name} is missing" return true end end app_servers.each do |server_name, app_server| unless app_server.exists? logger.debug "app_server: #{server_name} is missing" return true end end return false end
sync()
click to toggle source
# File lib/marklogic/application.rb, line 53 def sync create if stale? end
sync!()
click to toggle source
# File lib/marklogic/application.rb, line 57 def sync! create end
Private Instance Methods
build_appservers()
click to toggle source
# File lib/marklogic/application.rb, line 265 def build_appservers if app_servers.empty? app_servers[@app_name] = MarkLogic::AppServer.new(@app_name, @port, "http", "Default", :connection => self.connection, :admin_connection => admin_connection) end end
build_databases()
click to toggle source
# File lib/marklogic/application.rb, line 271 def build_databases app_servers.each_value do |app_server| db_name = app_server['content-database'] unless databases.has_key?(db_name) db = MarkLogic::Database.new(db_name, self.connection) db.application = self databases[db_name] = db end forests[db_name] = MarkLogic::Forest.new(db_name, nil, self.connection) unless forests.has_key?(db_name) forests[db_name].database = databases[db_name] modules_db_name = app_server['modules-database'] unless databases.has_key?(modules_db_name) modules_db = MarkLogic::Database.new(modules_db_name, self.connection) modules_db.application = self databases[modules_db_name] = modules_db end forests[modules_db_name] = MarkLogic::Forest.new(modules_db_name, nil, self.connection) unless forests.has_key?(modules_db_name) forests[modules_db_name].database = databases[modules_db_name] end triggers_database = nil schema_database = nil databases.each_value do |database| if database.has_key?('triggers-database') triggers_database = database['triggers-database'] end if database.has_key?('schema-database') schema_database = database['schema-database'] end end if triggers_database && !databases.has_key?(triggers_database) databases[triggers_database] = MarkLogic::Database.new(triggers_database, self.connection) end if schema_database && !databases.has_key?(schema_database) databases[schema_database] = MarkLogic::Database.new(schema_database, self.connection) end end
build_implicit_defs()
click to toggle source
# File lib/marklogic/application.rb, line 259 def build_implicit_defs build_appservers build_databases build_indexes end
build_indexes()
click to toggle source
# File lib/marklogic/application.rb, line 313 def build_indexes content_databases.each do |database| database.reset_indexes indexes.clone.each do |key, index| index.append_to_db(database) end end end
indexes()
click to toggle source
# File lib/marklogic/application.rb, line 255 def indexes @indexes ||= {} end
load_database(db_name)
click to toggle source
# File lib/marklogic/application.rb, line 212 def load_database(db_name) db = MarkLogic::Database.load(db_name, self.connection) db.application = self databases[db_name] = db db['forest'].each do |forest_name| forests[forest_name] = MarkLogic::Forest.load(forest_name, nil, self.connection) unless forests.has_key?(forest_name) forests[forest_name].database = db end end
load_databases()
click to toggle source
# File lib/marklogic/application.rb, line 223 def load_databases app_servers.each_value do |app_server| db_name = app_server['content-database'] load_database(db_name) unless databases.has_key?(db_name) modules_db_name = app_server['modules-database'] load_database(modules_db_name) unless databases.has_key?(modules_db_name) end triggers_database = nil schema_database = nil databases.each_value do |database| if database.has_key?('triggers-database') triggers_database = database['triggers-database'] end if database.has_key?('schema-database') schema_database = database['schema-database'] end end if triggers_database && !databases.has_key?(triggers_database) load_database(triggers_database) # databases[triggers_database] = MarkLogic::Database.new(triggers_database, self.connection) end if schema_database && !databases.has_key?(schema_database) load_database(schema_database) # databases[schema_database] = MarkLogic::Database.new(schema_database, self.connection) end end