skozlov-netzke-core 0.1.0.2 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. data/CHANGELOG +108 -0
  2. data/LICENSE +2 -19
  3. data/Manifest +50 -0
  4. data/README.rdoc +12 -0
  5. data/Rakefile +2 -3
  6. data/TODO +2 -0
  7. data/autotest/discover.rb +3 -0
  8. data/generators/netzke_core/netzke_core_generator.rb +6 -6
  9. data/generators/netzke_core/templates/create_netzke_preferences.rb +2 -2
  10. data/javascripts/core.js +474 -111
  11. data/lib/app/controllers/netzke_controller.rb +76 -0
  12. data/lib/app/models/netzke_preference.rb +128 -39
  13. data/lib/netzke-core.rb +23 -9
  14. data/lib/netzke/action_view_ext.rb +26 -0
  15. data/lib/netzke/base.rb +440 -102
  16. data/lib/netzke/base_js.rb +258 -0
  17. data/lib/netzke/controller_extensions.rb +80 -29
  18. data/lib/netzke/core_ext.rb +72 -21
  19. data/lib/netzke/feedback_ghost.rb +43 -0
  20. data/lib/netzke/routing.rb +9 -0
  21. data/netzke-core.gemspec +10 -11
  22. data/stylesheets/core.css +12 -0
  23. data/test/app_root/app/controllers/{application.rb → application_controller.rb} +0 -0
  24. data/test/app_root/app/models/role.rb +3 -0
  25. data/test/app_root/app/models/user.rb +3 -0
  26. data/test/app_root/config/boot.rb +2 -1
  27. data/test/app_root/config/database.yml +10 -0
  28. data/test/app_root/config/environment.rb +1 -0
  29. data/test/app_root/db/migrate/20081222035855_create_netzke_preferences.rb +18 -0
  30. data/test/app_root/db/migrate/20090423214303_create_roles.rb +11 -0
  31. data/test/app_root/db/migrate/20090423222114_create_users.rb +12 -0
  32. data/test/app_root/lib/console_with_fixtures.rb +4 -0
  33. data/test/app_root/script/console +1 -0
  34. data/test/fixtures/roles.yml +7 -0
  35. data/test/fixtures/users.yml +9 -0
  36. data/test/test_helper.rb +3 -2
  37. data/test/unit/core_ext_test.rb +66 -0
  38. data/test/unit/netzke_core_test.rb +167 -0
  39. data/test/unit/netzke_preference_test.rb +103 -0
  40. metadata +45 -30
  41. data/README.mdown +0 -11
  42. data/generators/netzke_core/templates/create_netzke_layouts.rb +0 -14
  43. data/generators/netzke_core/templates/netzke.html.erb +0 -10
  44. data/lib/app/models/netzke_layout.rb +0 -75
  45. data/lib/netzke/js_class_builder.rb +0 -114
  46. data/lib/vendor/facets/hash/recursive_merge.rb +0 -28
  47. data/test/core_ext_test.rb +0 -35
  48. data/test/netzke_core_test.rb +0 -136
