Class: Lanes::API::CoffeeScriptProcessor
- Inherits:
-
JsAssetCompiler
- Object
- Tilt::Template
- JsAssetCompiler
- Lanes::API::CoffeeScriptProcessor
- Defined in:
- lib/lanes/api/coffeescript_processor.rb
Defined Under Namespace
Classes: CoffeeClass
Constant Summary collapse
- CONSTRUCTOR =
/constructor\s*:/
- EXTENDING_CLASS_DEFINITION =
/class\s+([\w|\.]+)\s+extends\s+([\w|\.]+)\s*?\n/
Instance Attribute Summary collapse
-
#contents ⇒ Object
readonly
Returns the value of attribute contents.
Instance Method Summary collapse
Methods inherited from JsAssetCompiler
Instance Attribute Details
#contents ⇒ Object (readonly)
Returns the value of attribute contents.
39 40 41 |
# File 'lib/lanes/api/coffeescript_processor.rb', line 39 def contents @contents end |
Instance Method Details
#cleaned ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/lanes/api/coffeescript_processor.rb', line 45 def cleaned @contents = data.dup data.scan(EXTENDING_CLASS_DEFINITION) do |match| (name, extends) = match cc = CoffeeClass.new(name, extends, contents) cc.ensure_property("constructor", "-> super") cc.ensure_property("FILE", "FILE") cc.save end contents end |
#evaluate(scope, locals, &block) ⇒ Object
57 58 59 |
# File 'lib/lanes/api/coffeescript_processor.rb', line 57 def evaluate(scope, locals, &block) wrap_js scope, ::CoffeeScript.compile(cleaned, bare: true) end |