Module: Maglove::Engine

Defined in:
lib/maglove/engine.rb,
lib/maglove/engine/scope.rb,
lib/maglove/engine/version.rb,
lib/maglove/engine/registry.rb,
lib/maglove/engine/configuration.rb,
lib/maglove/engine/style_builder.rb

Defined Under Namespace

Classes: Configuration, Registry, RenderError, Scope, StyleBuilder

Constant Summary collapse

VERSION =
"2.0.14"

Class Method Summary collapse

Class Method Details

.configObject



14
15
16
# File 'lib/maglove/engine.rb', line 14

def self.config
  Configuration.instance
end

.configure {|Configuration.instance| ... } ⇒ Object

Yields:



18
19
20
21
# File 'lib/maglove/engine.rb', line 18

def self.configure(&block)
  yield Configuration.instance if block_given?
  Configuration.instance
end

.register_widget(identifier, klass) ⇒ Object



35
36
37
# File 'lib/maglove/engine.rb', line 35

def self.register_widget(identifier, klass)
  Registry.instance.register_widget(identifier, klass)
end

.register_widgetsObject



39
40
41
42
43
44
45
46
47
48
# File 'lib/maglove/engine.rb', line 39

def self.register_widgets
  path = File.join(File.dirname(__FILE__), "/widget/*.rb")
  Dir[path].each do |file|
    require file
    identifier = File.basename(file).split(".").first
    klass_name = identifier.camelcase
    Maglove::Engine.register_widget(identifier.to_sym, "Maglove::Widget::#{klass_name}".constantize)
    Maglove::Engine.register_widget("legacy_#{identifier}".to_sym, "Maglove::Widget::Legacy#{klass_name}".constantize)
  end
end

.render(haml, variables = {}) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/maglove/engine.rb', line 27

def self.render(haml, variables = {})
  engine = Haml::Engine.new(haml, remove_whitespace: true)
  scope = Scope.new(variables)
  engine.render(scope)
rescue StandardError => e
  raise RenderError.new(e.message, e)
end

.widget(identifier, options = {}, scope) ⇒ Object



23
24
25
# File 'lib/maglove/engine.rb', line 23

def self.widget(identifier, options = {}, scope)
  Maglove::Engine::Registry.instance.widgets[identifier].new(scope, options)
end