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.
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