Class: Kapusta::Compiler::MacroImporter
- Inherits:
-
Object
- Object
- Kapusta::Compiler::MacroImporter
- Defined in:
- lib/kapusta/compiler/macro_importer.rb
Constant Summary collapse
- EXTENSIONS =
%w[kapm kap fnlm fnl].freeze
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(path: nil, loading: nil, error_class: Kapusta::Error) ⇒ MacroImporter
constructor
A new instance of MacroImporter.
- #load(module_arg, import_form) ⇒ Object
Constructor Details
#initialize(path: nil, loading: nil, error_class: Kapusta::Error) ⇒ MacroImporter
Returns a new instance of MacroImporter.
14 15 16 17 18 |
# File 'lib/kapusta/compiler/macro_importer.rb', line 14 def initialize(path: nil, loading: nil, error_class: Kapusta::Error) @path = path @loading = loading || [] @error_class = error_class end |
Class Method Details
.module_label(module_arg) ⇒ Object
10 11 12 |
# File 'lib/kapusta/compiler/macro_importer.rb', line 10 def self.module_label(module_arg) module_arg.is_a?(Symbol) ? module_arg.to_s.tr('_', '-') : module_arg.to_s end |
Instance Method Details
#load(module_arg, import_form) ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/kapusta/compiler/macro_importer.rb', line 20 def load(module_arg, import_form) module_label = self.class.module_label(module_arg) absolute_path = resolve_macro_module(module_arg) || raise(import_error(:import_macros_module_not_found, import_form, module: module_label)) raise import_error(:import_macros_cycle, import_form, module: module_label) if @loading.include?(absolute_path) load_macro_module(absolute_path, module_label, import_form) end |