Sha256: e7e08825039c309b2e6ddbdbf5058353d79bf0eae3eba9605681ca8d8f7747ec
Contents?: true
Size: 783 Bytes
Versions: 5
Compression:
Stored size: 783 Bytes
Contents
# frozen_string_literal: true require "pakyow/support/inflector" require "pakyow/support/makeable" module Pakyow # Loads files that define an app aspect and names the objects appropriately. # class Loader def initialize(path) @path = path end def call(target) code = String.new target.__object_name.namespace.parts.each do |part| code << "module #{Support.inflector.camelize(part)}\n" end code << "class #{Support.inflector.camelize(target.__object_name.name)}\n" code << File.read(@path) code << "end\n" target.__object_name.namespace.parts.count.times do code << "end\n" end eval(code, TOPLEVEL_BINDING, @path, 1 - target.__object_name.namespace.parts.count - 1) end end end
Version data entries
5 entries across 5 versions & 1 rubygems