Sha256: 66b6d09be6fa7cd363cea78ae39f31aa0be27c7c59eb6cd517f43eb8bfdc19d6
Contents?: true
Size: 1.01 KB
Versions: 1
Compression:
Stored size: 1.01 KB
Contents
require_relative '../livetext' require_relative 'string' make_exception(:BadVariableName, "Error: invalid variable name") make_exception(:NoEqualSign, "Error: no equal sign found") # FIXME probably belongs elsewhere? class Livetext::ParseMixin # < StringParser # def self.parse(str) # self.new(str).parse # end # # def initialize(line) # super # end def cwd_root? File.dirname(File.expand_path(".")) == "/" end def find_mixin(name) file = "#{Plugins}/" + name.downcase + ".rb" return file if File.exist?(file) file = "./#{name}.rb" return file if File.exist?(file) raise "No such mixin '#{name}'" if cwd_root? Dir.chdir("..") { find_mixin(name) } end def use_mixin(name, file) modname = name.gsub("/","_").capitalize meths = grab_file(file) string = "module ::#{modname}; #{meths}\nend" eval(string) newmod = Object.const_get("::" + modname) self.extend(newmod) init = "init_#{name}" self.send(init) if self.respond_to? init end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
livetext-0.9.13 | lib/parser/mixin.rb |