skozlov-netzke-core 0.1.0.2 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +108 -0
- data/LICENSE +2 -19
- data/Manifest +50 -0
- data/README.rdoc +12 -0
- data/Rakefile +2 -3
- data/TODO +2 -0
- data/autotest/discover.rb +3 -0
- data/generators/netzke_core/netzke_core_generator.rb +6 -6
- data/generators/netzke_core/templates/create_netzke_preferences.rb +2 -2
- data/javascripts/core.js +474 -111
- data/lib/app/controllers/netzke_controller.rb +76 -0
- data/lib/app/models/netzke_preference.rb +128 -39
- data/lib/netzke-core.rb +23 -9
- data/lib/netzke/action_view_ext.rb +26 -0
- data/lib/netzke/base.rb +440 -102
- data/lib/netzke/base_js.rb +258 -0
- data/lib/netzke/controller_extensions.rb +80 -29
- data/lib/netzke/core_ext.rb +72 -21
- data/lib/netzke/feedback_ghost.rb +43 -0
- data/lib/netzke/routing.rb +9 -0
- data/netzke-core.gemspec +10 -11
- data/stylesheets/core.css +12 -0
- data/test/app_root/app/controllers/{application.rb → application_controller.rb} +0 -0
- data/test/app_root/app/models/role.rb +3 -0
- data/test/app_root/app/models/user.rb +3 -0
- data/test/app_root/config/boot.rb +2 -1
- data/test/app_root/config/database.yml +10 -0
- data/test/app_root/config/environment.rb +1 -0
- data/test/app_root/db/migrate/20081222035855_create_netzke_preferences.rb +18 -0
- data/test/app_root/db/migrate/20090423214303_create_roles.rb +11 -0
- data/test/app_root/db/migrate/20090423222114_create_users.rb +12 -0
- data/test/app_root/lib/console_with_fixtures.rb +4 -0
- data/test/app_root/script/console +1 -0
- data/test/fixtures/roles.yml +7 -0
- data/test/fixtures/users.yml +9 -0
- data/test/test_helper.rb +3 -2
- data/test/unit/core_ext_test.rb +66 -0
- data/test/unit/netzke_core_test.rb +167 -0
- data/test/unit/netzke_preference_test.rb +103 -0
- metadata +45 -30
- data/README.mdown +0 -11
- data/generators/netzke_core/templates/create_netzke_layouts.rb +0 -14
- data/generators/netzke_core/templates/netzke.html.erb +0 -10
- data/lib/app/models/netzke_layout.rb +0 -75
- data/lib/netzke/js_class_builder.rb +0 -114
- data/lib/vendor/facets/hash/recursive_merge.rb +0 -28
- data/test/core_ext_test.rb +0 -35
- data/test/netzke_core_test.rb +0 -136
@@ -0,0 +1,103 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'netzke-core'
|
3
|
+
class NetzkePreferenceTest < ActiveSupport::TestCase
|
4
|
+
test "pref to read-write" do
|
5
|
+
p = NetzkePreference
|
6
|
+
session = Netzke::Base.session
|
7
|
+
session.clear
|
8
|
+
|
9
|
+
assert_not_nil(p.pref_to_write(:test))
|
10
|
+
p[:test] = "a value"
|
11
|
+
assert_not_nil(p.pref_to_read(:test))
|
12
|
+
end
|
13
|
+
|
14
|
+
test "basic values" do
|
15
|
+
an_integer = 1976
|
16
|
+
a_float = 1976.1345
|
17
|
+
a_symbol = :a_symbol
|
18
|
+
a_true = true
|
19
|
+
a_false = false
|
20
|
+
a_nil = nil
|
21
|
+
a_hash = {"a" => an_integer, "b" => a_true, "c" => nil, "d" => a_float}
|
22
|
+
an_array = [1, "a", a_hash, [1,3,4], a_true, a_false, a_nil, a_float]
|
23
|
+
|
24
|
+
|
25
|
+
p = NetzkePreference
|
26
|
+
p[:a_hash] = a_hash
|
27
|
+
p["an_integer"] = an_integer
|
28
|
+
p[:a_true] = a_true
|
29
|
+
p[:a_false] = a_false
|
30
|
+
p[:a_nil] = a_nil
|
31
|
+
p[:an_array] = an_array
|
32
|
+
p[:a_symbol] = a_symbol
|
33
|
+
p[:a_float] = a_float
|
34
|
+
|
35
|
+
assert_equal(a_hash, p[:a_hash])
|
36
|
+
assert_equal(an_integer, p[:an_integer])
|
37
|
+
assert_equal(a_true, p[:a_true])
|
38
|
+
assert_equal(a_false, p[:a_false])
|
39
|
+
assert_equal(an_array, p[:an_array])
|
40
|
+
assert_equal(a_nil, p[:a_nil])
|
41
|
+
assert_equal(a_symbol, p[:a_symbol])
|
42
|
+
assert_equal(a_float, p[:a_float])
|
43
|
+
|
44
|
+
assert_equal(nil, p[:non_existing])
|
45
|
+
end
|
46
|
+
|
47
|
+
test "multi-user/multi-role support" do
|
48
|
+
p = NetzkePreference
|
49
|
+
session = Netzke::Base.session
|
50
|
+
|
51
|
+
admin_role = Role.create(:name => 'admin')
|
52
|
+
user_role = Role.create(:name => 'user')
|
53
|
+
|
54
|
+
admin1 = User.create(:login => 'admin1', :role => admin_role)
|
55
|
+
user1 = User.create(:login => 'user1', :role => user_role)
|
56
|
+
user2 = User.create(:login => 'user2', :role => user_role)
|
57
|
+
|
58
|
+
#
|
59
|
+
# assign a value for a role, then read it back by users with the same role
|
60
|
+
#
|
61
|
+
session.clear
|
62
|
+
session[:masq_role] = user_role.id
|
63
|
+
p[:test] = 100
|
64
|
+
|
65
|
+
# first user
|
66
|
+
session.clear
|
67
|
+
session[:netzke_user_id] = user1.id
|
68
|
+
assert_equal(100, p[:test])
|
69
|
+
|
70
|
+
# second user
|
71
|
+
session.clear
|
72
|
+
session[:netzke_user_id] = user2.id
|
73
|
+
assert_equal(100, p[:test])
|
74
|
+
|
75
|
+
#
|
76
|
+
# now overwrite the value for user2
|
77
|
+
#
|
78
|
+
p[:test] = 200
|
79
|
+
assert_equal(200, p[:test])
|
80
|
+
# .. and check that its still the same for user1
|
81
|
+
session.clear
|
82
|
+
session[:netzke_user_id] = user1.id
|
83
|
+
assert_equal(100, p[:test])
|
84
|
+
|
85
|
+
#
|
86
|
+
# now overwrite it for user1 by means of masq_user
|
87
|
+
#
|
88
|
+
session.clear
|
89
|
+
session[:masq_user] = user1.id
|
90
|
+
p[:test] = 300
|
91
|
+
assert_equal(300, p[:test])
|
92
|
+
# .. and check it's still the same for user2
|
93
|
+
session.clear
|
94
|
+
session[:masq_user] = user2.id
|
95
|
+
assert_equal(200, p[:test])
|
96
|
+
# .. and that a new user with role 'user' will still read the original value assigned for the role
|
97
|
+
user3 = User.create(:login => "user3", :role => user_role)
|
98
|
+
session.clear
|
99
|
+
session[:netzke_user_id] = user3.id
|
100
|
+
assert_equal(100, p[:test])
|
101
|
+
|
102
|
+
end
|
103
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: skozlov-netzke-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergei Kozlov
|
@@ -9,56 +9,62 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2009-09-06 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
16
16
|
description: Build ExtJS/Rails widgets with minimum effort
|
17
|
-
email: sergei@
|
17
|
+
email: sergei@playcode.nl
|
18
18
|
executables: []
|
19
19
|
|
20
20
|
extensions: []
|
21
21
|
|
22
22
|
extra_rdoc_files:
|
23
23
|
- CHANGELOG
|
24
|
+
- LICENSE
|
25
|
+
- README.rdoc
|
26
|
+
- TODO
|
24
27
|
- lib/app/controllers/netzke_controller.rb
|
25
|
-
- lib/app/models/netzke_layout.rb
|
26
28
|
- lib/app/models/netzke_preference.rb
|
29
|
+
- lib/netzke-core.rb
|
30
|
+
- lib/netzke/action_view_ext.rb
|
27
31
|
- lib/netzke/base.rb
|
32
|
+
- lib/netzke/base_js.rb
|
28
33
|
- lib/netzke/controller_extensions.rb
|
29
34
|
- lib/netzke/core_ext.rb
|
30
|
-
- lib/netzke/
|
31
|
-
- lib/netzke
|
32
|
-
- lib/vendor/facets/hash/recursive_merge.rb
|
33
|
-
- LICENSE
|
34
|
-
- README.mdown
|
35
|
+
- lib/netzke/feedback_ghost.rb
|
36
|
+
- lib/netzke/routing.rb
|
35
37
|
- tasks/netzke_core_tasks.rake
|
36
38
|
files:
|
37
39
|
- CHANGELOG
|
40
|
+
- LICENSE
|
41
|
+
- Manifest
|
42
|
+
- README.rdoc
|
43
|
+
- Rakefile
|
44
|
+
- TODO
|
45
|
+
- autotest/discover.rb
|
46
|
+
- generators/netzke_core/USAGE
|
38
47
|
- generators/netzke_core/netzke_core_generator.rb
|
39
|
-
- generators/netzke_core/templates/create_netzke_layouts.rb
|
40
48
|
- generators/netzke_core/templates/create_netzke_preferences.rb
|
41
|
-
- generators/netzke_core/templates/netzke.html.erb
|
42
|
-
- generators/netzke_core/USAGE
|
43
49
|
- init.rb
|
44
50
|
- install.rb
|
45
51
|
- javascripts/core.js
|
46
52
|
- lib/app/controllers/netzke_controller.rb
|
47
|
-
- lib/app/models/netzke_layout.rb
|
48
53
|
- lib/app/models/netzke_preference.rb
|
54
|
+
- lib/netzke-core.rb
|
55
|
+
- lib/netzke/action_view_ext.rb
|
49
56
|
- lib/netzke/base.rb
|
57
|
+
- lib/netzke/base_js.rb
|
50
58
|
- lib/netzke/controller_extensions.rb
|
51
59
|
- lib/netzke/core_ext.rb
|
52
|
-
- lib/netzke/
|
53
|
-
- lib/netzke
|
54
|
-
- lib/vendor/facets/hash/recursive_merge.rb
|
55
|
-
- LICENSE
|
56
|
-
- Manifest
|
60
|
+
- lib/netzke/feedback_ghost.rb
|
61
|
+
- lib/netzke/routing.rb
|
57
62
|
- netzke-core.gemspec
|
58
|
-
-
|
59
|
-
- README.mdown
|
63
|
+
- stylesheets/core.css
|
60
64
|
- tasks/netzke_core_tasks.rake
|
61
|
-
- test/app_root/app/controllers/
|
65
|
+
- test/app_root/app/controllers/application_controller.rb
|
66
|
+
- test/app_root/app/models/role.rb
|
67
|
+
- test/app_root/app/models/user.rb
|
62
68
|
- test/app_root/config/boot.rb
|
63
69
|
- test/app_root/config/database.yml
|
64
70
|
- test/app_root/config/environment.rb
|
@@ -68,13 +74,21 @@ files:
|
|
68
74
|
- test/app_root/config/environments/sqlite.rb
|
69
75
|
- test/app_root/config/environments/sqlite3.rb
|
70
76
|
- test/app_root/config/routes.rb
|
77
|
+
- test/app_root/db/migrate/20081222035855_create_netzke_preferences.rb
|
78
|
+
- test/app_root/db/migrate/20090423214303_create_roles.rb
|
79
|
+
- test/app_root/db/migrate/20090423222114_create_users.rb
|
80
|
+
- test/app_root/lib/console_with_fixtures.rb
|
71
81
|
- test/app_root/script/console
|
72
|
-
- test/
|
73
|
-
- test/
|
82
|
+
- test/fixtures/roles.yml
|
83
|
+
- test/fixtures/users.yml
|
74
84
|
- test/test_helper.rb
|
85
|
+
- test/unit/core_ext_test.rb
|
86
|
+
- test/unit/netzke_core_test.rb
|
87
|
+
- test/unit/netzke_preference_test.rb
|
75
88
|
- uninstall.rb
|
76
|
-
has_rdoc:
|
77
|
-
homepage: http://
|
89
|
+
has_rdoc: false
|
90
|
+
homepage: http://playcode.nl
|
91
|
+
licenses:
|
78
92
|
post_install_message:
|
79
93
|
rdoc_options:
|
80
94
|
- --line-numbers
|
@@ -82,7 +96,7 @@ rdoc_options:
|
|
82
96
|
- --title
|
83
97
|
- Netzke-core
|
84
98
|
- --main
|
85
|
-
- README.
|
99
|
+
- README.rdoc
|
86
100
|
require_paths:
|
87
101
|
- lib
|
88
102
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -100,10 +114,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
100
114
|
requirements: []
|
101
115
|
|
102
116
|
rubyforge_project: netzke-core
|
103
|
-
rubygems_version: 1.
|
117
|
+
rubygems_version: 1.3.5
|
104
118
|
signing_key:
|
105
|
-
specification_version:
|
119
|
+
specification_version: 3
|
106
120
|
summary: Build ExtJS/Rails widgets with minimum effort
|
107
121
|
test_files:
|
108
|
-
- test/core_ext_test.rb
|
109
|
-
- test/netzke_core_test.rb
|
122
|
+
- test/unit/core_ext_test.rb
|
123
|
+
- test/unit/netzke_core_test.rb
|
124
|
+
- test/unit/netzke_preference_test.rb
|
data/README.mdown
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
class CreateNetzkeLayouts < ActiveRecord::Migration
|
2
|
-
def self.up
|
3
|
-
create_table :netzke_layouts do |t|
|
4
|
-
t.string :widget_name
|
5
|
-
t.string :items_class
|
6
|
-
t.integer :user_id
|
7
|
-
t.timestamps
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def self.down
|
12
|
-
drop_table :netzke_layouts
|
13
|
-
end
|
14
|
-
end
|
@@ -1,10 +0,0 @@
|
|
1
|
-
<head>
|
2
|
-
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
3
|
-
<title>netzke widget</title>
|
4
|
-
<%= javascript_include_tag("/extjs/adapter/ext/ext-base.js", "/extjs/ext-all-debug.js") %>
|
5
|
-
<%= javascript_include_tag("netzke/netzke.js") %>
|
6
|
-
<%= stylesheet_link_tag("/extjs/resources/css/ext-all.css") %>
|
7
|
-
</head>
|
8
|
-
<body id="">
|
9
|
-
<%= yield %>
|
10
|
-
</body>
|
@@ -1,75 +0,0 @@
|
|
1
|
-
class NetzkeLayout < ActiveRecord::Base
|
2
|
-
# has_many :layout_items#, :class_name => "ExtWidget::LayoutItem", :order => :position
|
3
|
-
# has_many :objects, :class_name => "Objects", :foreign_key => "class_name_id"
|
4
|
-
# belongs_to :role
|
5
|
-
# belongs_to :user
|
6
|
-
|
7
|
-
UNRELATED_ATTRS = %w(created_at updated_at position layout_id)
|
8
|
-
|
9
|
-
def self.user_id
|
10
|
-
@@user_id ||= nil
|
11
|
-
end
|
12
|
-
|
13
|
-
def layout_items
|
14
|
-
items_class.constantize.find_all_by_layout_id(id, :order => 'position')
|
15
|
-
end
|
16
|
-
|
17
|
-
#
|
18
|
-
# def self.user_id=(user_id)
|
19
|
-
# @@user_id = user_id
|
20
|
-
# end
|
21
|
-
#
|
22
|
-
# def self.layout_items(widget_name)
|
23
|
-
# layout = self.layout(widget_name)
|
24
|
-
# layout.nil? ? nil : layout.layout_items.map(&:attributes).map{|item| item.delete_if{|k,v| UNRELATED_ATTRS.include?(k)}}
|
25
|
-
# end
|
26
|
-
#
|
27
|
-
def self.by_widget(widget_name)
|
28
|
-
self.find(:first, :conditions => {:widget_name => widget_name, :user_id => self.user_id})
|
29
|
-
end
|
30
|
-
|
31
|
-
def move_item(old_index, new_index)
|
32
|
-
layout_item = layout_items[old_index]
|
33
|
-
layout_item.remove_from_list
|
34
|
-
layout_item.insert_at(new_index + 1)
|
35
|
-
end
|
36
|
-
|
37
|
-
# def self.layout_items(widget_name)
|
38
|
-
# layout = self.by_widget(widget_name)
|
39
|
-
# if layout
|
40
|
-
# layout.layout_items
|
41
|
-
# else
|
42
|
-
# # create new layout and fill it out with default values
|
43
|
-
# layout = Layout.create({:widget_name => widget_name, :user_id => self.user_id})
|
44
|
-
# end
|
45
|
-
# end
|
46
|
-
|
47
|
-
def items_hash
|
48
|
-
layout_items.map(&:attributes).map{|item| item.delete_if{|k,v| UNRELATED_ATTRS.include?(k)}}.map{ |i| i.convert_keys{ |k| k.to_sym } }
|
49
|
-
end
|
50
|
-
|
51
|
-
# if layout items are provided, use them instead of defaults (exsposed) layout items, but merge their configs with the default
|
52
|
-
# def self.create_layout_for_widget(widget_name, data_class_name, layout_item_class_name, items = nil)
|
53
|
-
# layout = self.create(:widget_name => widget_name, :items_class => layout_item_class_name, :user_id => self.user_id)
|
54
|
-
# data_class = data_class_name.constantize
|
55
|
-
# layout_item_class = layout_item_class_name.constantize
|
56
|
-
#
|
57
|
-
#
|
58
|
-
# if items.nil?
|
59
|
-
# complete_items = data_class.exposed_columns
|
60
|
-
# else
|
61
|
-
# # normalize columns
|
62
|
-
# columns = columns.
|
63
|
-
# default_columns = data_class.exposed_columns.map{|c| c.is_a?(Symbol) ? {:name => c} : c}
|
64
|
-
# columns.each
|
65
|
-
#
|
66
|
-
# complete_columns = columns.nil? ? : columns
|
67
|
-
# complete_columns.each do |c|
|
68
|
-
# config = c.is_a?(Hash) ? c : {:name => c}
|
69
|
-
# # we have to merge layout_id in order to have :position set up properly
|
70
|
-
# item = layout_item_class.create_with_defaults(config.merge({:layout_id => layout.id}), data_class)
|
71
|
-
# end
|
72
|
-
# layout
|
73
|
-
# end
|
74
|
-
|
75
|
-
end
|
@@ -1,114 +0,0 @@
|
|
1
|
-
module Netzke
|
2
|
-
#
|
3
|
-
# Module which provides JS-class generation functionality for the widgets ("client-side"). This code is executed only once per widget class, and the results are cached at the server (unless widget specifies config[:no_caching] => true).
|
4
|
-
# Included into Netzke::Base class
|
5
|
-
# Most of the methods below are meant to be overwritten by a concrete widget class.
|
6
|
-
#
|
7
|
-
module JsClassBuilder
|
8
|
-
# the JS (Ext) class that we inherit from
|
9
|
-
def js_base_class; "Ext.Panel"; end
|
10
|
-
|
11
|
-
# widget's actions that are loaded at the moment of instantiating a widget
|
12
|
-
def actions; null; end
|
13
|
-
|
14
|
-
# widget's tools that are loaded at the moment of instantiating a widget see (js_config method)
|
15
|
-
def tools; []; end
|
16
|
-
|
17
|
-
def tbar; null; end
|
18
|
-
|
19
|
-
def bbar; null; end
|
20
|
-
|
21
|
-
# functions and properties that will be used to extend the functionality of (Ext) JS-class specified in js_base_class
|
22
|
-
def js_extend_properties; {}; end
|
23
|
-
|
24
|
-
# code executed before and after the constructor
|
25
|
-
def js_before_constructor; ""; end
|
26
|
-
def js_after_constructor; ""; end
|
27
|
-
|
28
|
-
# widget's listeners
|
29
|
-
def js_listeners; {}; end
|
30
|
-
|
31
|
-
# widget's menus
|
32
|
-
def js_menus; []; end
|
33
|
-
|
34
|
-
# items
|
35
|
-
def js_items; null; end
|
36
|
-
|
37
|
-
# default config that is passed into the constructor
|
38
|
-
def js_default_config
|
39
|
-
{
|
40
|
-
:title => short_widget_class_name,
|
41
|
-
:listeners => js_listeners,
|
42
|
-
:tools => "config.tools".l,
|
43
|
-
:actions => "config.actions".l,
|
44
|
-
:tbar => "config.tbar".l,
|
45
|
-
:bbar => "config.bbar".l,
|
46
|
-
:items => js_items,
|
47
|
-
:height => 400,
|
48
|
-
:width => 800,
|
49
|
-
:border => false
|
50
|
-
}
|
51
|
-
end
|
52
|
-
|
53
|
-
# declaration of widget's class (stored directly in the cache storage at the client side to be reused at the moment of widget instantiation)
|
54
|
-
def js_class
|
55
|
-
<<-JS
|
56
|
-
Ext.componentCache['#{short_widget_class_name}'] = Ext.extend(#{js_base_class}, Ext.chainApply([Ext.widgetMixIn, {
|
57
|
-
constructor: function(config){
|
58
|
-
this.widgetInit(config);
|
59
|
-
#{js_before_constructor}
|
60
|
-
Ext.componentCache['#{short_widget_class_name}'].superclass.constructor.call(this, Ext.apply(#{js_default_config.to_js}, config));
|
61
|
-
#{js_after_constructor}
|
62
|
-
this.setEvents();
|
63
|
-
this.addMenus(#{js_menus.to_js});
|
64
|
-
}
|
65
|
-
}, #{js_extend_properties.to_js}]))
|
66
|
-
JS
|
67
|
-
end
|
68
|
-
|
69
|
-
# generate instantiating - used when a widget is generated stand-alone (as a part of a HTML page)
|
70
|
-
def js_widget_instance
|
71
|
-
%Q(var #{config[:name].to_js} = new Ext.componentCache['#{short_widget_class_name}'](#{js_config.to_js});)
|
72
|
-
end
|
73
|
-
|
74
|
-
# the config that is send from the server and is used for instantiating a widget
|
75
|
-
def js_config
|
76
|
-
res = {}
|
77
|
-
|
78
|
-
# recursively include configs of all (non-late) aggregatees, so that the widget can instantiate them, too
|
79
|
-
aggregatees.each_pair do |aggr_name, aggr_config|
|
80
|
-
next if aggr_config[:late_aggregation]
|
81
|
-
res["#{aggr_name}_config".to_sym] = aggregatee_instance(aggr_name.to_sym).js_config
|
82
|
-
end
|
83
|
-
|
84
|
-
# interface
|
85
|
-
interface = interface_points.inject({}){|h,interfacep| h.merge(interfacep => widget_action(interfacep))}
|
86
|
-
res.merge!(:interface => interface)
|
87
|
-
|
88
|
-
res.merge!(:widget_class_name => short_widget_class_name)
|
89
|
-
|
90
|
-
res.merge!(config[:ext_config])
|
91
|
-
res.merge!(:id => @id_name)
|
92
|
-
|
93
|
-
# include tools and actions
|
94
|
-
res.merge!(:tools => tools)
|
95
|
-
res.merge!(:actions => actions)
|
96
|
-
res
|
97
|
-
end
|
98
|
-
|
99
|
-
# class definition of the widget plus that of all the dependencies, minus those that are specified as dependencies_to_exclude
|
100
|
-
def js_missing_code(dependencies_to_exclude = [])
|
101
|
-
result = ""
|
102
|
-
dependencies.each do |dep_name|
|
103
|
-
dependency_class = "Netzke::#{dep_name}".constantize
|
104
|
-
result << dependency_class.new(config).js_missing_code(dependencies_to_exclude)
|
105
|
-
end
|
106
|
-
result << js_class.strip_js_comments unless dependencies_to_exclude.include?(short_widget_class_name) && !config[:no_caching]
|
107
|
-
result
|
108
|
-
end
|
109
|
-
|
110
|
-
# little helpers
|
111
|
-
def this; "this".l; end
|
112
|
-
def null; "null".l; end
|
113
|
-
end
|
114
|
-
end
|