Class: Lanes::API::CoffeeScriptProcessor
- Inherits:
-
JsAssetCompiler
- Object
- Tilt::Template
- JsAssetCompiler
- Lanes::API::CoffeeScriptProcessor
- Defined in:
- lib/lanes/api/coffeescript_processor.rb
Direct Known Subclasses
Defined Under Namespace
Classes: CoffeeClass, ReactCoffeeClass
Constant Summary collapse
- CONSTRUCTOR =
/constructor\s*:/- EXTENDING_CLASS_DEFINITION =
/^\s*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.
60 61 62 |
# File 'lib/lanes/api/coffeescript_processor.rb', line 60 def contents @contents end |
Instance Method Details
#cleaned ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/lanes/api/coffeescript_processor.rb', line 66 def cleaned @contents = data.dup data.scan(EXTENDING_CLASS_DEFINITION) do |match| (name, extends) = match cc = if extends =~ /\.(React|Screens|Components)\./ ReactCoffeeClass.new(name, extends, contents) else CoffeeClass.new(name, extends, contents) end cc.setup_properties cc.save end contents end |
#evaluate(scope, locals, &block) ⇒ Object
82 83 84 |
# File 'lib/lanes/api/coffeescript_processor.rb', line 82 def evaluate(scope, locals, &block) wrap_js scope, ::CoffeeScript.compile(cleaned, bare: true) end |