class Marv::Server::Server
Attributes
config[RW]
context[RW]
database[RW]
host[RW]
name[RW]
path[RW]
port[RW]
task[RW]
Public Class Methods
new(task, dir)
click to toggle source
Initialize server config
# File lib/marv/server/server.rb, line 13 def initialize(task, dir) @task = task @global = Marv::Global.new(task) @name = dir @path = server_path @config_file = config_file @options = {} @config = server_config @host = server_host @port = server_port @database = db_client @context = server_context @global.clean_broken_links(server_projects_paths) end
Public Instance Methods
ask_database_details()
click to toggle source
Database details
# File lib/marv/server/server.rb, line 127 def ask_database_details options = {} options[:db_user] = @task.ask_input "MySQL database username:", :default => @global.config[:db_user] options[:db_password] = @task.ask_input "MySQL database password:", :default => @global.config[:db_password] options[:db_host] = @task.ask_input "MySQL database host:", :default => @global.config[:db_host] options[:db_port] = @task.ask_input "MySQL database port:", :default => @global.config[:db_port] return options end
ask_server_details()
click to toggle source
Server
details
# File lib/marv/server/server.rb, line 118 def ask_server_details options = {} options[:server_host] = @task.ask_input "Where do you want to run the server?", :default => @global.config[:server_host] options[:server_port] = @task.ask_input "Which port do you want to use?", :default => @global.config[:server_port] return options end
ask_wordpress_details()
click to toggle source
Wordpress details
# File lib/marv/server/server.rb, line 138 def ask_wordpress_details options = {} options[:wp_version] = @task.ask_input "WordPress version to install:", :default => @global.config[:wp_version] return options end
config_file()
click to toggle source
Config file
# File lib/marv/server/server.rb, line 40 def config_file ::File.join(server_path, 'config.rb') end
create_database()
click to toggle source
Create
MySQL database
# File lib/marv/server/server.rb, line 181 def create_database begin db_client_create db_client_grant_all db_client_flush_priv @database.close rescue Exception => e @task.say_error "An error occured while creating the database:", e.message, false, true end end
db_client()
click to toggle source
Server
database
# File lib/marv/server/server.rb, line 146 def db_client begin ::Mysql2::Client.new(:host => db_host, :port => db_port, :username => db_user, :password => db_password) rescue Mysql2::Error::ConnectionError @task.say_error "Not able to connect to the database.", "Start the database if it is not running.", false abort end end
db_client_create()
click to toggle source
MySQL create database
# File lib/marv/server/server.rb, line 156 def db_client_create @database.query("CREATE DATABASE IF NOT EXISTS #{db_name}") end
db_client_drop()
click to toggle source
MySQL create database
# File lib/marv/server/server.rb, line 161 def db_client_drop @database.query("DROP DATABASE IF EXISTS #{db_name}") end
db_client_flush_priv()
click to toggle source
MySQL flush privileges
# File lib/marv/server/server.rb, line 176 def db_client_flush_priv @database.query("FLUSH PRIVILEGES") end
db_client_grant_all()
click to toggle source
MySQL grant all privileges
# File lib/marv/server/server.rb, line 166 def db_client_grant_all @database.query("GRANT ALL PRIVILEGES ON #{db_name}.* TO '#{db_user}'@'#{db_host}'") end
db_client_revoke_all()
click to toggle source
MySQL revoke all privileges
# File lib/marv/server/server.rb, line 171 def db_client_revoke_all @database.query("REVOKE ALL PRIVILEGES ON #{db_name}.* FROM '#{db_user}'@'#{db_host}'") end
db_host()
click to toggle source
Database host
# File lib/marv/server/server.rb, line 60 def db_host @config[:db_host] end
db_name()
click to toggle source
Database name
# File lib/marv/server/server.rb, line 45 def db_name 'marv_'+@name.gsub(/\W/, '_').downcase end
db_password()
click to toggle source
Database user password
# File lib/marv/server/server.rb, line 55 def db_password @config[:db_password] end
db_port()
click to toggle source
Database port
# File lib/marv/server/server.rb, line 65 def db_port @config[:db_port] end
db_user()
click to toggle source
Database username
# File lib/marv/server/server.rb, line 50 def db_user @config[:db_user] end
exists?()
click to toggle source
Server
exists
# File lib/marv/server/server.rb, line 30 def exists? ::File.exists?(server_path) end
remove_database()
click to toggle source
Remove MySQL database
# File lib/marv/server/server.rb, line 193 def remove_database begin db_client_drop db_client_revoke_all db_client_flush_priv @database.close rescue Exception => e @task.say_error "An error occured while removing the database:", e.message, false, true end end
server_config()
click to toggle source
Server
config file
# File lib/marv/server/server.rb, line 85 def server_config config = @global.config # Check for user options unless @options.nil? config.merge!(@options) end # Check for config.rb in server folder if ::File.exists?(@config_file) config.merge!(@global.load_ruby_config(@config_file)) end return config end
server_context()
click to toggle source
Get server class context
# File lib/marv/server/server.rb, line 205 def server_context instance_eval('binding') end
server_host()
click to toggle source
Server
host
# File lib/marv/server/server.rb, line 75 def server_host @config[:server_host] end
server_options()
click to toggle source
Ask for server options
# File lib/marv/server/server.rb, line 102 def server_options options = {} unless ::File.exists?(@config_file) @task.say_info "This will create a new development server." @task.say_warning "Please enter server settings below:" options.merge!(ask_server_details) options.merge!(ask_database_details) options.merge!(ask_wordpress_details) end return options end
server_path()
click to toggle source
Server
path
# File lib/marv/server/server.rb, line 35 def server_path ::File.join(@global.servers_path, @name) end
server_port()
click to toggle source
Server
port
# File lib/marv/server/server.rb, line 80 def server_port @config[:server_port] end
server_projects_paths()
click to toggle source
Server
projects paths
# File lib/marv/server/server.rb, line 210 def server_projects_paths paths = ::Dir.glob(::File.join(server_path, 'wp-content', 'themes', '*')) paths = paths + ::Dir.glob(::File.join(server_path, 'wp-content', 'plugins', '*')) return paths end
wp_version()
click to toggle source
Wordpress version
# File lib/marv/server/server.rb, line 70 def wp_version @config[:wp_version] end