rich_cms 2.0.7 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +10 -1
- data/README.textile +58 -16
- data/Rakefile +3 -3
- data/VERSION +1 -1
- data/{lib/app → app}/controllers/rich/cms_controller.rb +7 -7
- data/{lib/app → app}/views/rich/cms/_dock.html.erb +1 -1
- data/{lib/app → app}/views/rich/cms/dock/_menu.html.erb +1 -1
- data/{lib/app → app}/views/rich/cms/dock/_panel.html.erb +1 -1
- data/app/views/rich/cms/dock/panel/_edit.html.erb +1 -0
- data/app/views/rich/cms/dock/panel/_login.html.erb +1 -0
- data/app/views/rich/cms/dock/panel/edit/_rails3.html.erb +10 -0
- data/{lib/app/views/rich/cms/dock/panel/_login.html.erb → app/views/rich/cms/dock/panel/login/_rails2.html.erb} +4 -4
- data/app/views/rich/cms/dock/panel/login/_rails3.html.erb +15 -0
- data/{lib/app → app}/views/rich_cms.html.erb +1 -1
- data/{lib/assets → assets}/jzip/jquery/cleditor.js +14 -14
- data/assets/jzip/jquery/extensions/ajaxify.js +26 -0
- data/{lib/assets → assets}/jzip/jquery/raccoon_tip.js +22 -22
- data/assets/jzip/jquery/ui/components/draggable.js +797 -0
- data/assets/jzip/jquery/ui/components/mouse.js +151 -0
- data/assets/jzip/jquery/ui/components/widget.js +237 -0
- data/{lib/assets → assets}/jzip/rich/cms/dock.js +5 -5
- data/{lib/assets → assets}/jzip/rich/cms/editor.js +21 -21
- data/{lib/assets → assets}/jzip/rich/cms/menu.js +3 -3
- data/{lib/assets → assets}/jzip/rich/cms.js +1 -1
- data/{lib/assets → assets}/sass/rich_cms/_dock.sass +2 -2
- data/{lib/assets → assets}/sass/rich_cms/_menu.sass +2 -2
- data/{lib/assets → assets}/sass/rich_cms/_panel.sass +2 -2
- data/{lib/assets → assets}/sass/tools/_mixins.sass +5 -5
- data/config/routes.rb +36 -0
- data/lib/generators/rich/authlogic_user/authlogic_user_generator.rb +63 -0
- data/lib/generators/rich/authlogic_user/templates/migration.rb +25 -0
- data/lib/generators/rich/authlogic_user/templates/model.rb +12 -0
- data/lib/generators/rich/authlogic_user/templates/session.rb +7 -0
- data/lib/generators/rich/cms_content/cms_content_generator.rb +59 -0
- data/lib/generators/rich/cms_content/templates/migration.rb +15 -0
- data/lib/generators/rich.rb +25 -0
- data/lib/rich/cms/actionpack/action_controller/base.rb +8 -8
- data/lib/rich/cms/actionpack/action_view/base.rb +14 -14
- data/lib/rich/cms/activesupport/active_support/dependencies.rb +12 -0
- data/lib/rich/cms/activesupport.rb +1 -0
- data/lib/rich/cms/content/group.rb +13 -13
- data/lib/rich/cms/content/item.rb +17 -17
- data/lib/rich/cms/core/string/html_safe.rb +18 -0
- data/lib/rich/cms/core/string.rb +6 -0
- data/lib/rich/cms/core.rb +1 -0
- data/lib/rich/cms/engine.rb +85 -74
- data/lib/rich/cms/rails/engine.rb +5 -0
- data/lib/rich/cms/rails.rb +1 -0
- data/lib/rich_cms.rb +8 -6
- data/rails_generators/rich_authlogic_user/rich_authlogic_user_generator.rb +4 -4
- data/rails_generators/rich_authlogic_user/templates/migration.rb +1 -1
- data/rails_generators/rich_authlogic_user/templates/model.rb +1 -1
- data/rails_generators/rich_authlogic_user/templates/session.rb +4 -0
- data/rails_generators/rich_cms_content/rich_cms_content_generator.rb +3 -3
- data/rails_generators/rich_cms_content/templates/migration.rb +1 -1
- data/rich_cms.gemspec +69 -60
- data/test/test_helper.rb +4 -1
- metadata +73 -62
- data/lib/app/controllers/rich/._cms_controller.rb +0 -0
- data/lib/app/views/._rich_cms.html.erb +0 -0
- data/lib/app/views/rich/cms/dock/.__menu.html.erb +0 -0
- data/lib/app/views/rich/cms/dock/.__panel.html.erb +0 -0
- data/lib/app/views/rich/cms/dock/panel/.__login.html.erb +0 -0
- data/lib/assets/jzip/jquery/extensions/ajaxify.js +0 -26
- data/lib/assets/jzip/jquery/ui/components/draggable.js +0 -797
- data/lib/assets/jzip/jquery/ui/components/mouse.js +0 -151
- data/lib/assets/jzip/jquery/ui/components/widget.js +0 -237
- data/lib/config/routes.rb +0 -19
- data/lib/rich/cms/actionpack/action_controller/._base.rb +0 -0
- data/lib/rich/cms/actionpack/action_view/._base.rb +0 -0
- data/test/engine_test.rb +0 -15
- /data/{lib/app/views/rich/cms/dock/panel/_edit.html.erb → app/views/rich/cms/dock/panel/edit/_rails2.html.erb} +0 -0
- /data/{lib/assets → assets}/images/cleditor/buttons.gif +0 -0
- /data/{lib/assets → assets}/images/cleditor/toolbar.gif +0 -0
- /data/{lib/assets → assets}/jzip/jquery/core.jz +0 -0
- /data/{lib/assets → assets}/jzip/jquery/extensions/browser_detect.js +0 -0
- /data/{lib/assets → assets}/jzip/jquery/extensions/modules.js +0 -0
- /data/{lib/assets → assets}/jzip/jquery/extensions/object.js +0 -0
- /data/{lib/assets → assets}/jzip/jquery/ui/components/core.js +0 -0
- /data/{lib/assets → assets}/jzip/jquery/ui/rich_cms/core.jz +0 -0
- /data/{lib/assets → assets}/jzip/jquery/ui/rich_cms/draggable.jz +0 -0
- /data/{lib/assets → assets}/jzip/jquery/ui/rich_cms/mouse.jz +0 -0
- /data/{lib/assets → assets}/jzip/jquery/ui/rich_cms/widget.jz +0 -0
- /data/{lib/assets → assets}/jzip/rich.js +0 -0
- /data/{lib/assets → assets}/jzip/rich_cms.jz +0 -0
- /data/{lib/assets → assets}/sass/rich_cms/_content.sass +0 -0
- /data/{lib/assets → assets}/sass/rich_cms/_reset.sass +0 -0
- /data/{lib/assets → assets}/sass/rich_cms.sass +0 -0
- /data/{lib/assets → assets}/sass/tools/_css3.sass +0 -0
@@ -1,151 +0,0 @@
|
|
1
|
-
/*!
|
2
|
-
* jQuery UI Mouse 1.8.4
|
3
|
-
*
|
4
|
-
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
5
|
-
* Dual licensed under the MIT or GPL Version 2 licenses.
|
6
|
-
* http://jquery.org/license
|
7
|
-
*
|
8
|
-
* http://docs.jquery.com/UI/Mouse
|
9
|
-
*
|
10
|
-
* Depends:
|
11
|
-
* jquery.ui.widget.js
|
12
|
-
*/
|
13
|
-
(function( $, undefined ) {
|
14
|
-
|
15
|
-
$.widget("ui.mouse", {
|
16
|
-
options: {
|
17
|
-
cancel: ':input,option',
|
18
|
-
distance: 1,
|
19
|
-
delay: 0
|
20
|
-
},
|
21
|
-
_mouseInit: function() {
|
22
|
-
var self = this;
|
23
|
-
|
24
|
-
this.element
|
25
|
-
.bind('mousedown.'+this.widgetName, function(event) {
|
26
|
-
return self._mouseDown(event);
|
27
|
-
})
|
28
|
-
.bind('click.'+this.widgetName, function(event) {
|
29
|
-
if(self._preventClickEvent) {
|
30
|
-
self._preventClickEvent = false;
|
31
|
-
event.stopImmediatePropagation();
|
32
|
-
return false;
|
33
|
-
}
|
34
|
-
});
|
35
|
-
|
36
|
-
this.started = false;
|
37
|
-
},
|
38
|
-
|
39
|
-
// TODO: make sure destroying one instance of mouse doesn't mess with
|
40
|
-
// other instances of mouse
|
41
|
-
_mouseDestroy: function() {
|
42
|
-
this.element.unbind('.'+this.widgetName);
|
43
|
-
},
|
44
|
-
|
45
|
-
_mouseDown: function(event) {
|
46
|
-
// don't let more than one widget handle mouseStart
|
47
|
-
// TODO: figure out why we have to use originalEvent
|
48
|
-
event.originalEvent = event.originalEvent || {};
|
49
|
-
if (event.originalEvent.mouseHandled) { return; }
|
50
|
-
|
51
|
-
// we may have missed mouseup (out of window)
|
52
|
-
(this._mouseStarted && this._mouseUp(event));
|
53
|
-
|
54
|
-
this._mouseDownEvent = event;
|
55
|
-
|
56
|
-
var self = this,
|
57
|
-
btnIsLeft = (event.which == 1),
|
58
|
-
elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false);
|
59
|
-
if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
|
60
|
-
return true;
|
61
|
-
}
|
62
|
-
|
63
|
-
this.mouseDelayMet = !this.options.delay;
|
64
|
-
if (!this.mouseDelayMet) {
|
65
|
-
this._mouseDelayTimer = setTimeout(function() {
|
66
|
-
self.mouseDelayMet = true;
|
67
|
-
}, this.options.delay);
|
68
|
-
}
|
69
|
-
|
70
|
-
if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
|
71
|
-
this._mouseStarted = (this._mouseStart(event) !== false);
|
72
|
-
if (!this._mouseStarted) {
|
73
|
-
event.preventDefault();
|
74
|
-
return true;
|
75
|
-
}
|
76
|
-
}
|
77
|
-
|
78
|
-
// these delegates are required to keep context
|
79
|
-
this._mouseMoveDelegate = function(event) {
|
80
|
-
return self._mouseMove(event);
|
81
|
-
};
|
82
|
-
this._mouseUpDelegate = function(event) {
|
83
|
-
return self._mouseUp(event);
|
84
|
-
};
|
85
|
-
$(document)
|
86
|
-
.bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
|
87
|
-
.bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
|
88
|
-
|
89
|
-
// preventDefault() is used to prevent the selection of text here -
|
90
|
-
// however, in Safari, this causes select boxes not to be selectable
|
91
|
-
// anymore, so this fix is needed
|
92
|
-
($.browser.safari || event.preventDefault());
|
93
|
-
|
94
|
-
event.originalEvent.mouseHandled = true;
|
95
|
-
return true;
|
96
|
-
},
|
97
|
-
|
98
|
-
_mouseMove: function(event) {
|
99
|
-
// IE mouseup check - mouseup happened when mouse was out of window
|
100
|
-
if ($.browser.msie && !event.button) {
|
101
|
-
return this._mouseUp(event);
|
102
|
-
}
|
103
|
-
|
104
|
-
if (this._mouseStarted) {
|
105
|
-
this._mouseDrag(event);
|
106
|
-
return event.preventDefault();
|
107
|
-
}
|
108
|
-
|
109
|
-
if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
|
110
|
-
this._mouseStarted =
|
111
|
-
(this._mouseStart(this._mouseDownEvent, event) !== false);
|
112
|
-
(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
|
113
|
-
}
|
114
|
-
|
115
|
-
return !this._mouseStarted;
|
116
|
-
},
|
117
|
-
|
118
|
-
_mouseUp: function(event) {
|
119
|
-
$(document)
|
120
|
-
.unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
|
121
|
-
.unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);
|
122
|
-
|
123
|
-
if (this._mouseStarted) {
|
124
|
-
this._mouseStarted = false;
|
125
|
-
this._preventClickEvent = (event.target == this._mouseDownEvent.target);
|
126
|
-
this._mouseStop(event);
|
127
|
-
}
|
128
|
-
|
129
|
-
return false;
|
130
|
-
},
|
131
|
-
|
132
|
-
_mouseDistanceMet: function(event) {
|
133
|
-
return (Math.max(
|
134
|
-
Math.abs(this._mouseDownEvent.pageX - event.pageX),
|
135
|
-
Math.abs(this._mouseDownEvent.pageY - event.pageY)
|
136
|
-
) >= this.options.distance
|
137
|
-
);
|
138
|
-
},
|
139
|
-
|
140
|
-
_mouseDelayMet: function(event) {
|
141
|
-
return this.mouseDelayMet;
|
142
|
-
},
|
143
|
-
|
144
|
-
// These are placeholder methods, to be overriden by extending plugin
|
145
|
-
_mouseStart: function(event) {},
|
146
|
-
_mouseDrag: function(event) {},
|
147
|
-
_mouseStop: function(event) {},
|
148
|
-
_mouseCapture: function(event) { return true; }
|
149
|
-
});
|
150
|
-
|
151
|
-
})(jQuery);
|
@@ -1,237 +0,0 @@
|
|
1
|
-
/*!
|
2
|
-
* jQuery UI Widget 1.8.4
|
3
|
-
*
|
4
|
-
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
5
|
-
* Dual licensed under the MIT or GPL Version 2 licenses.
|
6
|
-
* http://jquery.org/license
|
7
|
-
*
|
8
|
-
* http://docs.jquery.com/UI/Widget
|
9
|
-
*/
|
10
|
-
(function( $, undefined ) {
|
11
|
-
|
12
|
-
var _remove = $.fn.remove;
|
13
|
-
|
14
|
-
$.fn.remove = function( selector, keepData ) {
|
15
|
-
return this.each(function() {
|
16
|
-
if ( !keepData ) {
|
17
|
-
if ( !selector || $.filter( selector, [ this ] ).length ) {
|
18
|
-
$( "*", this ).add( [ this ] ).each(function() {
|
19
|
-
$( this ).triggerHandler( "remove" );
|
20
|
-
});
|
21
|
-
}
|
22
|
-
}
|
23
|
-
return _remove.call( $(this), selector, keepData );
|
24
|
-
});
|
25
|
-
};
|
26
|
-
|
27
|
-
$.widget = function( name, base, prototype ) {
|
28
|
-
var namespace = name.split( "." )[ 0 ],
|
29
|
-
fullName;
|
30
|
-
name = name.split( "." )[ 1 ];
|
31
|
-
fullName = namespace + "-" + name;
|
32
|
-
|
33
|
-
if ( !prototype ) {
|
34
|
-
prototype = base;
|
35
|
-
base = $.Widget;
|
36
|
-
}
|
37
|
-
|
38
|
-
// create selector for plugin
|
39
|
-
$.expr[ ":" ][ fullName ] = function( elem ) {
|
40
|
-
return !!$.data( elem, name );
|
41
|
-
};
|
42
|
-
|
43
|
-
$[ namespace ] = $[ namespace ] || {};
|
44
|
-
$[ namespace ][ name ] = function( options, element ) {
|
45
|
-
// allow instantiation without initializing for simple inheritance
|
46
|
-
if ( arguments.length ) {
|
47
|
-
this._createWidget( options, element );
|
48
|
-
}
|
49
|
-
};
|
50
|
-
|
51
|
-
var basePrototype = new base();
|
52
|
-
// we need to make the options hash a property directly on the new instance
|
53
|
-
// otherwise we'll modify the options hash on the prototype that we're
|
54
|
-
// inheriting from
|
55
|
-
// $.each( basePrototype, function( key, val ) {
|
56
|
-
// if ( $.isPlainObject(val) ) {
|
57
|
-
// basePrototype[ key ] = $.extend( {}, val );
|
58
|
-
// }
|
59
|
-
// });
|
60
|
-
basePrototype.options = $.extend( true, {}, basePrototype.options );
|
61
|
-
$[ namespace ][ name ].prototype = $.extend( true, basePrototype, {
|
62
|
-
namespace: namespace,
|
63
|
-
widgetName: name,
|
64
|
-
widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name,
|
65
|
-
widgetBaseClass: fullName
|
66
|
-
}, prototype );
|
67
|
-
|
68
|
-
$.widget.bridge( name, $[ namespace ][ name ] );
|
69
|
-
};
|
70
|
-
|
71
|
-
$.widget.bridge = function( name, object ) {
|
72
|
-
$.fn[ name ] = function( options ) {
|
73
|
-
var isMethodCall = typeof options === "string",
|
74
|
-
args = Array.prototype.slice.call( arguments, 1 ),
|
75
|
-
returnValue = this;
|
76
|
-
|
77
|
-
// allow multiple hashes to be passed on init
|
78
|
-
options = !isMethodCall && args.length ?
|
79
|
-
$.extend.apply( null, [ true, options ].concat(args) ) :
|
80
|
-
options;
|
81
|
-
|
82
|
-
// prevent calls to internal methods
|
83
|
-
if ( isMethodCall && options.substring( 0, 1 ) === "_" ) {
|
84
|
-
return returnValue;
|
85
|
-
}
|
86
|
-
|
87
|
-
if ( isMethodCall ) {
|
88
|
-
this.each(function() {
|
89
|
-
var instance = $.data( this, name ),
|
90
|
-
methodValue = instance && $.isFunction( instance[options] ) ?
|
91
|
-
instance[ options ].apply( instance, args ) :
|
92
|
-
instance;
|
93
|
-
if ( methodValue !== instance && methodValue !== undefined ) {
|
94
|
-
returnValue = methodValue;
|
95
|
-
return false;
|
96
|
-
}
|
97
|
-
});
|
98
|
-
} else {
|
99
|
-
this.each(function() {
|
100
|
-
var instance = $.data( this, name );
|
101
|
-
if ( instance ) {
|
102
|
-
if ( options ) {
|
103
|
-
instance.option( options );
|
104
|
-
}
|
105
|
-
instance._init();
|
106
|
-
} else {
|
107
|
-
$.data( this, name, new object( options, this ) );
|
108
|
-
}
|
109
|
-
});
|
110
|
-
}
|
111
|
-
|
112
|
-
return returnValue;
|
113
|
-
};
|
114
|
-
};
|
115
|
-
|
116
|
-
$.Widget = function( options, element ) {
|
117
|
-
// allow instantiation without initializing for simple inheritance
|
118
|
-
if ( arguments.length ) {
|
119
|
-
this._createWidget( options, element );
|
120
|
-
}
|
121
|
-
};
|
122
|
-
|
123
|
-
$.Widget.prototype = {
|
124
|
-
widgetName: "widget",
|
125
|
-
widgetEventPrefix: "",
|
126
|
-
options: {
|
127
|
-
disabled: false
|
128
|
-
},
|
129
|
-
_createWidget: function( options, element ) {
|
130
|
-
// $.widget.bridge stores the plugin instance, but we do it anyway
|
131
|
-
// so that it's stored even before the _create function runs
|
132
|
-
$.data( element, this.widgetName, this );
|
133
|
-
this.element = $( element );
|
134
|
-
this.options = $.extend( true, {},
|
135
|
-
this.options,
|
136
|
-
$.metadata && $.metadata.get( element )[ this.widgetName ],
|
137
|
-
options );
|
138
|
-
|
139
|
-
var self = this;
|
140
|
-
this.element.bind( "remove." + this.widgetName, function() {
|
141
|
-
self.destroy();
|
142
|
-
});
|
143
|
-
|
144
|
-
this._create();
|
145
|
-
this._init();
|
146
|
-
},
|
147
|
-
_create: function() {},
|
148
|
-
_init: function() {},
|
149
|
-
|
150
|
-
destroy: function() {
|
151
|
-
this.element
|
152
|
-
.unbind( "." + this.widgetName )
|
153
|
-
.removeData( this.widgetName );
|
154
|
-
this.widget()
|
155
|
-
.unbind( "." + this.widgetName )
|
156
|
-
.removeAttr( "aria-disabled" )
|
157
|
-
.removeClass(
|
158
|
-
this.widgetBaseClass + "-disabled " +
|
159
|
-
"ui-state-disabled" );
|
160
|
-
},
|
161
|
-
|
162
|
-
widget: function() {
|
163
|
-
return this.element;
|
164
|
-
},
|
165
|
-
|
166
|
-
option: function( key, value ) {
|
167
|
-
var options = key,
|
168
|
-
self = this;
|
169
|
-
|
170
|
-
if ( arguments.length === 0 ) {
|
171
|
-
// don't return a reference to the internal hash
|
172
|
-
return $.extend( {}, self.options );
|
173
|
-
}
|
174
|
-
|
175
|
-
if (typeof key === "string" ) {
|
176
|
-
if ( value === undefined ) {
|
177
|
-
return this.options[ key ];
|
178
|
-
}
|
179
|
-
options = {};
|
180
|
-
options[ key ] = value;
|
181
|
-
}
|
182
|
-
|
183
|
-
$.each( options, function( key, value ) {
|
184
|
-
self._setOption( key, value );
|
185
|
-
});
|
186
|
-
|
187
|
-
return self;
|
188
|
-
},
|
189
|
-
_setOption: function( key, value ) {
|
190
|
-
this.options[ key ] = value;
|
191
|
-
|
192
|
-
if ( key === "disabled" ) {
|
193
|
-
this.widget()
|
194
|
-
[ value ? "addClass" : "removeClass"](
|
195
|
-
this.widgetBaseClass + "-disabled" + " " +
|
196
|
-
"ui-state-disabled" )
|
197
|
-
.attr( "aria-disabled", value );
|
198
|
-
}
|
199
|
-
|
200
|
-
return this;
|
201
|
-
},
|
202
|
-
|
203
|
-
enable: function() {
|
204
|
-
return this._setOption( "disabled", false );
|
205
|
-
},
|
206
|
-
disable: function() {
|
207
|
-
return this._setOption( "disabled", true );
|
208
|
-
},
|
209
|
-
|
210
|
-
_trigger: function( type, event, data ) {
|
211
|
-
var callback = this.options[ type ];
|
212
|
-
|
213
|
-
event = $.Event( event );
|
214
|
-
event.type = ( type === this.widgetEventPrefix ?
|
215
|
-
type :
|
216
|
-
this.widgetEventPrefix + type ).toLowerCase();
|
217
|
-
data = data || {};
|
218
|
-
|
219
|
-
// copy original event properties over to the new event
|
220
|
-
// this would happen if we could call $.event.fix instead of $.Event
|
221
|
-
// but we don't have a way to force an event to be fixed multiple times
|
222
|
-
if ( event.originalEvent ) {
|
223
|
-
for ( var i = $.event.props.length, prop; i; ) {
|
224
|
-
prop = $.event.props[ --i ];
|
225
|
-
event[ prop ] = event.originalEvent[ prop ];
|
226
|
-
}
|
227
|
-
}
|
228
|
-
|
229
|
-
this.element.trigger( event, data );
|
230
|
-
|
231
|
-
return !( $.isFunction(callback) &&
|
232
|
-
callback.call( this.element[0], event, data ) === false ||
|
233
|
-
event.isDefaultPrevented() );
|
234
|
-
}
|
235
|
-
};
|
236
|
-
|
237
|
-
})( jQuery );
|
data/lib/config/routes.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
# TODO: add routes the right way as this is evil
|
2
|
-
class << ActionController::Routing::Routes;self;end.class_eval do
|
3
|
-
define_method :clear!, lambda {}
|
4
|
-
end
|
5
|
-
# END
|
6
|
-
|
7
|
-
ActionController::Routing::Routes.draw do |map|
|
8
|
-
map.namespace :rich, :path_prefix => "" do |rich|
|
9
|
-
|
10
|
-
%w(login logout update).each do |action|
|
11
|
-
rich.send "cms_#{action}", "cms/#{action}", :controller => "cms", :action => action
|
12
|
-
end
|
13
|
-
|
14
|
-
rich.cms "cms" , :controller => "cms", :action => "display", :display => true
|
15
|
-
rich.cms_hide "cms/hide" , :controller => "cms", :action => "display", :display => false
|
16
|
-
rich.connect "cms/position", :controller => "cms", :action => "position"
|
17
|
-
|
18
|
-
end
|
19
|
-
end
|
Binary file
|
Binary file
|
data/test/engine_test.rb
DELETED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|