Sha256: 9a7b618934e4eab655009fc222312cf7bbb5b6ac3f84217f480dc0202692aca4

Contents?: true

Size: 800 Bytes

Versions: 1

Compression:

Stored size: 800 Bytes

Contents

require_relative '../helpers'

class Livetext::Handler::Mixin
  include Livetext::Helpers
  include GlobalHelpers

  attr_reader :file

  def initialize(name, parent)
    @name = name
    @file = find_file(name, ".rb", "plugin")
    parent.graceful_error FileNotFound(name) if @file.nil?
  end

  def self.get_module(filename, parent)
    handler = self.new(filename, parent)
    modname, code = handler.read_mixin
    eval(code)   # Avoid in the future
    newmod = Object.const_get("::" + modname)
    newmod   # return actual module
  end

  def read_mixin
    modname = @name.gsub("/","_").capitalize
    meths = grab_file(@file)  # already has .rb?
    [modname, "module ::#{modname}; #{meths}\nend"]
  end

  private

  def cwd_root?
    File.dirname(File.expand_path(".")) == "/"
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
livetext-0.9.25 lib/livetext/handler/mixin.rb