问题:
如何在coffeescript中获得类似的东西
modules_list[some_calculation(__FILE__)]=a_local_class.new
我有一个模块管理器,它在运行时处理我的所有coffeescripts(js) - 即在浏览器中,这意味着:
我有
许多模块,并非所有模块都在所有情况下加载'静态'
只有一些人有依赖
模块管理器解决了init和动态重载(ajax)之类的问题 和动态init
模块在prinzip中如下所示:
class Book
constructor: ->
...
init: =>
$$$.get_module('BookReader') #<- ajax loaded if not already
later_on: =>
$$$.get_module('LetterCounter').count_letters(@) #<- ajax loaded if not already
...
@$$$.modules_list['Book'] = ->
new Book
这一切都非常令人满意。
但是我的逻辑中有一个重要的东西,因为一个&#39;模块&#39;,有一个模块名称,一个类名和 - 这就是重点 - 一个文件名
班级名称 - 这很清楚 - 不是问题,我可以命名所有&#39; Foo&#39;。它唯一不好做。
但是模块名(modules_list [&#39; Book&#39;])和coffee-(js-)文件名在Rails CoC中是多余的。
任何想法如何获得
@$$$.modules_list[some_calc(__FILE__)] = -> new Book
我是there,there可能是我的解决方案,但如果,我不明白。
提前致谢
ps:对于那些想知道&#34;为什么我这样做&#34;:
我为3个不同的客户提供了3个完全不同的应用程序,我很遥远地说明所有人的基础是什么,2个应用程序真的很大,有大量的js,并不总是需要所以我想要动态重新加载它。我帮助&#34;资产管道有点把所有文件(staticaly)用在一个没有我在最后20分钟(动态)工作的文件以便更好的调试,我摆脱了所有(向下)负载排序问题
答案 0 :(得分:0)
在这种情况下,不需要__FILE__
或类似的东西。我现在看到了。这将是命名的错误方向。
它与你自己的Rails有同样的“问题”。如果你有
module Base
class Fun
您的文件名应为base/fun.rb
,反之亦然!
文件名解析出“其内容”而非另一个方向。