module Wpxf

The root namespace.

The root namespace.

The root namespace.

The root namespace.

The root namespace.

The root namespace.

Public Class Methods

app_path() click to toggle source
# File lib/wpxf.rb, line 21
def self.app_path
  File.expand_path(File.dirname(__dir__))
end
build_module_list(namespace, source_folders = []) click to toggle source
# File lib/wpxf/modules.rb, line 16
def self.build_module_list(namespace, source_folders = [])
  modules = namespace.constants.select do |c|
    namespace.const_get(c).is_a? Class
  end

  modules.map do |m|
    klass = namespace.const_get(m)
    filename = klass.new.method(:initialize).source_location[0]

    # Remove any source folders from the path and store the
    # relative path that will be used in the CLI.
    source_folders.each do |source_folder|
      filename = filename.sub(source_folder, '')
    end

    {
      class: klass,
      name: filename.sub(/^\//, '').sub(/\.rb$/, '')
    }
  end
end
change_stdout_sync(enabled) { |enabled| ... } click to toggle source
# File lib/wpxf.rb, line 41
def self.change_stdout_sync(enabled)
  original_setting = STDOUT.sync
  STDOUT.sync = true
  yield(enabled)
  STDOUT.sync = original_setting
end
custom_modules_path() click to toggle source
# File lib/wpxf/modules.rb, line 8
def self.custom_modules_path
  File.join(Wpxf.home_directory, 'modules')
end
data_directory() click to toggle source
# File lib/wpxf.rb, line 17
def self.data_directory
  File.join(app_path, 'data')
end
databases_path() click to toggle source
# File lib/wpxf.rb, line 35
def self.databases_path
  path = File.join(home_directory, 'db')
  FileUtils.mkdir_p(path) unless File.directory?(path)
  path
end
gemspec() click to toggle source
# File lib/wpxf.rb, line 12
def self.gemspec
  spec_path = File.join(Wpxf.app_path, 'wpxf.gemspec')
  Gem::Specification.load(spec_path)
end
home_directory() click to toggle source
# File lib/wpxf.rb, line 29
def self.home_directory
  path = File.join(Dir.home, '.wpxf')
  FileUtils.mkdir_p(path) unless File.directory?(path)
  path
end
load_custom_modules() click to toggle source
# File lib/wpxf/modules.rb, line 44
def self.load_custom_modules
  custom_modules_path = File.join(Wpxf.home_directory, 'modules', '**', '*.rb')
  Dir.glob(custom_modules_path).each { |p| load p }
end
load_module(path) click to toggle source
# File lib/wpxf/modules.rb, line 38
def self.load_module(path)
  mod = Wpxf::Models::Module.first(path: path)
  raise "\"#{path}\" is not a valid module" if mod.nil?
  Object.const_get(mod.class_name).new
end
modules_path() click to toggle source
# File lib/wpxf/modules.rb, line 4
def self.modules_path
  File.join(Wpxf.app_path, 'lib', 'wpxf', 'modules')
end
payloads_path() click to toggle source
# File lib/wpxf/modules.rb, line 12
def self.payloads_path
  File.join(Wpxf.app_path, 'lib', 'wpxf', 'payloads')
end
version() click to toggle source
# File lib/wpxf.rb, line 25
def self.version
  gemspec.version.to_s
end