Module: Geminus
- Defined in:
- lib/geminus.rb,
lib/geminus/dsl.rb,
lib/geminus/version.rb,
lib/geminus/registry.rb,
lib/geminus/container.rb
Defined Under Namespace
Modules: DSL
Classes: Container, Registry
Constant Summary
collapse
- PREAMBLE =
File.read("#{__dir__}/geminus/preamble.js").freeze
- VERSION =
"0.1.0".freeze
Class Method Summary
collapse
Class Method Details
.extended(base) ⇒ Object
12
13
14
15
16
17
|
# File 'lib/geminus.rb', line 12
def extended(base)
Registry.instance << base
base.instance_variable_set(:@geminus, {})
base.send(:extend, DSL)
end
|
.generate_js ⇒ Object
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/geminus.rb', line 19
def generate_js
parts = [PREAMBLE]
Registry.instance.each do |geminus|
data = geminus.name.split("::".freeze).reverse
.inject(geminus.generate_js) { |a, e| "{#{JSON.dump e}:#{a}}" }
parts << "geminus(#{data});"
end
"(function(world){\n#{parts.join "\n;\n".freeze}\n}(this));"
end
|