Class: NoraMark::Extensions
- Inherits:
-
Object
- Object
- NoraMark::Extensions
- Defined in:
- lib/nora_mark/extensions.rb
Class Method Summary collapse
- .const_get_if_available(name) ⇒ Object
- .load_generator(generator) ⇒ Object
- .register_generator(generator) ⇒ Object
- .unregister_generator(generator) ⇒ Object
Class Method Details
.const_get_if_available(name) ⇒ Object
14 15 16 17 18 |
# File 'lib/nora_mark/extensions.rb', line 14 def self.const_get_if_available(name) name.split(/::/).inject(Object) { |o, c| o.const_get(c) if !o.nil? and o.const_defined? c } end |
.load_generator(generator) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/nora_mark/extensions.rb', line 20 def self.load_generator(generator) module_name = "NoraMark::#{generator.to_s.capitalize}::Generator" generator_module = const_get_if_available(module_name) return generator_module unless generator_module.nil? path = "#{generator.to_s.downcase}.rb" current_dir_path = File.(File.join('.', '.noramark-plugins', path)) home_dir_path = File.(File.join(ENV['HOME'], '.noramark-plugins', path)) if File.exist? current_dir_path require current_dir_path elsif File.exist? home_dir_path require home_dir_path else require "nora_mark_#{generator.to_s.downcase}" end const_get_if_available(module_name) end |
.register_generator(generator) ⇒ Object
3 4 5 6 7 8 |
# File 'lib/nora_mark/extensions.rb', line 3 def self.register_generator(generator) if generator.is_a? Symbol or generator.is_a? String generator = load_generator(generator) end NoraMark::Document.register_generator(generator) end |
.unregister_generator(generator) ⇒ Object
10 11 12 |
# File 'lib/nora_mark/extensions.rb', line 10 def self.unregister_generator(generator) NoraMark::Document.unregister_generator(generator) end |