class Smelter::DefinitionProxy
Attributes
extensions[R]
script_id[R]
Public Class Methods
extension_class()
click to toggle source
# File lib/smelter/definition_proxy.rb, line 41 def self.extension_class @extension_class end
extension_class=(val)
click to toggle source
# File lib/smelter/definition_proxy.rb, line 37 def self.extension_class=(val) @extension_class = val end
new(script_id)
click to toggle source
# File lib/smelter/definition_proxy.rb, line 6 def initialize(script_id) @script_id = script_id end
Public Instance Methods
extension(&block)
click to toggle source
# File lib/smelter/definition_proxy.rb, line 33 def extension(&block) self.class.extension_class.register(script_id, &block) end
script(&block)
click to toggle source
# File lib/smelter/definition_proxy.rb, line 14 def script(&block) runner = ScriptRunner.new # Define all locally registered extensions on this runner instance if self.class.extension_class self.class.extension_class.registry.each_pair do |extension_id, block| next unless matches_extensions_glob?(extension_id) runner.instance_eval(&block) end end # Set up runner instance for use if block_given? runner.instance_eval(&block) end runner end
Private Instance Methods
matches_extensions_glob?(extension_id)
click to toggle source
# File lib/smelter/definition_proxy.rb, line 47 def matches_extensions_glob?(extension_id) if @extensions.is_a?(String) File.fnmatch?(@extensions, extension_id) else @extensions.select { |ext| File.fnmatch?(ext, extension_id) }.any? end end