#
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
#
# This file is part of Ronin.
#
# Ronin is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Ronin is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Ronin. If not, see .
#
module Ronin
module UI
module Console
#
# @since 1.2.0
#
class Context
#
# Creates a new {Console} context.
#
# @return [Class]
# A new context for the {Console}.
#
def self.new
class << super; self; end
end
class << self
#
# Catches missing constants and searches the {Ronin} namespace.
#
# @param [Symbol] name
# The constant name.
#
# @return [Object]
# The found constant.
#
# @raise [NameError]
# The constant could not be found within {Ronin}.
#
# @since 1.0.0
#
# @api semipublic
#
def self.const_missing(name)
Ronin.send(:const_missing,name)
end
#
# Populates the instance variables.
#
# @param [Hash] variables
# The variable names and values.
#
def instance_variables=(variables)
variables.each do |name,value|
instance_variable_set(:"@#{name}",value)
end
end
#
# Inspects the console.
#
# @return [String]
# The inspected console.
#
# @since 1.0.0
#
# @api semipublic
#
def inspect
body = unless instance_variables.empty?
': ' << instance_variables.map { |name|
"#{name}=#{instance_variable_get(name).inspect}"
}.join(', ')
end
return "#"
end
end
end
end
end
end