@@ -1,28 +0,0 @@
1
- class Hash
2
- # Same as Hash#merge but recursively merges sub-hashes.
3
- def recursive_merge(other)
4
- hash = self.dup
5
- other.each do |key, value|
6
- myval = self[key]
7
- if value.is_a?(Hash) && myval.is_a?(Hash)
8
- hash[key] = myval.recursive_merge(value)
9
- else
10
- hash[key] = value
11
- end
12
- end
13
- hash
14
- end
15
-
16
- # Same as Hash#merge! but recursively merges sub-hashes.
17
- def recursive_merge!(other)
18
- other.each do |key, value|
19
- myval = self[key]
20
- if value.is_a?(Hash) && myval.is_a?(Hash)
21
- myval.recursive_merge!(value)
22
- else
23
- self[key] = value
24
- end
25
- end
26
- self
27
- end
28
- end
@@ -1,35 +0,0 @@
1
- require 'test_helper'
2
- require 'netzke/core_ext'
3
-
4
- require 'json'
5
-
6
- class CoreExtTest < ActiveSupport::TestCase
7
- test "to_js" do
8
- assert_equal({"aProperty" => true}, JSON.parse({:a_property => true}.to_js))
9
- assert_equal({"aProperty" => true}, JSON.parse({:a_property => true, :nil_property => nil}.to_js))
10
- assert_equal([{"aProperty" => true}, {"anotherProperty" => false}], JSON.parse([{:a_property => true}, {:another_property => false}].to_js))
11
- assert_equal([{"aProperty" => true}, {"anotherProperty" =>false}], JSON.parse([{:a_property => true, :nil_property => nil}, {:another_property => false}].to_js))
12
- end
13
-
14
- test "recursive delete if nil" do
15
- assert_equal({:a => 1, :b => {:c => 4, :d => 5}}, {:a => 1, :aa => nil, :b => {:c => 4, :d => 5, :cc => nil}}.recursive_delete_if_nil)
16
-
17
- assert_equal({:a => [{:e => 5}, {:f => 7}], :b => {:c => 4, :d => 5}}, {:a => [{:e => 5, :ee => nil},{:f => 7, :ff => nil}], :aa => nil, :b => {:c => 4, :d => 5, :cc => nil}}.recursive_delete_if_nil)
18
-
19
- assert_equal([
20
- {:a => [{:e => 5}]},
21
- {},
22
- {:b => {:c => 4, :d => 5}}
23
- ], [
24
- {:a => [{:e => 5, :ee => nil}]},
25
- {:aa => nil},
26
- {:b => {:c => 4, :d => 5, :cc => nil}}
27
- ].recursive_delete_if_nil)
28
- end
29
-
30
- test "convert keys" do
31
- assert_equal([
32
- {:aB => 1, :cDD => [{:lookMa => true},{:wowNow => true}]}
33
- ],[:a_b => 1, :c_d_d => [{:look_ma => true},{:wow_now => true}]].convert_keys{|k| k.camelize(:lower)})
34
- end
35
- end
@@ -1,136 +0,0 @@
1
- require 'test_helper'
2
-
3
- require 'netzke-core'
4
-
5
- # test widgets
6
- module Netzke
7
- class Widget < Base
8
- interface :method_one, :method_two
9
- def initial_aggregatees
10
- {
11
- :nested_one => {:widget_class_name => 'NestedWidgetOne'},
12
- :nested_two => {:widget_class_name => 'NestedWidgetTwo'}
13
- }
14
- end
15
-
16
- def available_permissions
17
- %w(read update)
18
- end
19
-
20
- def initial_config
21
- {
22
- :config_uno => true,
23
- :config_dos => false
24
- }
25
- end
26
- end
27
-
28
- class NestedWidgetOne < Base
29
- end
30
-
31
- class NestedWidgetTwo < Base
32
- def initial_aggregatees
33
- {
34
- :nested => {:widget_class_name => 'DeepNestedWidget'}
35
- }
36
- end
37
- end
38
-
39
- class DeepNestedWidget < Base
40
- end
41
- end
42
-
43
- # Fake ActiveRecord
44
- # module ActiveRecord
45
- # class Base
46
- # def find
47
- # end
48
- # end
49
- # end
50
-
51
- # Fake ActionController
52
- # module ActionController
53
- # class Base
54
- # end
55
- # end
56
-
57
-
58
- # Logger don't open files
59
- # class Logger
60
- # def initialize(*args)
61
- # end
62
- # end
63
-
64
- class NetzkeCoreTest < ActiveSupport::TestCase
65
- include Netzke
66
-
67
- def setup
68
- object = mock()
69
- object.stubs(:normalized_value)
70
- object.stubs(:normalized_value=)
71
- # object.stubs(:save!)
72
- NetzkePreference.stubs(:find).returns(object)
73
- end
74
-
75
- test "base class loaded" do
76
- assert_kind_of Netzke::Base, Netzke::Base.new
77
- end
78
-
79
- test "short widget class name" do
80
- assert_equal 'Widget', Widget.short_widget_class_name
81
- end
82
-
83
- test "interface" do
84
- widget_class = Widget
85
- assert_equal [:get_widget, :method_one, :method_two], widget_class.interface_points
86
- end
87
-
88
- test "aggregatees" do
89
- widget = Widget.new(:name => 'my_widget')
90
-
91
- # instantiate aggregatees
92
- nested_widget_one = widget.aggregatee_instance(:nested_one)
93
- nested_widget_two = widget.aggregatee_instance(:nested_two)
94
- deep_nested_widget = widget.aggregatee_instance(:nested_two__nested)
95
-
96
- # check the classes of aggregation instances
97
- assert_kind_of NestedWidgetOne, nested_widget_one
98
- assert_kind_of NestedWidgetTwo, nested_widget_two
99
- assert_kind_of DeepNestedWidget, deep_nested_widget
100
-
101
- # check the internal names of aggregation instances
102
- assert_equal 'my_widget', widget.id_name
103
- assert_equal 'my_widget__nested_one', nested_widget_one.id_name
104
- assert_equal 'my_widget__nested_two', nested_widget_two.id_name
105
- assert_equal 'my_widget__nested_two__nested', deep_nested_widget.id_name
106
- end
107
-
108
- test "permissions" do
109
- widget = Widget.new
110
- assert_equal({:read => true, :update => true}, widget.permissions)
111
-
112
- widget = Widget.new(:prohibit => :all)
113
- assert_equal({:read => false, :update => false}, widget.permissions)
114
-
115
- widget = Widget.new(:prohibit => :read)
116
- assert_equal({:read => false, :update => true}, widget.permissions)
117
-
118
- widget = Widget.new(:prohibit => [:read, :update])
119
- assert_equal({:read => false, :update => false}, widget.permissions)
120
-
121
- widget = Widget.new(:prohibit => :all, :allow => :read)
122
- assert_equal({:read => true, :update => false}, widget.permissions)
123
-
124
- widget = Widget.new(:prohibit => :all, :allow => [:read, :update])
125
- assert_equal({:read => true, :update => true}, widget.permissions)
126
- end
127
-
128
- test "default config" do
129
- widget = Widget.new
130
- assert_equal({:ext_config => {}, :config_uno => true, :config_dos => false}, widget.config)
131
-
132
- widget = Widget.new(:name => 'widget', :config_uno => false)
133
- assert_equal({:name => 'widget', :ext_config => {}, :config_uno => false, :config_dos => false}, widget.config)
134
- end
135
-
136
- end