OSDN Git Service

fix profiler
[pettanr/pettanr.git] / app / assets / javascripts / locmare / booster.js.coffee
1 class Locmare.Booster\r
2   constructor: (manifest, item) ->\r
3     @manifest = manifest\r
4     @item = item\r
5     # no check\r
6     # return false unless self.resource.enable?\r
7     if @is_extendable()\r
8       _.extend(@item, @extend_module().prototype)\r
9       if @has_extend_model()\r
10         @item[@manifest.setter_method_name](@parsed_settings()) \r
11   \r
12   # get template from system resource manifest\r
13   template_path_name: () ->\r
14     @template_manifest().template_items[@template_module_name()]\r
15   \r
16   # get template manifest from system resource manifest\r
17   template_manifest: () ->\r
18     Manifest.manifest().system_resources.templates[@manifest.template_name]\r
19   \r
20   model_name: () ->\r
21     @template_path_name() + '_' + @manifest.item_name_for_extend_model\r
22   \r
23   is_enable: () ->\r
24     if @template_manifest().template_items[@template_module_name()]\r
25       true\r
26     else\r
27       false\r
28   \r
29   # get template module name\r
30   # ex) attributes[hoge_module_name] -> 'Hoge'\r
31   template_module_name: () ->\r
32     @item.get(@manifest.column_name_for_template_module)\r
33   \r
34   settings: () ->\r
35     @item.get(@manifest.settings_column_name)\r
36   \r
37   # name space for template\r
38   # ex) 'Hoge' -> Hoge\r
39   template_module: () ->\r
40     Pettanr[@template_module_name()]\r
41   \r
42   is_extendable: () ->\r
43     if @template_module()[@manifest.extend_module_name]\r
44       true\r
45     else\r
46       false\r
47   \r
48   # extend module in engine\r
49   # ex) 'SpeechBalloonModule' -> CircleSpeechBalloon::SpeechBalloonModule\r
50   extend_module: () ->\r
51     @template_module()[@manifest.extend_module_name]\r
52   \r
53   has_extend_model: () ->\r
54     if not Pettanr.is_blank(@manifest.extend_model_class_name)\r
55       true\r
56     else\r
57       false\r
58   \r
59   # extend settings data model in engine\r
60   # ex) CircleSpeechBalloon::SpeechBalloon\r
61   extend_model: () ->\r
62     if @has_extend_model()\r
63       @template_module()[@manifest.extend_model_class_name]\r
64     else\r
65       null\r
66   \r
67   check_template: () ->\r
68     if Pettanr.is_blank(@item.get(@manifest.foreign_key))\r
69       false\r
70     else\r
71       true\r
72   \r
73   # get template model\r
74   template_model: () ->\r
75     Manifest.manifest().models[@manifest.template_name].classify()\r
76   \r
77   # get extend instance\r
78   extend_item: () ->\r
79     if @extend_model()\r
80       @item[@manifest.getter_method_name]()\r
81     else\r
82       null\r
83   \r
84   parsed_settings: () ->\r
85     if Pettanr.is_blank(@settings())\r
86       {}\r
87     else\r
88       JSON.parse(@settings())\r
89   \r
90   update_settings: (new_settings) ->\r
91     @item[@manifest.setter_method_name](new_settings)\r
92   \r
93   supply_default: () ->\r
94     @extend_item().supply_default(@item)\r
95   \r
96   overwrite: () ->\r
97     @extend_item().overwrite(@item)\r
98   \r